Releases: cesarParra/apexdocs
v2.2.4
- Block style Apex doc comments are now supported. Example: https://github.com/cesarParra/apexdocs/blob/master/examples/force-app/main/default/classes/GroupedClass.cls
- Custom annotations can now have multiple words separated by a hyphen
- Better error handling: Errors parsing Apex doc blocks are now surfaced to the console, indicating the block that failed and file name. Previously the full exception was being surfaced when an error occurred and it was not clear in which file it happened.
v2.2.1
Update to use latest version of reflection library
v2.2.0
Introduces changes added in 1.6.0 to the 2.X version family.
Includes:
- Metadata Processing,
- indexOnly Parameter
v1.16.0
Metadata Processing, Generic Apex Doc Annotation & indexOnly Parameter
This version includes the changes introduced here #38
https://www.npmjs.com/package/@cparra/apexdocs/v/1.16.0
Thanks to HerrX2000 for the contribution.
v2.1.2
Updating to use the latest version of the apex-reflection NPM package, which includes several improvements and bug fixes when parsing Apex.
V2.1.1
Fixing a couple of issues when displaying constructor and method parameters:
- The constructor/method definition was not formatting multiple parameters correctly (issue with the comma separation)
- The parameters table for constructors/methods was not correctly formatted when multiple parameters were involved.
v2.1.0
Groping support for class members
A class might have members that should be grouped together. For example, you can have a class for constants with
groups of constants that should be grouped together because they share a common behavior (e.g. different groups
of constants representing the possible values for different picklists.)
You can group things together within a class by using the following syntax:
// @start-group Group Name or Description
public static final String CONSTANT_FOO = 'Foo';
public static final String CONSTANT_BAR = 'Bar';
// @end-group
Groups of members are displayed together under their own subsection after its name or description.
Some notes about this functionality:
- This is only supported on classes, NOT enums and interfaces
- Supports
- Properties
- Fields (variables and constants)
- Constructors
- Methods
- BUT only members of the same type are grouped together. For example,
if you have a group that contains properties and methods the properties will be grouped together under Properties -> Group Name, and the methods will be grouped together under Methods -> Group Name - Does not support inner types (inner classes, interfaces, and enums)
- It is necessary to use
// @end-group
whenever a group has been started, otherwise a parsing error will be raised for that file.
v2.0.2
Fixing some issues with the home page:
- Inline links in type descriptions are now printed as hyperlinks
- Ungrouped class are now listed under the Miscellaneous group. They were listed under a blank group before, making it appear as if they were part of the previous group.
- Fixed issue with heading hierarchy not being correct.
2.0.0
Version 2.0.0 has been released.
Version shares almost* all the same functionality (and more) of 1.X , but is a rewrite from the ground up of the tool,
so please be aware if migrating from a 1.X version.
The Apex code parsing logic for the 1.X codebase was almost a one-to-one translation of the Java based ApexDoc tool to
Javascript. With 2.X the parsing logic has been improved and extracted out of this codebase, and into its own standalone
NPM module which is solely focused on Apex code reflection: https://www.npmjs.com/package/@cparra/apex-reflection
This allows for an improved code quality of both code bases and an increased ease of introducing future improvements and
fixing issues.
Differences between the versions
When migrating from 1.X please be aware of these changes between the major versions:
Deprecated features
- The
--group
CLI parameter has been deprecated. All files are grouped by default.
Features from 1.X not supported in 2.X
- The
--configPath
CLI parameter has been temporarily deprecated. We are planning on reintroducing it but the config
file will use a different format.
New features
- All Apex annotations are now supported through the
--scope
CLI parameter, not justnamespaceaccessible
. This means
that scopes likeauraenabled
,invocablemethod
,invocablevariable
,remoteaction
, and all other valid Apex
annotations are supported. - Just like Javadoc, both
@throws
and@exception
are supported when referencing an exception thrown by a method or
constructor. - Any custom annotation defined in the Apexdoc is at the class level are supported, for example the following will be
output to the resulting markdown file:
/**
* @MyCustomAnnotation This is a custom annotation
*/
public class MyClass {
}
v1.13.7
Fixing issues with jekyll sites not correctly linking to related classes when using @see
and {@link ClassName}
annotations.