@cparra/apexdocs 2.23.0 → 2.25.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/.github/workflows/ci.yaml +22 -0
  2. package/README.md +40 -16
  3. package/examples/plain-markdown/.forceignore +12 -0
  4. package/examples/plain-markdown/README.md +301 -0
  5. package/examples/plain-markdown/config/project-scratch-def.json +5 -0
  6. package/examples/plain-markdown/force-app/classes/BaseClass.cls +3 -0
  7. package/examples/plain-markdown/force-app/classes/ParentInterface.cls +3 -0
  8. package/examples/plain-markdown/force-app/classes/ReferencedEnum.cls +3 -0
  9. package/examples/plain-markdown/force-app/classes/SampleClass.cls +35 -0
  10. package/examples/plain-markdown/force-app/classes/SampleEnum.cls +30 -0
  11. package/examples/plain-markdown/force-app/classes/SampleException.cls +1 -0
  12. package/examples/plain-markdown/force-app/classes/SampleInterface.cls +46 -0
  13. package/examples/plain-markdown/package-lock.json +665 -0
  14. package/examples/plain-markdown/package.json +24 -0
  15. package/examples/plain-markdown/sfdx-project.json +12 -0
  16. package/examples/plain-markdown/template.md +3 -0
  17. package/lib/adapters/apex-types.d.ts +5 -0
  18. package/lib/adapters/apex-types.js +34 -0
  19. package/lib/adapters/apex-types.js.map +1 -0
  20. package/lib/adapters/documentables.d.ts +6 -0
  21. package/lib/adapters/documentables.js +41 -0
  22. package/lib/adapters/documentables.js.map +1 -0
  23. package/lib/adapters/fields-and-properties.d.ts +3 -0
  24. package/lib/adapters/fields-and-properties.js +10 -0
  25. package/lib/adapters/fields-and-properties.js.map +1 -0
  26. package/lib/adapters/methods-and-constructors.d.ts +4 -0
  27. package/lib/adapters/methods-and-constructors.js +49 -0
  28. package/lib/adapters/methods-and-constructors.js.map +1 -0
  29. package/lib/adapters/references.d.ts +5 -0
  30. package/lib/adapters/references.js +82 -0
  31. package/lib/adapters/references.js.map +1 -0
  32. package/lib/adapters/type-utils.d.ts +2 -0
  33. package/lib/adapters/type-utils.js +8 -0
  34. package/lib/adapters/type-utils.js.map +1 -0
  35. package/lib/application/Apexdocs.js +5 -2
  36. package/lib/application/Apexdocs.js.map +1 -1
  37. package/lib/cli/generate.js +28 -2
  38. package/lib/cli/generate.js.map +1 -1
  39. package/lib/model/manifest.d.ts +1 -1
  40. package/lib/model/manifest.js +2 -2
  41. package/lib/model/manifest.js.map +1 -1
  42. package/lib/model/markdown-file.js +5 -2
  43. package/lib/model/markdown-file.js.map +1 -1
  44. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +4 -1
  45. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -1
  46. package/lib/model/markdown-home-file.js +4 -1
  47. package/lib/model/markdown-home-file.js.map +1 -1
  48. package/lib/model/markdown-type-file.js +4 -1
  49. package/lib/model/markdown-type-file.js.map +1 -1
  50. package/lib/model/openapi/open-api-types.d.ts +2 -2
  51. package/lib/service/apex-file-reader.js +4 -1
  52. package/lib/service/apex-file-reader.js.map +1 -1
  53. package/lib/service/file-system.js +25 -2
  54. package/lib/service/file-system.js.map +1 -1
  55. package/lib/service/file-writer.js +25 -2
  56. package/lib/service/file-writer.js.map +1 -1
  57. package/lib/service/manifest-factory.js +4 -1
  58. package/lib/service/manifest-factory.js.map +1 -1
  59. package/lib/service/parser.js +4 -1
  60. package/lib/service/parser.js.map +1 -1
  61. package/lib/settings.d.ts +6 -0
  62. package/lib/settings.js +11 -0
  63. package/lib/settings.js.map +1 -1
  64. package/lib/templating/compile.d.ts +7 -0
  65. package/lib/templating/compile.js +98 -0
  66. package/lib/templating/compile.js.map +1 -0
  67. package/lib/templating/helpers.d.ts +2 -0
  68. package/lib/templating/helpers.js +18 -0
  69. package/lib/templating/helpers.js.map +1 -0
  70. package/lib/test-helpers/FieldMirrorBuilder.d.ts +1 -1
  71. package/lib/test-helpers/InterfaceMirrorBuilder.d.ts +16 -0
  72. package/lib/test-helpers/InterfaceMirrorBuilder.js +43 -0
  73. package/lib/test-helpers/InterfaceMirrorBuilder.js.map +1 -0
  74. package/lib/test-helpers/MethodMirrorBuilder.d.ts +20 -1
  75. package/lib/test-helpers/MethodMirrorBuilder.js +41 -6
  76. package/lib/test-helpers/MethodMirrorBuilder.js.map +1 -1
  77. package/lib/transpiler/factory.js +4 -1
  78. package/lib/transpiler/factory.js.map +1 -1
  79. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +3 -0
  80. package/lib/transpiler/markdown/class-file-generatorHelper.js +21 -2
  81. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
  82. package/lib/transpiler/markdown/markdown-transpiler-base.js +4 -1
  83. package/lib/transpiler/markdown/markdown-transpiler-base.js.map +1 -1
  84. package/lib/transpiler/markdown/plain-markdown/class-template.d.ts +1 -0
  85. package/lib/transpiler/markdown/plain-markdown/class-template.js +36 -0
  86. package/lib/transpiler/markdown/plain-markdown/class-template.js.map +1 -0
  87. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +1 -0
  88. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js +39 -0
  89. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +1 -0
  90. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +1 -0
  91. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js +25 -0
  92. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +1 -0
  93. package/lib/transpiler/markdown/plain-markdown/enum-template.d.ts +1 -0
  94. package/lib/transpiler/markdown/plain-markdown/enum-template.js +15 -0
  95. package/lib/transpiler/markdown/plain-markdown/enum-template.js.map +1 -0
  96. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +1 -0
  97. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +24 -0
  98. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +1 -0
  99. package/lib/transpiler/markdown/plain-markdown/interface-template.d.ts +1 -0
  100. package/lib/transpiler/markdown/plain-markdown/interface-template.js +20 -0
  101. package/lib/transpiler/markdown/plain-markdown/interface-template.js.map +1 -0
  102. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +1 -0
  103. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js +49 -0
  104. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js.map +1 -0
  105. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +7 -0
  106. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +108 -0
  107. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +1 -1
  108. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.d.ts +1 -0
  109. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js +31 -0
  110. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js.map +1 -0
  111. package/lib/transpiler/openapi/open-api-docs-processor.js +4 -1
  112. package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -1
  113. package/lib/transpiler/openapi/parsers/Builder.js.map +1 -1
  114. package/lib/transpiler/openapi/parsers/MethodParser.js +25 -2
  115. package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -1
  116. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +25 -2
  117. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -1
  118. package/lib/transpiler/transpiler.js +4 -1
  119. package/lib/transpiler/transpiler.js.map +1 -1
  120. package/lib/util/error-logger.js +4 -4
  121. package/lib/util/error-logger.js.map +1 -1
  122. package/lib/util/logger.js +10 -7
  123. package/lib/util/logger.js.map +1 -1
  124. package/package.json +16 -15
  125. package/src/adapters/__tests__/interface-adapter.spec.ts +76 -0
  126. package/src/adapters/__tests__/references.spec.ts +115 -0
  127. package/src/adapters/apex-types.ts +67 -0
  128. package/src/adapters/documentables.ts +58 -0
  129. package/src/adapters/fields-and-properties.ts +14 -0
  130. package/src/adapters/methods-and-constructors.ts +78 -0
  131. package/src/adapters/references.ts +113 -0
  132. package/src/adapters/type-utils.ts +5 -0
  133. package/src/adapters/types.d.ts +8 -0
  134. package/src/cli/generate.ts +3 -0
  135. package/src/model/__tests__/manifest.spec.ts +1 -0
  136. package/src/model/manifest.ts +3 -3
  137. package/src/model/markdown-file.ts +1 -1
  138. package/src/model/openapi/open-api-types.ts +2 -2
  139. package/src/service/__tests__/apex-file-reader.spec.ts +4 -4
  140. package/src/service/__tests__/manifest-factory.spec.ts +1 -2
  141. package/src/settings.ts +15 -0
  142. package/src/templating/__tests__/compile.spec.ts +741 -0
  143. package/src/templating/compile.ts +187 -0
  144. package/src/templating/helpers.ts +14 -0
  145. package/src/templating/types.d.ts +104 -0
  146. package/src/test-helpers/FieldMirrorBuilder.ts +1 -1
  147. package/src/test-helpers/InterfaceMirrorBuilder.ts +44 -0
  148. package/src/test-helpers/MethodMirrorBuilder.ts +46 -6
  149. package/src/transpiler/markdown/class-file-generatorHelper.ts +22 -2
  150. package/src/transpiler/markdown/plain-markdown/class-template.ts +32 -0
  151. package/src/transpiler/markdown/plain-markdown/constructors-partial-template.ts +35 -0
  152. package/src/transpiler/markdown/plain-markdown/documentable-partial-template.ts +21 -0
  153. package/src/transpiler/markdown/plain-markdown/enum-template.ts +11 -0
  154. package/src/transpiler/markdown/plain-markdown/fieldsPartialTemplate.ts +20 -0
  155. package/src/transpiler/markdown/plain-markdown/interface-template.ts +16 -0
  156. package/src/transpiler/markdown/plain-markdown/methods-partial-template.ts +45 -0
  157. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +122 -0
  158. package/src/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.ts +27 -0
  159. package/src/transpiler/openapi/parsers/Builder.ts +1 -1
  160. package/src/transpiler/openapi/parsers/MethodParser.ts +1 -1
  161. package/src/transpiler/openapi/parsers/ReferenceBuilder.ts +1 -1
  162. package/src/util/error-logger.ts +4 -4
  163. package/src/util/logger.ts +3 -3
  164. package/tsconfig.json +1 -0
  165. package/lib/model/manifest-diff.d.ts +0 -27
  166. package/lib/model/manifest-diff.js +0 -69
  167. package/lib/model/manifest-diff.js.map +0 -1
  168. package/src/model/__tests__/manifest-diff.spec.ts +0 -139
  169. package/src/model/manifest-diff.ts +0 -94
  170. /package/docs/{README.md → __old/README.md} +0 -0
  171. /package/docs/{index.html → __old/index.html} +0 -0
  172. /package/docs/{restapi.json → __old/restapi.json} +0 -0
  173. /package/docs/{types → __old/types}/Classes/nspc.AnotherInterface.md +0 -0
  174. /package/docs/{types → __old/types}/Classes/nspc.ChildClass.md +0 -0
  175. /package/docs/{types → __old/types}/Main/nspc.GroupedClass.md +0 -0
  176. /package/docs/{types → __old/types}/Main/nspc.SampleClass.md +0 -0
  177. /package/docs/{types → __old/types}/Misc-Group/nspc.EscapedAnnotations.md +0 -0
  178. /package/docs/{types → __old/types}/Misc-Group/nspc.GrandparentClass.md +0 -0
  179. /package/docs/{types → __old/types}/Misc-Group/nspc.InterfaceWithInheritance.md +0 -0
  180. /package/docs/{types → __old/types}/Misc-Group/nspc.MemberGrouping.md +0 -0
  181. /package/docs/{types → __old/types}/Misc-Group/nspc.ParentClass.md +0 -0
  182. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference1.md +0 -0
  183. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference2.md +0 -0
  184. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference3.md +0 -0
  185. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference4.md +0 -0
  186. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference5.md +0 -0
  187. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference6.md +0 -0
  188. /package/docs/{types → __old/types}/Misc-Group/nspc.Reference7.md +0 -0
  189. /package/docs/{types → __old/types}/Misc-Group/nspc.SampleClassWithoutModifier.md +0 -0
  190. /package/docs/{types → __old/types}/Misc-Group/nspc.SampleRestResource.md +0 -0
  191. /package/docs/{types → __old/types}/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +0 -0
  192. /package/docs/{types → __old/types}/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +0 -0
  193. /package/docs/{types → __old/types}/README.md +0 -0
  194. /package/docs/{types → __old/types}/Sample-Interfaces/nspc.SampleInterface.md +0 -0
@@ -0,0 +1,22 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["master", "develop"]
6
+ pull_request:
7
+ branches: ["main", "develop"]
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - name: Setup node
16
+ uses: actions/setup-node@v3
17
+ with:
18
+ node-version: "20"
19
+ cache: "npm"
20
+ - run: npm ci
21
+ - run: npm run build --if-present
22
+ - run: npm test
package/README.md CHANGED
@@ -111,14 +111,14 @@ The CLI supports the following parameters:
111
111
  | --targetGenerator | -g | Define the static file generator for which the documents will be created. Currently supports: `jekyll`, `docsify`, `plain-markdown`, and `openapi`. | `jekyll` | No |
112
112
  | --indexOnly | N/A | Defines whether only the index file should be generated. | `false` | No |
113
113
  | --defaultGroupName | N/A | Defines the `@group` name to be used when a file does not specify it. | `Miscellaneous` | No |
114
- | --sanitizeHtml | N/A | When on, any special character within your ApexDocs is converted into its HTML code representation. This is specially useful when generic objects are described within the docs, e.g. "List< Foo>", "Map<Foo, Bar>" because otherwise the content within < and > would be treated as HTML tags and not shown in the output. Content in @example blocks are never sanitized. | `Apex REST Api` | No |
115
- | --openApiTitle | N/A | If using "openapi" as the target generator, this allows you to specify the OpenApi title value. | true | No |
114
+ | --sanitizeHtml | N/A | When on, any special character within your ApexDocs is converted into its HTML code representation. This is specially useful when generic objects are described within the docs, e.g. "List< Foo>", "Map<Foo, Bar>" because otherwise the content within < and > would be treated as HTML tags and not shown in the output. Content in @example blocks are never sanitized. | true | No |
115
+ | --openApiTitle | N/A | If using "openapi" as the target generator, this allows you to specify the OpenApi title value. | `Apex REST Api` | No |
116
116
  | --title | N/A | Allows you to specify the home page main title. If using "openapi" this acts as an alias to the openApiTitle parameter | `Classes` | No |
117
117
  | --namespace | N/A | The package namespace, if any. If this value is provided the namespace will be added as a prefix to all of the parsed files. If generating an OpenApi definition, it will be added to the file's Server Url. | N/A | No |
118
118
  | --openApiFileName | N/A | If using "openapi" as the target generator, this allows you to specify the name of the output file. | `openapi` | No |
119
119
  | --sortMembersAlphabetically | N/A | Whether to sort the members of a class alphabetically. | `false` | No |
120
- | --includeMetadata | N/A | Whether to include the file's meta.xml information: Whether it is active and and the API version | false | No |
121
- | --documentationRootDir | N/A | The root directory where the documentation will be generated. This is useful when you want to generate the documentation in a subdirectory of your project. | N/A | No |
120
+ | --includeMetadata | N/A | Whether to include the file's meta.xml information: Whether it is active and and the API version | false | No |
121
+ | --documentationRootDir | N/A | The root directory where the documentation will be generated. This is useful when you want to generate the documentation in a subdirectory of your project. | N/A | No |
122
122
 
123
123
  ### Using a configuration file
124
124
 
@@ -178,20 +178,20 @@ which is what gets used by this library behind the scenes to generate the docume
178
178
 
179
179
  ApexDocs picks up blocks of comments throughout your `.cls` files. The block must begin with `/**` and end with `*/`.
180
180
 
181
- ### Documenting Classes
181
+ ### Documenting Classes and Interfaces
182
182
 
183
- The following tags are supported on the class level:
183
+ The following tags are supported at the class or interface level:
184
184
 
185
185
  **Note** Any custom generated tag is also supported. Custom tags can be added with at symbol (`@`) followed by the name
186
186
  of the tag. For example `@custom-tag`
187
187
 
188
- | Tag | Description |
189
- |----------------|--------------------------------------------------------------------------------------------------------------------------------------------|
190
- | `@description` | One or more lines describing the class. |
191
- | `@see` | The name of a related class. |
192
- | `@group` | The group to which the class belongs to. |
193
- | `@author` | The author of the class. Note that this only gets added if it is explicitly defined through the configuration class that it should. |
194
- | `@date` | The date the class was created. Note that this only gets added if it is explicitly defined through the configuration class that it should. |
188
+ | Tag | Description |
189
+ |----------------|------------------------------------------|
190
+ | `@description` | One or more lines describing the class. |
191
+ | `@see` | The name of a related class. |
192
+ | `@group` | The group to which the class belongs to. |
193
+ | `@author` | The author of the class. |
194
+ | `@date` | The date the class was created. |
195
195
 
196
196
  **Example**
197
197
 
@@ -207,9 +207,13 @@ public with sharing class TestClass {
207
207
 
208
208
  The following tags are supported on the enum level:
209
209
 
210
- | Tag | Description |
211
- |----------------|----------------------------------------|
212
- | `@description` | One or more lines describing the enum. |
210
+ | Tag | Description |
211
+ |----------------|--------------------------------------------------|
212
+ | `@description` | One or more lines describing the enum. |
213
+ | `@see` | The name of a related class, enum, or interface. |
214
+ | `@group` | The group to which the enum belongs to. |
215
+ | `@author` | The author of the enum. |
216
+ | `@date` | The date the enum was created. |
213
217
 
214
218
  **Example**
215
219
 
@@ -222,6 +226,25 @@ public Enum ExampleEnum {
222
226
  }
223
227
  ```
224
228
 
229
+ ### Documenting Enum Values
230
+
231
+ The following tags are supported on the enum value level:
232
+
233
+ | Tag | Description |
234
+ |----------------|-----------------------------------------|
235
+ | `@description` | One or more lines describing the value. |
236
+
237
+ **Example**
238
+
239
+ ```apex
240
+ public enum ExampleEnum {
241
+ /** @description This is my enum value description. */
242
+ VALUE_1,
243
+ /** @description This is my other enum value description. */
244
+ VALUE_2
245
+ }
246
+ ```
247
+
225
248
  ### Documenting Properties
226
249
 
227
250
  The following tags are supported on the property level:
@@ -253,6 +276,7 @@ The following tags are supported on the method level:
253
276
  | `@example` | Example of how the code can be used or called. |
254
277
  | `@throws` _ExceptionName_ | Description of an exception thrown by the method. |
255
278
  | `@exception` _ExceptionName_ | Same as `@throws`. V2 only |
279
+ | `@mermaid` | Diagrams in Mermaid format. |
256
280
 
257
281
  **Example**
258
282
 
@@ -0,0 +1,12 @@
1
+ # List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status
2
+ # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm
3
+ #
4
+
5
+ package.xml
6
+
7
+ # LWC configuration files
8
+ **/jsconfig.json
9
+ **/.eslintrc.json
10
+
11
+ # LWC Jest
12
+ **/__tests__/**
@@ -0,0 +1,301 @@
1
+ # Template file
2
+
3
+ # BaseClass Class
4
+ `abstract`
5
+
6
+ ## Namespace
7
+ ns
8
+
9
+ ## Fields
10
+ ### `sampleEnumFromBase`
11
+
12
+ #### Type
13
+ [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)
14
+
15
+
16
+ ---
17
+
18
+ # ParentInterface Interface
19
+
20
+ ## Namespace
21
+ ns
22
+
23
+ ## Methods
24
+ ### `sampleParentMethod()`
25
+
26
+ ### Signature
27
+ ```apex
28
+ public void sampleParentMethod()
29
+ ```
30
+
31
+ ### Returns
32
+ **void**
33
+
34
+
35
+ ---
36
+
37
+ # ReferencedEnum Enum
38
+
39
+ ## Namespace
40
+ ns
41
+
42
+ ## Enum Values
43
+
44
+
45
+ ---
46
+
47
+ # SampleClass Class
48
+ `virtual`
49
+
50
+ aliquip ex sunt officia ullamco anim deserunt magna aliquip nisi eiusmod in sit officia veniam ex
51
+
52
+ deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
53
+
54
+ **Group** SampleGroup
55
+
56
+ ## Namespace
57
+ ns
58
+
59
+ ## Example
60
+ ```apex
61
+ SampleClass sample = new SampleClass();
62
+ sample.doSomething();
63
+ ```
64
+
65
+ **Extends**
66
+ [ns.BaseClass](../Miscellaneous/ns.BaseClass.md)
67
+
68
+ **Implements**
69
+ [ns.SampleInterface](../Miscellaneous/ns.SampleInterface.md),
70
+ [ns.ParentInterface](../Miscellaneous/ns.ParentInterface.md)
71
+
72
+ ## Fields
73
+ ### `name`
74
+
75
+ This is a sample field.
76
+
77
+ #### Type
78
+ String
79
+
80
+ ---
81
+
82
+ ### `sampleEnumFromBase`
83
+
84
+ *Inherited*
85
+
86
+ #### Type
87
+ [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)
88
+
89
+ ## Constructors
90
+ ### `SampleClass()`
91
+
92
+ This is a sample constructor.
93
+
94
+ ### Signature
95
+ ```apex
96
+ public SampleClass()
97
+ ```
98
+
99
+ ---
100
+ ### `SampleClass(name)`
101
+
102
+ ### Signature
103
+ ```apex
104
+ public SampleClass(String name)
105
+ ```
106
+
107
+ ### Parameters
108
+ | Name | Type | Description |
109
+ |------|------|-------------|
110
+ | name | String | |
111
+
112
+ ## Methods
113
+ ### `sayHello()`
114
+
115
+ `DEPRECATED`
116
+
117
+ This is a sample method.
118
+
119
+ ### Signature
120
+ ```apex
121
+ public virtual String sayHello()
122
+ ```
123
+
124
+ ### Returns
125
+ **String**
126
+
127
+ A string value.
128
+
129
+ ### Example
130
+ ```apex
131
+ SampleClass sample = new SampleClass();
132
+ sample.doSomething();
133
+ ```
134
+
135
+
136
+ ---
137
+
138
+ # SampleEnum Enum
139
+
140
+ `NAMESPACEACCESSIBLE`
141
+
142
+ This is a sample enum. This references [ns.ReferencedEnum](../Miscellaneous/ns.ReferencedEnum.md) .
143
+
144
+ This description has several lines
145
+
146
+ **Some Custom**
147
+
148
+ **Group** Sample Enums
149
+
150
+ **Author** John Doe
151
+
152
+ **Date** 2022-01-01
153
+
154
+ **See** [ns.ReferencedEnum](../Miscellaneous/ns.ReferencedEnum.md)
155
+
156
+ ## Namespace
157
+ ns
158
+
159
+ ```mermaid
160
+ graph TD
161
+ A[SampleEnum] --&gt;|references| B[ReferencedEnum]
162
+ B --&gt;|referenced by| A
163
+ ```
164
+
165
+ ## Enum Values
166
+ ### VALUE1
167
+ This is value 1
168
+ ### VALUE2
169
+ This is value 2
170
+ ### VALUE3
171
+ This is value 3
172
+
173
+
174
+ ---
175
+
176
+ # SampleException Class
177
+
178
+ ## Namespace
179
+ ns
180
+
181
+ **Extends**
182
+ Exception
183
+
184
+
185
+ ---
186
+
187
+ # SampleInterface Interface
188
+
189
+ `NAMESPACEACCESSIBLE`
190
+
191
+ This is a sample interface
192
+
193
+ **Author** John Doe
194
+
195
+ **Date** 2020-01-01
196
+
197
+ **See** [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)
198
+
199
+ **See** [ns.ReferencedEnum](./ns.ReferencedEnum.md)
200
+
201
+ ## Namespace
202
+ ns
203
+
204
+ ```mermaid
205
+ graph TD
206
+ A[SampleInterface] --&gt;|extends| B[ParentInterface]
207
+ B --&gt;|extends| C[GrandParentInterface]
208
+ C --&gt;|extends| D[GreatGrandParentInterface]
209
+ ```
210
+
211
+ ## Example
212
+ ```apex
213
+ SampleInterface sampleInterface = new SampleInterface();
214
+ sampleInterface.sampleMethod();
215
+ ```
216
+
217
+ **Extends**
218
+ [ns.ParentInterface](./ns.ParentInterface.md)
219
+
220
+ ## Methods
221
+ ### `sampleMethod()`
222
+
223
+ `NAMESPACEACCESSIBLE`
224
+
225
+ This is a sample method
226
+
227
+ **Custom Tag**
228
+
229
+ **Another Custom Tag**
230
+
231
+ ### Signature
232
+ ```apex
233
+ public String sampleMethod()
234
+ ```
235
+
236
+ ### Returns
237
+ **String**
238
+
239
+ Some return value
240
+
241
+ ### Throws
242
+ [ns.SampleException](./ns.SampleException.md): This is a sample exception
243
+
244
+ AnotherSampleException: This is another sample exception
245
+
246
+ ```mermaid
247
+ graph TD
248
+ A[SampleInterface] --&gt;|extends| B[ParentInterface]
249
+ B --&gt;|extends| C[GrandParentInterface]
250
+ C --&gt;|extends| D[GreatGrandParentInterface]
251
+ ```
252
+
253
+ ### Example
254
+ ```apex
255
+ SampleInterface sampleInterface = new SampleInterface();
256
+ sampleInterface.sampleMethod();
257
+ ```
258
+
259
+ ---
260
+
261
+ ### `sampleMethodWithParams(param1, param2, theEnum)`
262
+
263
+ `NAMESPACEACCESSIBLE`
264
+ `DEPRECATED`
265
+
266
+ This is a sample method with parameters
267
+
268
+ Sometimes it won&#x27;t be possible to find a NonExistent link.
269
+
270
+ ### Signature
271
+ ```apex
272
+ public SampleEnum sampleMethodWithParams(String param1, Integer param2, SampleEnum theEnum)
273
+ ```
274
+
275
+ ### Parameters
276
+ | Name | Type | Description |
277
+ |------|------|-------------|
278
+ | param1 | String | This is the first parameter |
279
+ | param2 | Integer | This is the second parameter |
280
+ | theEnum | [ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md) | This is an enum parameter |
281
+
282
+ ### Returns
283
+ **[ns.SampleEnum](../Sample-Enums/ns.SampleEnum.md)**
284
+
285
+ Some return value
286
+
287
+ ---
288
+
289
+ ### `sampleParentMethod()`
290
+
291
+ *Inherited*
292
+
293
+ ### Signature
294
+ ```apex
295
+ public void sampleParentMethod()
296
+ ```
297
+
298
+ ### Returns
299
+ **void**
300
+
301
+
@@ -0,0 +1,5 @@
1
+ {
2
+ "orgName": "cesarparra company",
3
+ "edition": "Developer",
4
+ "features": []
5
+ }
@@ -0,0 +1,3 @@
1
+ public abstract class BaseClass {
2
+ public SampleEnum sampleEnumFromBase;
3
+ }
@@ -0,0 +1,3 @@
1
+ public interface ParentInterface {
2
+ void sampleParentMethod();
3
+ }
@@ -0,0 +1,3 @@
1
+ public enum ReferencedEnum {
2
+
3
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @description aliquip ex sunt officia ullamco anim deserunt magna aliquip nisi eiusmod in sit officia veniam ex
3
+ * deserunt ea officia exercitation laboris enim in duis quis enim eiusmod eu amet cupidatat.
4
+ * @group SampleGroup
5
+ * @example
6
+ * SampleClass sample = new SampleClass();
7
+ * sample.doSomething();
8
+ */
9
+ public with sharing virtual class SampleClass extends BaseClass implements SampleInterface, ParentInterface {
10
+ /**
11
+ * @description This is a sample field.
12
+ */
13
+ private final String name;
14
+
15
+ /**
16
+ * @description This is a sample constructor.
17
+ */
18
+ public SampleClass() {}
19
+
20
+ public SampleClass(String name) {
21
+ this.name = name;
22
+ }
23
+
24
+ /**
25
+ * @description This is a sample method.
26
+ * @return A string value.
27
+ * @example
28
+ * SampleClass sample = new SampleClass();
29
+ * sample.doSomething();
30
+ */
31
+ @Deprecated
32
+ public virtual String sayHello() {
33
+ return 'Hello';
34
+ }
35
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @description This is a sample enum. This references {@link ReferencedEnum}.
3
+ *
4
+ * This description has several lines
5
+ * @group Sample Enums
6
+ * @author John Doe
7
+ * @date 2022-01-01
8
+ * @some-custom Test. I can also have a {@link ReferencedEnum} here.
9
+ * And it can be multiline.
10
+ * @see ReferencedEnum
11
+ * @mermaid
12
+ * graph TD
13
+ * A[SampleEnum] -->|references| B[ReferencedEnum]
14
+ * B -->|referenced by| A
15
+ */
16
+ @NamespaceAccessible
17
+ public enum SampleEnum {
18
+ /**
19
+ * @description This is value 1
20
+ */
21
+ VALUE1,
22
+ /**
23
+ * @description This is value 2
24
+ */
25
+ VALUE2,
26
+ /**
27
+ * @description This is value 3
28
+ */
29
+ VALUE3
30
+ }
@@ -0,0 +1 @@
1
+ public class SampleException extends Exception {}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @description This is a sample interface
3
+ * @author John Doe
4
+ * @date 2020-01-01
5
+ * @see SampleEnum
6
+ * @see ReferencedEnum
7
+ * @mermaid
8
+ * graph TD
9
+ * A[SampleInterface] -->|extends| B[ParentInterface]
10
+ * B -->|extends| C[GrandParentInterface]
11
+ * C -->|extends| D[GreatGrandParentInterface]
12
+ * @example
13
+ * SampleInterface sampleInterface = new SampleInterface();
14
+ * sampleInterface.sampleMethod();
15
+ */
16
+ @NamespaceAccessible
17
+ public interface SampleInterface extends ParentInterface {
18
+ /**
19
+ * @description This is a sample method
20
+ * @return Some return value
21
+ * @throws SampleException This is a sample exception
22
+ * @throws AnotherSampleException This is another sample exception
23
+ * @custom-tag This is a custom tag
24
+ * @another-custom-tag This is another custom tag
25
+ * @mermaid
26
+ * graph TD
27
+ * A[SampleInterface] -->|extends| B[ParentInterface]
28
+ * B -->|extends| C[GrandParentInterface]
29
+ * C -->|extends| D[GreatGrandParentInterface]
30
+ * @example
31
+ * SampleInterface sampleInterface = new SampleInterface();
32
+ * sampleInterface.sampleMethod();
33
+ */
34
+ String sampleMethod();
35
+
36
+ /**
37
+ * @description This is a sample method with parameters
38
+ * Sometimes it won't be possible to find a {@link NonExistent} link.
39
+ * @param param1 This is the first parameter
40
+ * @param param2 This is the second parameter
41
+ * @param theEnum This is an enum parameter
42
+ * @return Some return value
43
+ */
44
+ @Deprecated
45
+ SampleEnum sampleMethodWithParams(String param1, Integer param2, SampleEnum theEnum);
46
+ }