@alloy-js/csharp 0.23.0-dev.6 → 0.23.0-dev.8

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 (188) hide show
  1. package/dist/dev/src/components/constructor/constructor.js +78 -9
  2. package/dist/dev/src/components/constructor/constructor.js.map +1 -1
  3. package/dist/dev/src/components/constructor/constructor.test.js +170 -4
  4. package/dist/dev/src/components/constructor/constructor.test.js.map +1 -1
  5. package/dist/dev/src/components/enum/declaration.js +14 -5
  6. package/dist/dev/src/components/enum/declaration.js.map +1 -1
  7. package/dist/dev/src/components/enum/declaration.test.js +40 -0
  8. package/dist/dev/src/components/enum/declaration.test.js.map +1 -1
  9. package/dist/dev/src/components/enum/member.js +13 -4
  10. package/dist/dev/src/components/enum/member.js.map +1 -1
  11. package/dist/dev/src/components/enum/member.test.js +42 -0
  12. package/dist/dev/src/components/enum/member.test.js.map +1 -1
  13. package/dist/src/components/constructor/constructor.d.ts +34 -0
  14. package/dist/src/components/constructor/constructor.d.ts.map +1 -1
  15. package/dist/src/components/constructor/constructor.js +41 -4
  16. package/dist/src/components/constructor/constructor.js.map +1 -1
  17. package/dist/src/components/constructor/constructor.test.js +114 -0
  18. package/dist/src/components/constructor/constructor.test.js.map +1 -1
  19. package/dist/src/components/enum/declaration.d.ts +2 -0
  20. package/dist/src/components/enum/declaration.d.ts.map +1 -1
  21. package/dist/src/components/enum/declaration.js +6 -1
  22. package/dist/src/components/enum/declaration.js.map +1 -1
  23. package/dist/src/components/enum/declaration.test.js +24 -0
  24. package/dist/src/components/enum/declaration.test.js.map +1 -1
  25. package/dist/src/components/enum/member.d.ts +4 -2
  26. package/dist/src/components/enum/member.d.ts.map +1 -1
  27. package/dist/src/components/enum/member.js +6 -1
  28. package/dist/src/components/enum/member.js.map +1 -1
  29. package/dist/src/components/enum/member.test.js +26 -0
  30. package/dist/src/components/enum/member.test.js.map +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/docs/api/components/AttributeList.md +34 -0
  33. package/docs/api/components/ClassDeclaration.md +104 -0
  34. package/docs/api/components/Constructor.md +61 -0
  35. package/docs/api/components/CsprojFile.md +34 -0
  36. package/docs/api/components/Declaration.md +32 -0
  37. package/docs/api/components/DocC.md +27 -0
  38. package/docs/api/components/DocCode.md +27 -0
  39. package/docs/api/components/DocComment.md +27 -0
  40. package/docs/api/components/DocDescription.md +27 -0
  41. package/docs/api/components/DocExample.md +27 -0
  42. package/docs/api/components/DocException.md +27 -0
  43. package/docs/api/components/DocFromMarkdown.md +27 -0
  44. package/docs/api/components/DocInclude.md +26 -0
  45. package/docs/api/components/DocList.md +26 -0
  46. package/docs/api/components/DocPara.md +27 -0
  47. package/docs/api/components/DocParam.md +28 -0
  48. package/docs/api/components/DocParamRef.md +25 -0
  49. package/docs/api/components/DocPermission.md +27 -0
  50. package/docs/api/components/DocRemarks.md +27 -0
  51. package/docs/api/components/DocReturns.md +27 -0
  52. package/docs/api/components/DocSee.md +30 -0
  53. package/docs/api/components/DocSeeAlso.md +29 -0
  54. package/docs/api/components/DocSummary.md +27 -0
  55. package/docs/api/components/DocTypeParam.md +28 -0
  56. package/docs/api/components/DocTypeParamRef.md +25 -0
  57. package/docs/api/components/DocValue.md +27 -0
  58. package/docs/api/components/DocWhen.md +27 -0
  59. package/docs/api/components/ElseClause.md +29 -0
  60. package/docs/api/components/ElseIfClause.md +30 -0
  61. package/docs/api/components/EnumDeclaration.md +76 -0
  62. package/docs/api/components/EnumMember.md +31 -0
  63. package/docs/api/components/Field.md +67 -0
  64. package/docs/api/components/IfStatement.md +30 -0
  65. package/docs/api/components/InterfaceDeclaration.md +82 -0
  66. package/docs/api/components/InterfaceMethod.md +68 -0
  67. package/docs/api/components/InterfaceProperty.md +78 -0
  68. package/docs/api/components/InvocationExpression.md +49 -0
  69. package/docs/api/components/LexicalScope.md +65 -0
  70. package/docs/api/components/Method.md +92 -0
  71. package/docs/api/components/MethodScope.md +65 -0
  72. package/docs/api/components/Name.md +19 -0
  73. package/docs/api/components/Namespace.md +35 -0
  74. package/docs/api/components/Parameter.md +58 -0
  75. package/docs/api/components/Parameters_2.md +27 -0
  76. package/docs/api/components/Property.md +110 -0
  77. package/docs/api/components/RecordDeclaration.md +84 -0
  78. package/docs/api/components/Reference.md +25 -0
  79. package/docs/api/components/Region.md +28 -0
  80. package/docs/api/components/SourceFile.md +45 -0
  81. package/docs/api/components/StructDeclaration.md +94 -0
  82. package/docs/api/components/UsingNamespaceDirective.md +25 -0
  83. package/docs/api/components/Usings.md +40 -0
  84. package/docs/api/components/VarDeclaration.md +74 -0
  85. package/docs/api/components/index.md +55 -0
  86. package/docs/api/functions/access.md +35 -0
  87. package/docs/api/functions/accessibilityFromProps.md +18 -0
  88. package/docs/api/functions/computeModifiersPrefix.md +20 -0
  89. package/docs/api/functions/createCSharpNamePolicy.md +17 -0
  90. package/docs/api/functions/createCSharpNamespaceScope.md +18 -0
  91. package/docs/api/functions/createClassScope.md +27 -0
  92. package/docs/api/functions/createFieldSymbol.md +43 -0
  93. package/docs/api/functions/createLibrary.md +19 -0
  94. package/docs/api/functions/createMethodScope.md +26 -0
  95. package/docs/api/functions/createMethodSymbol.md +34 -0
  96. package/docs/api/functions/createNamedTypeScope.md +27 -0
  97. package/docs/api/functions/createNamedTypeSymbol.md +35 -0
  98. package/docs/api/functions/createNamespaceSymbol.md +43 -0
  99. package/docs/api/functions/createParameterSymbol.md +45 -0
  100. package/docs/api/functions/createPropertySymbol.md +43 -0
  101. package/docs/api/functions/createTypeParameterSymbol.md +34 -0
  102. package/docs/api/functions/createVariableSymbol.md +43 -0
  103. package/docs/api/functions/getAccessModifier.md +18 -0
  104. package/docs/api/functions/getAsyncModifier.md +18 -0
  105. package/docs/api/functions/index.md +33 -0
  106. package/docs/api/functions/makeModifiers.md +18 -0
  107. package/docs/api/functions/nonAccessibilityFromProps.md +18 -0
  108. package/docs/api/functions/ref.md +18 -0
  109. package/docs/api/functions/useCSharpNamePolicy.md +17 -0
  110. package/docs/api/functions/useCSharpScope.md +17 -0
  111. package/docs/api/functions/useCsharpFormatOptions.md +18 -0
  112. package/docs/api/functions/useEnclosingNamespaceScope.md +17 -0
  113. package/docs/api/functions/useLexicalScope.md +17 -0
  114. package/docs/api/functions/useMethodScope.md +17 -0
  115. package/docs/api/functions/useNamedTypeScope.md +17 -0
  116. package/docs/api/functions/useNamespace.md +17 -0
  117. package/docs/api/functions/useSourceFileScope.md +17 -0
  118. package/docs/api/index.md +6 -0
  119. package/docs/api/types/AccessExpressionBuilder.md +11 -0
  120. package/docs/api/types/AccessExpressionPartProps.md +17 -0
  121. package/docs/api/types/AccessModifiers.md +13 -0
  122. package/docs/api/types/AttributeProps.md +8 -0
  123. package/docs/api/types/AttributesProp.md +5 -0
  124. package/docs/api/types/CSharpClassScope.md +9 -0
  125. package/docs/api/types/CSharpElements.md +5 -0
  126. package/docs/api/types/CSharpFormatOptions.md +5 -0
  127. package/docs/api/types/CSharpLexicalScope.md +10 -0
  128. package/docs/api/types/CSharpMethodScope.md +12 -0
  129. package/docs/api/types/CSharpNamedTypeScope.md +16 -0
  130. package/docs/api/types/CSharpNamespaceScope.md +10 -0
  131. package/docs/api/types/CSharpProjectSdk.md +5 -0
  132. package/docs/api/types/CSharpScope.md +12 -0
  133. package/docs/api/types/CSharpSourceFileScope.md +13 -0
  134. package/docs/api/types/CSharpSymbol.md +30 -0
  135. package/docs/api/types/CSharpSymbolKinds.md +5 -0
  136. package/docs/api/types/CSharpSymbolOptions.md +17 -0
  137. package/docs/api/types/ClassDescriptor.md +9 -0
  138. package/docs/api/types/ClassModifiers.md +10 -0
  139. package/docs/api/types/CreateMethodSymbolOptions.md +9 -0
  140. package/docs/api/types/CreateTypeParameterSymbolOptions.md +9 -0
  141. package/docs/api/types/DeclarationModifiers.md +8 -0
  142. package/docs/api/types/DeclaredAccessibility.md +5 -0
  143. package/docs/api/types/Descriptor.md +5 -0
  144. package/docs/api/types/DocCommentTagProps.md +7 -0
  145. package/docs/api/types/EnumDescriptor.md +9 -0
  146. package/docs/api/types/FieldDescriptor.md +9 -0
  147. package/docs/api/types/FieldModifiers.md +12 -0
  148. package/docs/api/types/GenericDescriptor.md +7 -0
  149. package/docs/api/types/InterfaceDescriptor.md +9 -0
  150. package/docs/api/types/InterfaceMethodModifiers.md +9 -0
  151. package/docs/api/types/InterfaceModifiers.md +7 -0
  152. package/docs/api/types/InterfacePropertyModifiers.md +9 -0
  153. package/docs/api/types/LexicalScopeProps.md +5 -0
  154. package/docs/api/types/LibraryFrom.md +7 -0
  155. package/docs/api/types/MemberDescriptor.md +16 -0
  156. package/docs/api/types/MethodDescriptor.md +10 -0
  157. package/docs/api/types/MethodKinds.md +5 -0
  158. package/docs/api/types/MethodModifiers.md +15 -0
  159. package/docs/api/types/MethodScopeProps.md +5 -0
  160. package/docs/api/types/MethodSymbol.md +13 -0
  161. package/docs/api/types/NamedTypeDescriptor.md +11 -0
  162. package/docs/api/types/NamedTypeSymbol.md +17 -0
  163. package/docs/api/types/NamedTypeSymbolKind.md +5 -0
  164. package/docs/api/types/NamedTypeTypeKind.md +5 -0
  165. package/docs/api/types/NamespaceDescriptor.md +8 -0
  166. package/docs/api/types/NamespaceSymbol.md +16 -0
  167. package/docs/api/types/NamespaceSymbolOptions.md +9 -0
  168. package/docs/api/types/NonAccessModifiers.md +13 -0
  169. package/docs/api/types/PropertyDescriptor_2.md +9 -0
  170. package/docs/api/types/PropertyModifiers.md +17 -0
  171. package/docs/api/types/RecordDescriptor.md +9 -0
  172. package/docs/api/types/RecordModifiers.md +7 -0
  173. package/docs/api/types/ResolveDescriptor.md +7 -0
  174. package/docs/api/types/StructDescriptor.md +9 -0
  175. package/docs/api/types/StructModifiers.md +10 -0
  176. package/docs/api/types/TypeParameterProps.md +11 -0
  177. package/docs/api/types/VarModifiers.md +8 -0
  178. package/docs/api/types/index.md +62 -0
  179. package/docs/api/variables/Attribute.md +21 -0
  180. package/docs/api/variables/index.md +3 -0
  181. package/package.json +5 -5
  182. package/src/components/constructor/constructor.test.tsx +91 -0
  183. package/src/components/constructor/constructor.tsx +86 -1
  184. package/src/components/enum/declaration.test.tsx +20 -0
  185. package/src/components/enum/declaration.tsx +4 -0
  186. package/src/components/enum/member.test.tsx +21 -0
  187. package/src/components/enum/member.tsx +5 -0
  188. package/temp/api.json +149 -5
@@ -1,9 +1,10 @@
1
- import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
1
+ import { createComponent as _$createComponent, memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
2
  import { MethodScope } from "#components/method-scope.js";
3
- import { Block, MemberDeclaration, MemberName } from "@alloy-js/core";
3
+ import { Block, For, Indent, MemberDeclaration, MemberName } from "@alloy-js/core";
4
4
  import { computeModifiersPrefix, getAccessModifier } from "../../modifiers.js";
5
5
  import { useNamedTypeScope } from "../../scopes/contexts.js";
6
6
  import { MethodSymbol } from "../../symbols/method.js";
7
+ import { DocWhen } from "../doc/comment.js";
7
8
  import { Parameters } from "../parameters/parameters.js";
8
9
 
9
10
  /**
@@ -11,22 +12,40 @@ import { Parameters } from "../parameters/parameters.js";
11
12
  */
12
13
 
13
14
  export function Constructor(props) {
15
+ if (props.baseConstructor && props.thisConstructor) {
16
+ throw new Error("Cannot use both 'baseConstructor' and 'thisConstructor' on the same constructor");
17
+ }
14
18
  const scope = useNamedTypeScope();
15
19
  const name = scope.ownerSymbol.name;
16
20
  const ctorSymbol = new MethodSymbol(name, scope.members, "constructor", {
17
21
  refkeys: props.refkey
18
22
  });
19
23
  const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
24
+ const initializer = props.baseConstructor ? _$createComponent(ConstructorInitializer, {
25
+ keyword: "base",
26
+ get args() {
27
+ return props.baseConstructor;
28
+ }
29
+ }) : props.thisConstructor ? _$createComponent(ConstructorInitializer, {
30
+ keyword: "this",
31
+ get args() {
32
+ return props.thisConstructor;
33
+ }
34
+ }) : null;
20
35
  return _$createComponent(MemberDeclaration, {
21
36
  symbol: ctorSymbol,
22
37
  get children() {
23
38
  return _$createComponent(MethodScope, {
24
39
  get children() {
25
- return [modifiers, _$createComponent(MemberName, {}), _$createComponent(Parameters, {
40
+ return [_$createComponent(DocWhen, {
41
+ get doc() {
42
+ return props.doc;
43
+ }
44
+ }), modifiers, _$createComponent(MemberName, {}), _$createComponent(Parameters, {
26
45
  get parameters() {
27
46
  return props.parameters;
28
47
  }
29
- }), _$createComponent(Block, {
48
+ }), initializer, _$createComponent(Block, {
30
49
  newline: true,
31
50
  get children() {
32
51
  return props.children;
@@ -37,4 +56,22 @@ export function Constructor(props) {
37
56
  }
38
57
  });
39
58
  }
59
+ function ConstructorInitializer(props) {
60
+ return _$createIntrinsic("group", {
61
+ get children() {
62
+ return [" : ", _$memo(() => props.keyword), "(", _$createComponent(Indent, {
63
+ nobreak: true,
64
+ get children() {
65
+ return _$createComponent(For, {
66
+ get each() {
67
+ return props.args;
68
+ },
69
+ joiner: ", ",
70
+ children: arg => [_$createIntrinsic("softline", {}), arg]
71
+ });
72
+ }
73
+ }), _$createIntrinsic("softline", {}), ")"];
74
+ }
75
+ });
76
+ }
40
77
  //# sourceMappingURL=constructor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MethodScope","Block","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","Parameters","Constructor","props","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","_$createComponent","symbol","children","parameters","newline"],"sources":["../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW;AACpB,SAASC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,QAAgB,gBAAgB;AAE7E,SAEEC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAAyBC,UAAU;;AAEnC;AACA;AACA;;AAYA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,KAAK,GAAGL,iBAAiB,CAAC,CAAC;EAEjC,MAAMM,IAAI,GAAGD,KAAK,CAACE,WAAW,CAACD,IAAI;EAEnC,MAAME,UAAU,GAAG,IAAIP,YAAY,CAACK,IAAI,EAAED,KAAK,CAACI,OAAO,EAAE,aAAa,EAAE;IACtEC,OAAO,EAAEN,KAAK,CAACO;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGd,sBAAsB,CAAC,CAACC,iBAAiB,CAACK,KAAK,CAAC,CAAC,CAAC;EAEpE,OAAAS,iBAAA,CACGjB,iBAAiB;IAACkB,MAAM,EAAEN,UAAU;IAAA,IAAAO,SAAA;MAAA,OAAAF,iBAAA,CAClCnB,WAAW;QAAA,IAAAqB,SAAA;UAAA,QACTH,SAAS,EAAAC,iBAAA,CACThB,UAAU,OAAAgB,iBAAA,CACVX,UAAU;YAAA,IAACc,UAAUA,CAAA;cAAA,OAAEZ,KAAK,CAACY,UAAU;YAAA;UAAA,IAAAH,iBAAA,CACvClB,KAAK;YAACsB,OAAO;YAAA,IAAAF,SAAA;cAAA,OAAEX,KAAK,CAACW,QAAQ;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAItC","ignoreList":[]}
1
+ {"version":3,"names":["MethodScope","Block","For","Indent","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","useNamedTypeScope","MethodSymbol","DocWhen","Parameters","Constructor","props","baseConstructor","thisConstructor","Error","scope","name","ownerSymbol","ctorSymbol","members","refkeys","refkey","modifiers","initializer","_$createComponent","ConstructorInitializer","keyword","args","symbol","children","doc","parameters","newline","_$createIntrinsic","_$memo","nobreak","each","joiner","arg"],"sources":["../../../../src/components/constructor/constructor.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,WAAW;AACpB,SACEC,KAAK,EACLC,GAAG,EACHC,MAAM,EACNC,iBAAiB,EACjBC,UAAU,QAEL,gBAAgB;AAEvB,SAEEC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,OAAO;AAChB,SAAyBC,UAAU;;AAEnC;AACA;AACA;;AAiDA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,IAAIA,KAAK,CAACC,eAAe,IAAID,KAAK,CAACE,eAAe,EAAE;IAClD,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEA,MAAMC,KAAK,GAAGT,iBAAiB,CAAC,CAAC;EAEjC,MAAMU,IAAI,GAAGD,KAAK,CAACE,WAAW,CAACD,IAAI;EAEnC,MAAME,UAAU,GAAG,IAAIX,YAAY,CAACS,IAAI,EAAED,KAAK,CAACI,OAAO,EAAE,aAAa,EAAE;IACtEC,OAAO,EAAET,KAAK,CAACU;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGlB,sBAAsB,CAAC,CAACC,iBAAiB,CAACM,KAAK,CAAC,CAAC,CAAC;EAEpE,MAAMY,WAAW,GACfZ,KAAK,CAACC,eAAe,GAAAY,iBAAA,CAClBC,sBAAsB;IAACC,OAAO;IAAA,IAAQC,IAAIA,CAAA;MAAA,OAAEhB,KAAK,CAACC,eAAe;IAAA;EAAA,KAClED,KAAK,CAACE,eAAe,GAAAW,iBAAA,CACpBC,sBAAsB;IAACC,OAAO;IAAA,IAAQC,IAAIA,CAAA;MAAA,OAAEhB,KAAK,CAACE,eAAe;IAAA;EAAA,KAClE,IAAI;EAER,OAAAW,iBAAA,CACGtB,iBAAiB;IAAC0B,MAAM,EAAEV,UAAU;IAAA,IAAAW,SAAA;MAAA,OAAAL,iBAAA,CAClC1B,WAAW;QAAA,IAAA+B,SAAA;UAAA,QAAAL,iBAAA,CACThB,OAAO;YAAA,IAACsB,GAAGA,CAAA;cAAA,OAAEnB,KAAK,CAACmB,GAAG;YAAA;UAAA,IACtBR,SAAS,EAAAE,iBAAA,CACTrB,UAAU,OAAAqB,iBAAA,CACVf,UAAU;YAAA,IAACsB,UAAUA,CAAA;cAAA,OAAEpB,KAAK,CAACoB,UAAU;YAAA;UAAA,IACvCR,WAAW,EAAAC,iBAAA,CACXzB,KAAK;YAACiC,OAAO;YAAA,IAAAH,SAAA;cAAA,OAAElB,KAAK,CAACkB,QAAQ;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAItC;AAOA,SAASJ,sBAAsBA,CAACd,KAAkC,EAAE;EAClE,OAAAsB,iBAAA;IAAA,IAAAJ,SAAA;MAAA,QAEK,KAAK,EAAAK,MAAA,OACLvB,KAAK,CAACe,OAAO,QAAAF,iBAAA,CACbvB,MAAM;QAACkC,OAAO;QAAA,IAAAN,SAAA;UAAA,OAAAL,iBAAA,CACZxB,GAAG;YAAA,IAACoC,IAAIA,CAAA;cAAA,OAAEzB,KAAK,CAACgB,IAAI;YAAA;YAAEU,MAAM,EAAE,IAAI;YAAAR,QAAA,EAC/BS,GAAG,KAAAL,iBAAA,kBAGAK,GAAG;UAEP;QAAA;MAAA,IAAAL,iBAAA;IAAA;EAAA;AAMX","ignoreList":[]}
@@ -3,6 +3,7 @@ import { refkey } from "@alloy-js/core";
3
3
  import { expect, it } from "vitest";
4
4
  import { TestNamespace } from "../../../test/utils.js";
5
5
  import { ClassDeclaration } from "../class/declaration.js";
6
+ import { DocSummary } from "../doc/comment.js";
6
7
  import { Constructor } from "./constructor.js";
7
8
  it("reference constructor parameters in body", () => {
8
9
  const paramNameRefkey = refkey();
@@ -43,4 +44,117 @@ it("reference constructor parameters in body", () => {
43
44
  }
44
45
  `);
45
46
  });
47
+ it("renders doc comment", () => {
48
+ expect(_$createComponent(TestNamespace, {
49
+ get children() {
50
+ return _$createComponent(ClassDeclaration, {
51
+ "public": true,
52
+ name: "TestClass",
53
+ get children() {
54
+ return _$createComponent(Constructor, {
55
+ "public": true,
56
+ get doc() {
57
+ return _$createComponent(DocSummary, {
58
+ children: "Creates a new instance"
59
+ });
60
+ },
61
+ children: "// body"
62
+ });
63
+ }
64
+ });
65
+ }
66
+ })).toRenderTo(`
67
+ public class TestClass
68
+ {
69
+ /// <summary>
70
+ /// Creates a new instance
71
+ /// </summary>
72
+ public TestClass()
73
+ {
74
+ // body
75
+ }
76
+ }
77
+ `);
78
+ });
79
+ it("renders : base() initializer", () => {
80
+ expect(_$createComponent(TestNamespace, {
81
+ get children() {
82
+ return _$createComponent(ClassDeclaration, {
83
+ "public": true,
84
+ name: "DerivedClass",
85
+ baseType: "BaseClass",
86
+ get children() {
87
+ return _$createComponent(Constructor, {
88
+ "public": true,
89
+ parameters: [{
90
+ name: "name",
91
+ type: "string"
92
+ }],
93
+ baseConstructor: ["name"],
94
+ children: "// body"
95
+ });
96
+ }
97
+ });
98
+ }
99
+ })).toRenderTo(`
100
+ public class DerivedClass : BaseClass
101
+ {
102
+ public DerivedClass(string name) : base(name)
103
+ {
104
+ // body
105
+ }
106
+ }
107
+ `);
108
+ });
109
+ it("renders : this() initializer", () => {
110
+ expect(_$createComponent(TestNamespace, {
111
+ get children() {
112
+ return _$createComponent(ClassDeclaration, {
113
+ "public": true,
114
+ name: "MyClass",
115
+ get children() {
116
+ return _$createComponent(Constructor, {
117
+ "public": true,
118
+ thisConstructor: ["0", "0"],
119
+ children: "// body"
120
+ });
121
+ }
122
+ });
123
+ }
124
+ })).toRenderTo(`
125
+ public class MyClass
126
+ {
127
+ public MyClass() : this(0, 0)
128
+ {
129
+ // body
130
+ }
131
+ }
132
+ `);
133
+ });
134
+ it("renders : base() with no arguments", () => {
135
+ expect(_$createComponent(TestNamespace, {
136
+ get children() {
137
+ return _$createComponent(ClassDeclaration, {
138
+ "public": true,
139
+ name: "DerivedClass",
140
+ baseType: "BaseClass",
141
+ get children() {
142
+ return _$createComponent(Constructor, {
143
+ "public": true,
144
+ baseConstructor: [],
145
+ children: "// body"
146
+ });
147
+ }
148
+ });
149
+ }
150
+ })).toRenderTo(`
151
+ public class DerivedClass : BaseClass
152
+ {
153
+ public DerivedClass() : base()
154
+ {
155
+ // body
156
+ }
157
+ }
158
+ `);
159
+ });
46
160
  //# sourceMappingURL=constructor.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","toRenderTo"],"sources":["../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAQ,gBAAgB;AACvC,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,aAAa;AACtB,SAASC,gBAAgB;AACzB,SAASC,WAAW;AAEpBH,EAAE,CAAC,0CAA0C,EAAE,MAAM;EACnD,MAAMI,eAAe,GAAGN,MAAM,CAAC,CAAC;EAChC,MAAMO,eAAe,GAAGP,MAAM,CAAC,CAAC;EAEhC,MAAMQ,UAAU,GAAG,CACjB;IAAEC,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,QAAQ;IAAEV,MAAM,EAAEM;EAAgB,CAAC,EACzD;IAAEG,IAAI,EAAE,MAAM;IAAEC,IAAI,EAAE,KAAK;IAAEV,MAAM,EAAEO;EAAgB,CAAC,CACvD;EAEDN,MAAM,CAAAU,iBAAA,CACHR,aAAa;IAAA,IAAAS,SAAA;MAAA,OAAAD,iBAAA,CACXP,gBAAgB;QAAA;QAAQK,IAAI;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CAC1BN,WAAW;YAAA;YAAQQ,UAAU,EAAEL,UAAU;YAAA,IAAAI,SAAA;cAAA,QACvCN,eAAe,OAAAQ,iBAAA,aACfP,eAAe;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAIxB,CAAC,CAACQ,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["refkey","expect","it","TestNamespace","ClassDeclaration","DocSummary","Constructor","paramNameRefkey","paramSizeRefkey","ctorParams","name","type","_$createComponent","children","parameters","_$createIntrinsic","toRenderTo","doc","baseType","baseConstructor","thisConstructor"],"sources":["../../../../src/components/constructor/constructor.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,8 @@ import { Children, Namekey, Refkey } from "@alloy-js/core";
2
2
  import { AccessModifiers } from "../../modifiers.js";
3
3
  export interface EnumDeclarationProps extends AccessModifiers {
4
4
  name: string | Namekey;
5
+ /** Doc comment */
6
+ doc?: Children;
5
7
  refkey?: Refkey | Refkey[];
6
8
  children?: Children;
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/enum/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,YAoB1D"}
1
+ {"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/enum/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAGhB,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,YAqB1D"}
@@ -4,6 +4,7 @@ import { computeModifiersPrefix, getAccessModifier } from "../../modifiers.js";
4
4
  import { useCSharpNamePolicy } from "../../name-policy.js";
5
5
  import { createNamedTypeScope } from "../../scopes/factories.js";
6
6
  import { createNamedTypeSymbol } from "../../symbols/factories.js";
7
+ import { DocWhen } from "../doc/comment.js";
7
8
  import { Name } from "../Name.js";
8
9
 
9
10
  // properties for creating an enum
@@ -38,7 +39,11 @@ export function EnumDeclaration(props) {
38
39
  return _$createComponent(Declaration, {
39
40
  symbol: symbol,
40
41
  get children() {
41
- return [modifiers, "enum ", _$createComponent(Name, {}), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(MemberScope, {
42
+ return [_$createComponent(DocWhen, {
43
+ get doc() {
44
+ return props.doc;
45
+ }
46
+ }), modifiers, "enum ", _$createComponent(Name, {}), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(MemberScope, {
42
47
  value: scope,
43
48
  get children() {
44
49
  return _$createComponent(Block, {
@@ -1 +1 @@
1
- {"version":3,"names":["Block","Declaration","MemberScope","computeModifiersPrefix","getAccessModifier","useCSharpNamePolicy","createNamedTypeScope","createNamedTypeSymbol","Name","EnumDeclaration","props","symbol","name","refkeys","refkey","namePolicy","for","scope","modifiers","_$createComponent","children","_$memo","value","newline"],"sources":["../../../../src/components/enum/declaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAELC,WAAW,EACXC,WAAW,QAGN,gBAAgB;AACvB,SAEEC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,IAAI;;AAEb;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MAAMC,MAAM,GAAGJ,qBAAqB,CAACG,KAAK,CAACE,IAAI,EAAE,MAAM,EAAE;IACvDC,OAAO,EAAEH,KAAK,CAACI,MAAM;IACrBC,UAAU,EAAEV,mBAAmB,CAAC,CAAC,CAACW,GAAG,CAAC,MAAM;EAC9C,CAAC,CAAC;EACF,MAAMC,KAAK,GAAGX,oBAAoB,CAACK,MAAM,CAAC;EAE1C,MAAMO,SAAS,GAAGf,sBAAsB,CAAC,CAACC,iBAAiB,CAACM,KAAK,CAAC,CAAC,CAAC;EAEpE,OAAAS,iBAAA,CACGlB,WAAW;IAACU,MAAM,EAAEA,MAAM;IAAA,IAAAS,SAAA;MAAA,QACxBF,SAAS,WAAAC,iBAAA,CAAOX,IAAI,OAAAa,MAAA,OACpB,CAACX,KAAK,CAACU,QAAQ,IAAI,GAAG,GAAAC,MAAA,OACtBA,MAAA,SAAAX,KAAK,CAACU,QAAQ,OAAAD,iBAAA,CACZjB,WAAW;QAACoB,KAAK,EAAEL,KAAK;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CACtBnB,KAAK;YAACuB,OAAO;YAAA,IAAAH,SAAA;cAAA,OAAEV,KAAK,CAACU,QAAQ;YAAA;UAAA;QAAA;MAAA,EAEjC;IAAA;EAAA;AAGP","ignoreList":[]}
1
+ {"version":3,"names":["Block","Declaration","MemberScope","computeModifiersPrefix","getAccessModifier","useCSharpNamePolicy","createNamedTypeScope","createNamedTypeSymbol","DocWhen","Name","EnumDeclaration","props","symbol","name","refkeys","refkey","namePolicy","for","scope","modifiers","_$createComponent","children","doc","_$memo","value","newline"],"sources":["../../../../src/components/enum/declaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAELC,WAAW,EACXC,WAAW,QAGN,gBAAgB;AACvB,SAEEC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,OAAO;AAChB,SAASC,IAAI;;AAEb;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACC,KAA2B,EAAE;EAC3D,MAAMC,MAAM,GAAGL,qBAAqB,CAACI,KAAK,CAACE,IAAI,EAAE,MAAM,EAAE;IACvDC,OAAO,EAAEH,KAAK,CAACI,MAAM;IACrBC,UAAU,EAAEX,mBAAmB,CAAC,CAAC,CAACY,GAAG,CAAC,MAAM;EAC9C,CAAC,CAAC;EACF,MAAMC,KAAK,GAAGZ,oBAAoB,CAACM,MAAM,CAAC;EAE1C,MAAMO,SAAS,GAAGhB,sBAAsB,CAAC,CAACC,iBAAiB,CAACO,KAAK,CAAC,CAAC,CAAC;EAEpE,OAAAS,iBAAA,CACGnB,WAAW;IAACW,MAAM,EAAEA,MAAM;IAAA,IAAAS,SAAA;MAAA,QAAAD,iBAAA,CACxBZ,OAAO;QAAA,IAACc,GAAGA,CAAA;UAAA,OAAEX,KAAK,CAACW,GAAG;QAAA;MAAA,IACtBH,SAAS,WAAAC,iBAAA,CAAOX,IAAI,OAAAc,MAAA,OACpB,CAACZ,KAAK,CAACU,QAAQ,IAAI,GAAG,GAAAE,MAAA,OACtBA,MAAA,SAAAZ,KAAK,CAACU,QAAQ,OAAAD,iBAAA,CACZlB,WAAW;QAACsB,KAAK,EAAEN,KAAK;QAAA,IAAAG,SAAA;UAAA,OAAAD,iBAAA,CACtBpB,KAAK;YAACyB,OAAO;YAAA,IAAAJ,SAAA;cAAA,OAAEV,KAAK,CAACU,QAAQ;YAAA;UAAA;QAAA;MAAA,EAEjC;IAAA;EAAA;AAGP","ignoreList":[]}
@@ -51,4 +51,28 @@ it("takes a namekey", () => {
51
51
  enum MyEnum;
52
52
  `);
53
53
  });
54
+ it("renders doc comment", () => {
55
+ const res = toSourceText(_$createComponent(EnumDeclaration, {
56
+ "public": true,
57
+ name: "TestEnum",
58
+ doc: "This is a test enum",
59
+ get children() {
60
+ return [_$createComponent(EnumMember, {
61
+ name: "One"
62
+ }), ",", _$createIntrinsic("hbr", {}), _$createComponent(EnumMember, {
63
+ name: "Two"
64
+ })];
65
+ }
66
+ }));
67
+ expect(res).toBe(d`
68
+ namespace TestCode;
69
+
70
+ /// This is a test enum
71
+ public enum TestEnum
72
+ {
73
+ One,
74
+ Two
75
+ }
76
+ `);
77
+ });
54
78
  //# sourceMappingURL=declaration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TestNamespace","toSourceText","namekey","d","expect","it","EnumDeclaration","EnumMember","res","_$createComponent","name","toBe","children","_$createIntrinsic","key","tree","toRenderTo"],"sources":["../../../../src/components/enum/declaration.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,aAAa,EAAEC,YAAY;AACpC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,eAAe;AACxB,SAASC,UAAU;AAEnBF,EAAE,CAAC,+BAA+B,EAAE,MAAM;EACxC,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CAAEH,eAAe;IAAA;IAAQI,IAAI;EAAA,EAAc,CAAC;EAEpEN,MAAM,CAACI,GAAG,CAAC,CAACG,IAAI,CAACR,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,2CAA2C,EAAE,MAAM;EACpD,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAA,IAAAE,SAAA;MAAA,QAAAH,iBAAA,CACzBF,UAAU;QAACG,IAAI;MAAA,SAAAG,iBAAA,aAAAJ,iBAAA,CACfF,UAAU;QAACG,IAAI;MAAA;IAAA;EAAA,EAEpB,CAAC;EAEDN,MAAM,CAACI,GAAG,CAAC,CAACG,IAAI,CAACR,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,iBAAiB,EAAE,MAAM;EAC1B,MAAMS,GAAG,GAAGZ,OAAO,CAAC,SAAS,CAAC;EAC9B,MAAMa,IAAI,GAAAN,iBAAA,CACPT,aAAa;IAAA,IAAAY,SAAA;MAAA,OAAAH,iBAAA,CACXH,eAAe;QAACI,IAAI,EAAEI;MAAG;IAAA;EAAA,EAE7B;EACDV,MAAM,CAACW,IAAI,CAAC,CAACC,UAAU,CAAC;AAC1B;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TestNamespace","toSourceText","namekey","d","expect","it","EnumDeclaration","EnumMember","res","_$createComponent","name","toBe","children","_$createIntrinsic","key","tree","toRenderTo","doc"],"sources":["../../../../src/components/enum/declaration.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,aAAa,EAAEC,YAAY;AACpC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,eAAe;AACxB,SAASC,UAAU;AAEnBF,EAAE,CAAC,+BAA+B,EAAE,MAAM;EACxC,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CAAEH,eAAe;IAAA;IAAQI,IAAI;EAAA,EAAc,CAAC;EAEpEN,MAAM,CAACI,GAAG,CAAC,CAACG,IAAI,CAACR,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,2CAA2C,EAAE,MAAM;EACpD,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAA,IAAAE,SAAA;MAAA,QAAAH,iBAAA,CACzBF,UAAU;QAACG,IAAI;MAAA,SAAAG,iBAAA,aAAAJ,iBAAA,CACfF,UAAU;QAACG,IAAI;MAAA;IAAA;EAAA,EAEpB,CAAC;EAEDN,MAAM,CAACI,GAAG,CAAC,CAACG,IAAI,CAACR,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,iBAAiB,EAAE,MAAM;EAC1B,MAAMS,GAAG,GAAGZ,OAAO,CAAC,SAAS,CAAC;EAC9B,MAAMa,IAAI,GAAAN,iBAAA,CACPT,aAAa;IAAA,IAAAY,SAAA;MAAA,OAAAH,iBAAA,CACXH,eAAe;QAACI,IAAI,EAAEI;MAAG;IAAA;EAAA,EAE7B;EACDV,MAAM,CAACW,IAAI,CAAC,CAACC,UAAU,CAAC;AAC1B;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFX,EAAE,CAAC,qBAAqB,EAAE,MAAM;EAC9B,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAYO,GAAG;IAAA,IAAAL,SAAA;MAAA,QAAAH,iBAAA,CACxCF,UAAU;QAACG,IAAI;MAAA,SAAAG,iBAAA,aAAAJ,iBAAA,CACfF,UAAU;QAACG,IAAI;MAAA;IAAA;EAAA,EAEpB,CAAC;EAEDN,MAAM,CAACI,GAAG,CAAC,CAACG,IAAI,CAACR,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,9 @@
1
- import { Namekey, Refkey } from "@alloy-js/core";
1
+ import { Children, Namekey, Refkey } from "@alloy-js/core";
2
2
  export interface EnumMemberProps {
3
3
  name: string | Namekey;
4
+ /** Doc comment */
5
+ doc?: Children;
4
6
  refkey?: Refkey;
5
7
  }
6
- export declare function EnumMember(props: EnumMemberProps): import("@alloy-js/core").Children;
8
+ export declare function EnumMember(props: EnumMemberProps): Children;
7
9
  //# sourceMappingURL=member.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../src/components/enum/member.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,qCA4BhD"}
1
+ {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../src/components/enum/member.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAIR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AAOxB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA6BhD"}
@@ -3,6 +3,7 @@ import { createSymbol, MemberDeclaration, MemberName } from "@alloy-js/core";
3
3
  import { useCSharpNamePolicy } from "../../name-policy.js";
4
4
  import { useNamedTypeScope } from "../../scopes/contexts.js";
5
5
  import { CSharpSymbol } from "../../symbols/csharp.js";
6
+ import { DocWhen } from "../doc/comment.js";
6
7
 
7
8
  // properties for creating a C# enum member
8
9
 
@@ -23,7 +24,11 @@ export function EnumMember(props) {
23
24
  return _$createComponent(MemberDeclaration, {
24
25
  symbol: thisEnumValueSymbol,
25
26
  get children() {
26
- return _$createComponent(MemberName, {});
27
+ return [_$createComponent(DocWhen, {
28
+ get doc() {
29
+ return props.doc;
30
+ }
31
+ }), _$createComponent(MemberName, {})];
27
32
  }
28
33
  });
29
34
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createSymbol","MemberDeclaration","MemberName","useCSharpNamePolicy","useNamedTypeScope","CSharpSymbol","EnumMember","props","scope","Error","symbol","ownerSymbol","typeKind","thisEnumValueSymbol","name","members","refkeys","refkey","namePolicy","for","_$createComponent","children"],"sources":["../../../../src/components/enum/member.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,YAAY,EACZC,iBAAiB,EACjBC,UAAU,QAGL,gBAAgB;AACvB,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,YAAY,QAAQ,yBAAyB;;AAEtD;;AAMA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,KAAK,GAAGJ,iBAAiB,CAAC,CAAC;EAEjC,IAAI,CAACI,KAAK,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACG,WAAW;EAEhC,IAAID,MAAM,CAACE,QAAQ,KAAK,MAAM,EAAE;IAC9B,MAAM,IAAIH,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAMI,mBAAmB,GAAGb,YAAY,CACtCK,YAAY,EACZE,KAAK,CAACO,IAAI,EACVJ,MAAM,CAACK,OAAO,EACd;IACEC,OAAO,EAAET,KAAK,CAACU,MAAM;IACrBC,UAAU,EAAEf,mBAAmB,CAAC,CAAC,CAACgB,GAAG,CAAC,aAAa;EACrD,CACF,CAAC;EAED,OAAAC,iBAAA,CACGnB,iBAAiB;IAACS,MAAM,EAAEG,mBAAmB;IAAA,IAAAQ,SAAA;MAAA,OAAAD,iBAAA,CAC3ClB,UAAU;IAAA;EAAA;AAGjB","ignoreList":[]}
1
+ {"version":3,"names":["createSymbol","MemberDeclaration","MemberName","useCSharpNamePolicy","useNamedTypeScope","CSharpSymbol","DocWhen","EnumMember","props","scope","Error","symbol","ownerSymbol","typeKind","thisEnumValueSymbol","name","members","refkeys","refkey","namePolicy","for","_$createComponent","children","doc"],"sources":["../../../../src/components/enum/member.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAEEA,YAAY,EACZC,iBAAiB,EACjBC,UAAU,QAGL,gBAAgB;AACvB,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,OAAO;;AAEhB;;AAQA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,KAAK,GAAGL,iBAAiB,CAAC,CAAC;EAEjC,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACG,WAAW;EAEhC,IAAID,MAAM,CAACE,QAAQ,KAAK,MAAM,EAAE;IAC9B,MAAM,IAAIH,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAMI,mBAAmB,GAAGd,YAAY,CACtCK,YAAY,EACZG,KAAK,CAACO,IAAI,EACVJ,MAAM,CAACK,OAAO,EACd;IACEC,OAAO,EAAET,KAAK,CAACU,MAAM;IACrBC,UAAU,EAAEhB,mBAAmB,CAAC,CAAC,CAACiB,GAAG,CAAC,aAAa;EACrD,CACF,CAAC;EAED,OAAAC,iBAAA,CACGpB,iBAAiB;IAACU,MAAM,EAAEG,mBAAmB;IAAA,IAAAQ,SAAA;MAAA,QAAAD,iBAAA,CAC3Cf,OAAO;QAAA,IAACiB,GAAGA,CAAA;UAAA,OAAEf,KAAK,CAACe,GAAG;QAAA;MAAA,IAAAF,iBAAA,CACtBnB,UAAU;IAAA;EAAA;AAGjB","ignoreList":[]}
@@ -49,4 +49,30 @@ it("takes a namekey", () => {
49
49
  Foo.MyMember;
50
50
  `);
51
51
  });
52
+ it("renders doc comment", () => {
53
+ const res = toSourceText(_$createComponent(EnumDeclaration, {
54
+ "public": true,
55
+ name: "TestEnum",
56
+ get children() {
57
+ return [_$createComponent(EnumMember, {
58
+ name: "One",
59
+ doc: "First value"
60
+ }), ",", _$createIntrinsic("hbr", {}), _$createComponent(EnumMember, {
61
+ name: "Two",
62
+ doc: "Second value"
63
+ })];
64
+ }
65
+ }));
66
+ expect(res).toBe(d`
67
+ namespace TestCode;
68
+
69
+ public enum TestEnum
70
+ {
71
+ /// First value
72
+ One,
73
+ /// Second value
74
+ Two
75
+ }
76
+ `);
77
+ });
52
78
  //# sourceMappingURL=member.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TestNamespace","toSourceText","namekey","d","expect","it","EnumDeclaration","EnumMember","res","_$createComponent","name","children","_$createIntrinsic","toBe","memberKey","tree","toRenderTo"],"sources":["../../../../src/components/enum/member.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,aAAa,EAAEC,YAAY;AACpC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,eAAe;AACxB,SAASC,UAAU;AAEnBF,EAAE,CAAC,4BAA4B,EAAE,MAAM;EACrC,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAA,IAAAC,SAAA;MAAA,QAAAF,iBAAA,CACzBF,UAAU;QAACG,IAAI;MAAA,SAAAE,iBAAA,aAAAH,iBAAA,CACfF,UAAU;QAACG,IAAI;MAAA;IAAA;EAAA,EAEpB,CAAC;EAEDN,MAAM,CAACI,GAAG,CAAC,CAACK,IAAI,CAACV,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,iBAAiB,EAAE,MAAM;EAC1B,MAAMS,SAAS,GAAGZ,OAAO,CAAC,UAAU,CAAC;EACrC,MAAMa,IAAI,GAAAN,iBAAA,CACPT,aAAa;IAAA,IAAAW,SAAA;MAAA,QAAAF,iBAAA,CACXH,eAAe;QAACI,IAAI;QAAA,IAAAC,SAAA;UAAA,OAAAF,iBAAA,CAClBF,UAAU;YAACG,IAAI,EAAEI;UAAS;QAAA;MAAA,IAAAF,iBAAA,aAG5BE,SAAS;IAAA;EAAA,EAEb;EACDV,MAAM,CAACW,IAAI,CAAC,CAACC,UAAU,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TestNamespace","toSourceText","namekey","d","expect","it","EnumDeclaration","EnumMember","res","_$createComponent","name","children","_$createIntrinsic","toBe","memberKey","tree","toRenderTo","doc"],"sources":["../../../../src/components/enum/member.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,aAAa,EAAEC,YAAY;AACpC,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,eAAe;AACxB,SAASC,UAAU;AAEnBF,EAAE,CAAC,4BAA4B,EAAE,MAAM;EACrC,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAA,IAAAC,SAAA;MAAA,QAAAF,iBAAA,CACzBF,UAAU;QAACG,IAAI;MAAA,SAAAE,iBAAA,aAAAH,iBAAA,CACfF,UAAU;QAACG,IAAI;MAAA;IAAA;EAAA,EAEpB,CAAC;EAEDN,MAAM,CAACI,GAAG,CAAC,CAACK,IAAI,CAACV,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFE,EAAE,CAAC,iBAAiB,EAAE,MAAM;EAC1B,MAAMS,SAAS,GAAGZ,OAAO,CAAC,UAAU,CAAC;EACrC,MAAMa,IAAI,GAAAN,iBAAA,CACPT,aAAa;IAAA,IAAAW,SAAA;MAAA,QAAAF,iBAAA,CACXH,eAAe;QAACI,IAAI;QAAA,IAAAC,SAAA;UAAA,OAAAF,iBAAA,CAClBF,UAAU;YAACG,IAAI,EAAEI;UAAS;QAAA;MAAA,IAAAF,iBAAA,aAG5BE,SAAS;IAAA;EAAA,EAEb;EACDV,MAAM,CAACW,IAAI,CAAC,CAACC,UAAU,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFX,EAAE,CAAC,qBAAqB,EAAE,MAAM;EAC9B,MAAMG,GAAG,GAAGP,YAAY,CAAAQ,iBAAA,CACrBH,eAAe;IAAA;IAAQI,IAAI;IAAA,IAAAC,SAAA;MAAA,QAAAF,iBAAA,CACzBF,UAAU;QAACG,IAAI;QAAOO,GAAG;MAAA,SAAAL,iBAAA,aAAAH,iBAAA,CACzBF,UAAU;QAACG,IAAI;QAAOO,GAAG;MAAA;IAAA;EAAA,EAE9B,CAAC;EAEDb,MAAM,CAACI,GAAG,CAAC,CAACK,IAAI,CAACV,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}