@alloy-js/csharp 0.23.0-dev.5 → 0.23.0-dev.7

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 (211) hide show
  1. package/dist/dev/src/components/constructor/constructor.js +15 -6
  2. package/dist/dev/src/components/constructor/constructor.js.map +1 -1
  3. package/dist/dev/src/components/constructor/constructor.test.js +53 -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/dev/src/components/namespace/namespace.js +16 -22
  14. package/dist/dev/src/components/namespace/namespace.js.map +1 -1
  15. package/dist/dev/src/components/namespace/namespace.test.js +120 -33
  16. package/dist/dev/src/components/namespace/namespace.test.js.map +1 -1
  17. package/dist/dev/src/components/namespace-scopes.js +10 -3
  18. package/dist/dev/src/components/namespace-scopes.js.map +1 -1
  19. package/dist/dev/src/components/namespace.ref.test.js +69 -0
  20. package/dist/dev/src/components/namespace.ref.test.js.map +1 -1
  21. package/dist/src/components/constructor/constructor.d.ts +2 -0
  22. package/dist/src/components/constructor/constructor.d.ts.map +1 -1
  23. package/dist/src/components/constructor/constructor.js +6 -1
  24. package/dist/src/components/constructor/constructor.js.map +1 -1
  25. package/dist/src/components/constructor/constructor.test.js +33 -0
  26. package/dist/src/components/constructor/constructor.test.js.map +1 -1
  27. package/dist/src/components/enum/declaration.d.ts +2 -0
  28. package/dist/src/components/enum/declaration.d.ts.map +1 -1
  29. package/dist/src/components/enum/declaration.js +6 -1
  30. package/dist/src/components/enum/declaration.js.map +1 -1
  31. package/dist/src/components/enum/declaration.test.js +24 -0
  32. package/dist/src/components/enum/declaration.test.js.map +1 -1
  33. package/dist/src/components/enum/member.d.ts +4 -2
  34. package/dist/src/components/enum/member.d.ts.map +1 -1
  35. package/dist/src/components/enum/member.js +6 -1
  36. package/dist/src/components/enum/member.js.map +1 -1
  37. package/dist/src/components/enum/member.test.js +26 -0
  38. package/dist/src/components/enum/member.test.js.map +1 -1
  39. package/dist/src/components/namespace/namespace.d.ts.map +1 -1
  40. package/dist/src/components/namespace/namespace.js +11 -13
  41. package/dist/src/components/namespace/namespace.js.map +1 -1
  42. package/dist/src/components/namespace/namespace.test.js +61 -2
  43. package/dist/src/components/namespace/namespace.test.js.map +1 -1
  44. package/dist/src/components/namespace-scopes.d.ts +16 -0
  45. package/dist/src/components/namespace-scopes.d.ts.map +1 -1
  46. package/dist/src/components/namespace-scopes.js +8 -1
  47. package/dist/src/components/namespace-scopes.js.map +1 -1
  48. package/dist/src/components/namespace.ref.test.js +41 -0
  49. package/dist/src/components/namespace.ref.test.js.map +1 -1
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/docs/api/components/AttributeList.md +34 -0
  52. package/docs/api/components/ClassDeclaration.md +104 -0
  53. package/docs/api/components/Constructor.md +55 -0
  54. package/docs/api/components/CsprojFile.md +34 -0
  55. package/docs/api/components/Declaration.md +32 -0
  56. package/docs/api/components/DocC.md +27 -0
  57. package/docs/api/components/DocCode.md +27 -0
  58. package/docs/api/components/DocComment.md +27 -0
  59. package/docs/api/components/DocDescription.md +27 -0
  60. package/docs/api/components/DocExample.md +27 -0
  61. package/docs/api/components/DocException.md +27 -0
  62. package/docs/api/components/DocFromMarkdown.md +27 -0
  63. package/docs/api/components/DocInclude.md +26 -0
  64. package/docs/api/components/DocList.md +26 -0
  65. package/docs/api/components/DocPara.md +27 -0
  66. package/docs/api/components/DocParam.md +28 -0
  67. package/docs/api/components/DocParamRef.md +25 -0
  68. package/docs/api/components/DocPermission.md +27 -0
  69. package/docs/api/components/DocRemarks.md +27 -0
  70. package/docs/api/components/DocReturns.md +27 -0
  71. package/docs/api/components/DocSee.md +30 -0
  72. package/docs/api/components/DocSeeAlso.md +29 -0
  73. package/docs/api/components/DocSummary.md +27 -0
  74. package/docs/api/components/DocTypeParam.md +28 -0
  75. package/docs/api/components/DocTypeParamRef.md +25 -0
  76. package/docs/api/components/DocValue.md +27 -0
  77. package/docs/api/components/DocWhen.md +27 -0
  78. package/docs/api/components/ElseClause.md +29 -0
  79. package/docs/api/components/ElseIfClause.md +30 -0
  80. package/docs/api/components/EnumDeclaration.md +76 -0
  81. package/docs/api/components/EnumMember.md +31 -0
  82. package/docs/api/components/Field.md +67 -0
  83. package/docs/api/components/IfStatement.md +30 -0
  84. package/docs/api/components/InterfaceDeclaration.md +82 -0
  85. package/docs/api/components/InterfaceMethod.md +68 -0
  86. package/docs/api/components/InterfaceProperty.md +78 -0
  87. package/docs/api/components/InvocationExpression.md +49 -0
  88. package/docs/api/components/LexicalScope.md +65 -0
  89. package/docs/api/components/Method.md +92 -0
  90. package/docs/api/components/MethodScope.md +65 -0
  91. package/docs/api/components/Name.md +19 -0
  92. package/docs/api/components/Namespace.md +35 -0
  93. package/docs/api/components/Parameter.md +58 -0
  94. package/docs/api/components/Parameters_2.md +27 -0
  95. package/docs/api/components/Property.md +110 -0
  96. package/docs/api/components/RecordDeclaration.md +84 -0
  97. package/docs/api/components/Reference.md +25 -0
  98. package/docs/api/components/Region.md +28 -0
  99. package/docs/api/components/SourceFile.md +45 -0
  100. package/docs/api/components/StructDeclaration.md +94 -0
  101. package/docs/api/components/UsingNamespaceDirective.md +25 -0
  102. package/docs/api/components/Usings.md +40 -0
  103. package/docs/api/components/VarDeclaration.md +74 -0
  104. package/docs/api/components/index.md +55 -0
  105. package/docs/api/functions/access.md +35 -0
  106. package/docs/api/functions/accessibilityFromProps.md +18 -0
  107. package/docs/api/functions/computeModifiersPrefix.md +20 -0
  108. package/docs/api/functions/createCSharpNamePolicy.md +17 -0
  109. package/docs/api/functions/createCSharpNamespaceScope.md +18 -0
  110. package/docs/api/functions/createClassScope.md +27 -0
  111. package/docs/api/functions/createFieldSymbol.md +43 -0
  112. package/docs/api/functions/createLibrary.md +19 -0
  113. package/docs/api/functions/createMethodScope.md +26 -0
  114. package/docs/api/functions/createMethodSymbol.md +34 -0
  115. package/docs/api/functions/createNamedTypeScope.md +27 -0
  116. package/docs/api/functions/createNamedTypeSymbol.md +35 -0
  117. package/docs/api/functions/createNamespaceSymbol.md +43 -0
  118. package/docs/api/functions/createParameterSymbol.md +45 -0
  119. package/docs/api/functions/createPropertySymbol.md +43 -0
  120. package/docs/api/functions/createTypeParameterSymbol.md +34 -0
  121. package/docs/api/functions/createVariableSymbol.md +43 -0
  122. package/docs/api/functions/getAccessModifier.md +18 -0
  123. package/docs/api/functions/getAsyncModifier.md +18 -0
  124. package/docs/api/functions/index.md +33 -0
  125. package/docs/api/functions/makeModifiers.md +18 -0
  126. package/docs/api/functions/nonAccessibilityFromProps.md +18 -0
  127. package/docs/api/functions/ref.md +18 -0
  128. package/docs/api/functions/useCSharpNamePolicy.md +17 -0
  129. package/docs/api/functions/useCSharpScope.md +17 -0
  130. package/docs/api/functions/useCsharpFormatOptions.md +18 -0
  131. package/docs/api/functions/useEnclosingNamespaceScope.md +17 -0
  132. package/docs/api/functions/useLexicalScope.md +17 -0
  133. package/docs/api/functions/useMethodScope.md +17 -0
  134. package/docs/api/functions/useNamedTypeScope.md +17 -0
  135. package/docs/api/functions/useNamespace.md +17 -0
  136. package/docs/api/functions/useSourceFileScope.md +17 -0
  137. package/docs/api/index.md +6 -0
  138. package/docs/api/types/AccessExpressionBuilder.md +11 -0
  139. package/docs/api/types/AccessExpressionPartProps.md +17 -0
  140. package/docs/api/types/AccessModifiers.md +13 -0
  141. package/docs/api/types/AttributeProps.md +8 -0
  142. package/docs/api/types/AttributesProp.md +5 -0
  143. package/docs/api/types/CSharpClassScope.md +9 -0
  144. package/docs/api/types/CSharpElements.md +5 -0
  145. package/docs/api/types/CSharpFormatOptions.md +5 -0
  146. package/docs/api/types/CSharpLexicalScope.md +10 -0
  147. package/docs/api/types/CSharpMethodScope.md +12 -0
  148. package/docs/api/types/CSharpNamedTypeScope.md +16 -0
  149. package/docs/api/types/CSharpNamespaceScope.md +10 -0
  150. package/docs/api/types/CSharpProjectSdk.md +5 -0
  151. package/docs/api/types/CSharpScope.md +12 -0
  152. package/docs/api/types/CSharpSourceFileScope.md +13 -0
  153. package/docs/api/types/CSharpSymbol.md +30 -0
  154. package/docs/api/types/CSharpSymbolKinds.md +5 -0
  155. package/docs/api/types/CSharpSymbolOptions.md +17 -0
  156. package/docs/api/types/ClassDescriptor.md +9 -0
  157. package/docs/api/types/ClassModifiers.md +10 -0
  158. package/docs/api/types/CreateMethodSymbolOptions.md +9 -0
  159. package/docs/api/types/CreateTypeParameterSymbolOptions.md +9 -0
  160. package/docs/api/types/DeclarationModifiers.md +8 -0
  161. package/docs/api/types/DeclaredAccessibility.md +5 -0
  162. package/docs/api/types/Descriptor.md +5 -0
  163. package/docs/api/types/DocCommentTagProps.md +7 -0
  164. package/docs/api/types/EnumDescriptor.md +9 -0
  165. package/docs/api/types/FieldDescriptor.md +9 -0
  166. package/docs/api/types/FieldModifiers.md +12 -0
  167. package/docs/api/types/GenericDescriptor.md +7 -0
  168. package/docs/api/types/InterfaceDescriptor.md +9 -0
  169. package/docs/api/types/InterfaceMethodModifiers.md +9 -0
  170. package/docs/api/types/InterfaceModifiers.md +7 -0
  171. package/docs/api/types/InterfacePropertyModifiers.md +9 -0
  172. package/docs/api/types/LexicalScopeProps.md +5 -0
  173. package/docs/api/types/LibraryFrom.md +7 -0
  174. package/docs/api/types/MemberDescriptor.md +16 -0
  175. package/docs/api/types/MethodDescriptor.md +10 -0
  176. package/docs/api/types/MethodKinds.md +5 -0
  177. package/docs/api/types/MethodModifiers.md +15 -0
  178. package/docs/api/types/MethodScopeProps.md +5 -0
  179. package/docs/api/types/MethodSymbol.md +13 -0
  180. package/docs/api/types/NamedTypeDescriptor.md +11 -0
  181. package/docs/api/types/NamedTypeSymbol.md +17 -0
  182. package/docs/api/types/NamedTypeSymbolKind.md +5 -0
  183. package/docs/api/types/NamedTypeTypeKind.md +5 -0
  184. package/docs/api/types/NamespaceDescriptor.md +8 -0
  185. package/docs/api/types/NamespaceSymbol.md +16 -0
  186. package/docs/api/types/NamespaceSymbolOptions.md +9 -0
  187. package/docs/api/types/NonAccessModifiers.md +13 -0
  188. package/docs/api/types/PropertyDescriptor_2.md +9 -0
  189. package/docs/api/types/PropertyModifiers.md +17 -0
  190. package/docs/api/types/RecordDescriptor.md +9 -0
  191. package/docs/api/types/RecordModifiers.md +7 -0
  192. package/docs/api/types/ResolveDescriptor.md +7 -0
  193. package/docs/api/types/StructDescriptor.md +9 -0
  194. package/docs/api/types/StructModifiers.md +10 -0
  195. package/docs/api/types/TypeParameterProps.md +11 -0
  196. package/docs/api/types/VarModifiers.md +8 -0
  197. package/docs/api/types/index.md +62 -0
  198. package/docs/api/variables/Attribute.md +21 -0
  199. package/docs/api/variables/index.md +3 -0
  200. package/package.json +5 -5
  201. package/src/components/constructor/constructor.test.tsx +27 -0
  202. package/src/components/constructor/constructor.tsx +5 -0
  203. package/src/components/enum/declaration.test.tsx +20 -0
  204. package/src/components/enum/declaration.tsx +4 -0
  205. package/src/components/enum/member.test.tsx +21 -0
  206. package/src/components/enum/member.tsx +5 -0
  207. package/src/components/namespace/namespace.test.tsx +42 -1
  208. package/src/components/namespace/namespace.tsx +16 -8
  209. package/src/components/namespace-scopes.tsx +25 -1
  210. package/src/components/namespace.ref.test.tsx +29 -0
  211. package/temp/api.json +85 -5
@@ -0,0 +1,9 @@
1
+ # InterfacePropertyModifiers
2
+
3
+ Method modifiers. Can only be one.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | --- | ---------------- | - |
9
+ | new | optional boolean | |
@@ -0,0 +1,5 @@
1
+ # LexicalScopeProps
2
+
3
+ ```ts
4
+ type LexicalScopeProps = LexicalScopePropsWithScopeValue | LeixcalScopePropsWithScopeInfo;
5
+ ```
@@ -0,0 +1,7 @@
1
+ # LibraryFrom
2
+
3
+ ```ts
4
+ type LibraryFrom<T> = {
5
+ [K in keyof T]: ResolveDescriptor<T[K]>;
6
+ } & LibrarySymbolReference;
7
+ ```
@@ -0,0 +1,16 @@
1
+ # MemberDescriptor
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
7
+ | isAbstract | optional boolean | |
8
+ | isExtern | optional boolean | |
9
+ | isNullable | optional boolean | |
10
+ | isOverride | optional boolean | |
11
+ | isReadOnly | optional boolean | |
12
+ | isSealed | optional boolean | |
13
+ | isStatic | optional boolean | |
14
+ | isVirtual | optional boolean | |
15
+ | kind | string | |
16
+ | type | optional [LibrarySymbolReference](../../../core/types/librarysymbolreference/) \| (() => [LibrarySymbolReference](../../../core/types/librarysymbolreference/)) | |
@@ -0,0 +1,10 @@
1
+ # MethodDescriptor
2
+
3
+ ## Members
4
+
5
+ Extends [MemberDescriptor](../memberdescriptor/)
6
+
7
+ | | | |
8
+ | ---------- | ------------------------------ | - |
9
+ | kind | ”method” | |
10
+ | methodKind | [MethodKinds](../methodkinds/) | |
@@ -0,0 +1,5 @@
1
+ # MethodKinds
2
+
3
+ ```ts
4
+ type MethodKinds = "ordinary" | "constructor";
5
+ ```
@@ -0,0 +1,15 @@
1
+ # MethodModifiers
2
+
3
+ Method modifiers. Can only be one.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | -------- | ---------------- | - |
9
+ | abstract | optional boolean | |
10
+ | extern | optional boolean | |
11
+ | override | optional boolean | |
12
+ | readonly | optional boolean | |
13
+ | sealed | optional boolean | |
14
+ | static | optional boolean | |
15
+ | virtual | optional boolean | |
@@ -0,0 +1,5 @@
1
+ # MethodScopeProps
2
+
3
+ ```ts
4
+ type MethodScopeProps = MethodScopePropsWithScopeValue | MethodScopePropsWithScopeInfo;
5
+ ```
@@ -0,0 +1,13 @@
1
+ # MethodSymbol
2
+
3
+ A symbol for a method or constructor of a class, interface, or struct.
4
+
5
+ ## Members
6
+
7
+ Extends [CSharpSymbol](../csharpsymbol/)
8
+
9
+ | | | |
10
+ | ----------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------- |
11
+ | constructor | (name: string \| Namekey, spaces: OutputSpace \| undefined, kind: MethodKinds, options: CSharpSymbolOptions) | Constructs a new instance of the [`MethodSymbol`](MethodSymbol.md) class |
12
+ | methodKind | [MethodKinds](../methodkinds/) | |
13
+ | symbolKind | | |
@@ -0,0 +1,11 @@
1
+ # NamedTypeDescriptor
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ---------- | ---------------- | - |
7
+ | isAbstract | optional boolean | |
8
+ | isSealed | optional boolean | |
9
+ | isStatic | optional boolean | |
10
+ | kind | string | |
11
+ | members | M | |
@@ -0,0 +1,17 @@
1
+ # NamedTypeSymbol
2
+
3
+ A symbol for a named type in C# such as a class, interface, enum, and so forth. Named types are generally defined in a namespace, and can have members of their own.
4
+
5
+ ## Members
6
+
7
+ Extends [CSharpSymbol](../csharpsymbol/)
8
+
9
+ | | | |
10
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------- |
11
+ | constructor | (name: string \| Namekey, spaces: OutputSpace\[] \| OutputSpace \| undefined, kind: NamedTypeTypeKind, options: CSharpSymbolOptions) | Constructs a new instance of the [`NamedTypeSymbol`](NamedTypeSymbol.md) class |
12
+ | copy | () => NamedTypeSymbol | |
13
+ | debugInfo | Record\<string, unknown> | |
14
+ | members | import(“@alloy-js/core”).[OutputMemberSpace](../../../core/types/outputmemberspace/) | |
15
+ | memberSpaces | string\[] | |
16
+ | symbolKind | [NamedTypeSymbolKind](../namedtypesymbolkind/) | |
17
+ | typeKind | [NamedTypeTypeKind](../namedtypetypekind/) | |
@@ -0,0 +1,5 @@
1
+ # NamedTypeSymbolKind
2
+
3
+ ```ts
4
+ type NamedTypeSymbolKind = "named-type" | "namespace";
5
+ ```
@@ -0,0 +1,5 @@
1
+ # NamedTypeTypeKind
2
+
3
+ ```ts
4
+ type NamedTypeTypeKind = "class" | "interface" | "enum" | "namespace" | "struct" | "record";
5
+ ```
@@ -0,0 +1,8 @@
1
+ # NamespaceDescriptor
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ------- | ----------- | - |
7
+ | kind | ”namespace” | |
8
+ | members | M | |
@@ -0,0 +1,16 @@
1
+ # NamespaceSymbol
2
+
3
+ A symbol for a namespace in C#.
4
+
5
+ ## Members
6
+
7
+ Extends [NamedTypeSymbol](../namedtypesymbol/)
8
+
9
+ | | | |
10
+ | --------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
11
+ | constructor | (name: string \| Namekey, parentNamespace: NamespaceSymbol, options: NamespaceSymbolOptions) | Constructs a new instance of the [`NamespaceSymbol`](NamespaceSymbol.md) class |
12
+ | copy | () => NamespaceSymbol | |
13
+ | debugInfo | Record\<string, unknown> | |
14
+ | getFullyQualifiedName | (options: { omitGlobal?: boolean; }) => string | |
15
+ | isGlobal | boolean | Whether this symbol is the global namespace symbol. |
16
+ | symbolKind | | |
@@ -0,0 +1,9 @@
1
+ # NamespaceSymbolOptions
2
+
3
+ ## Members
4
+
5
+ Extends [OutputSymbolOptions](../../../core/types/outputsymboloptions/)
6
+
7
+ | | | |
8
+ | -------- | ---------------- | - |
9
+ | isGlobal | optional boolean | |
@@ -0,0 +1,13 @@
1
+ # NonAccessModifiers
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | -------- | ---------------- | - |
7
+ | abstract | optional boolean | |
8
+ | extern | optional boolean | |
9
+ | override | optional boolean | |
10
+ | readOnly | optional boolean | |
11
+ | sealed | optional boolean | |
12
+ | static | optional boolean | |
13
+ | virtual | optional boolean | |
@@ -0,0 +1,9 @@
1
+ # PropertyDescriptor_2
2
+
3
+ ## Members
4
+
5
+ Extends [MemberDescriptor](../memberdescriptor/)
6
+
7
+ | | | |
8
+ | ---- | ---------- | - |
9
+ | kind | ”property” | |
@@ -0,0 +1,17 @@
1
+ # PropertyModifiers
2
+
3
+ Property modifiers.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | -------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------ |
9
+ | abstract | optional boolean | |
10
+ | extern | optional boolean | |
11
+ | new | optional boolean | |
12
+ | override | optional boolean | |
13
+ | readonly | optional boolean | |
14
+ | required | optional boolean | Set required modifier on property <https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/required> |
15
+ | sealed | optional boolean | |
16
+ | static | optional boolean | |
17
+ | virtual | optional boolean | |
@@ -0,0 +1,9 @@
1
+ # RecordDescriptor
2
+
3
+ ## Members
4
+
5
+ Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
6
+
7
+ | | | |
8
+ | ---- | -------- | - |
9
+ | kind | ”record” | |
@@ -0,0 +1,7 @@
1
+ # RecordModifiers
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ------- | ---------------- | - |
7
+ | partial | optional boolean | |
@@ -0,0 +1,7 @@
1
+ # ResolveDescriptor
2
+
3
+ ```ts
4
+ type ResolveDescriptor<D> = D extends NamedTypeDescriptor<infer M> ? LibrarySymbolReference & {
5
+ [K in keyof M]: ResolveDescriptor<M[K]>;
6
+ } : LibrarySymbolReference;
7
+ ```
@@ -0,0 +1,9 @@
1
+ # StructDescriptor
2
+
3
+ ## Members
4
+
5
+ Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
6
+
7
+ | | | |
8
+ | ---- | -------- | - |
9
+ | kind | ”struct” | |
@@ -0,0 +1,10 @@
1
+ # StructModifiers
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | -------- | ---------------- | - |
7
+ | new | optional boolean | |
8
+ | partial | optional boolean | |
9
+ | readonly | optional boolean | |
10
+ | ref | optional boolean | |
@@ -0,0 +1,11 @@
1
+ # TypeParameterProps
2
+
3
+ Information for a TypeScript generic type parameter.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | ----------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
9
+ | constraints | optional [Children](../../../core/types/children/) \| [Children](../../../core/types/children/)\[] | The parameter constraint |
10
+ | name | string \| [Namekey](../../../core/types/namekey/) | The name of the type parameter. |
11
+ | refkey | optional [Refkey](../../../core/types/refkey/) \| [Refkey](../../../core/types/refkey/)\[] | A refkey or array of refkeys for this type parameter. |
@@ -0,0 +1,8 @@
1
+ # VarModifiers
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ----- | ---------------- | -------------------------------------------- |
7
+ | const | optional boolean | Constant variable. Add the const modifier. |
8
+ | using | optional boolean | Disposable variable. Add the using modifier. |
@@ -0,0 +1,62 @@
1
+ # csharp — types
2
+
3
+ - [AccessExpressionBuilder](AccessExpressionBuilder.md)
4
+ - [AccessExpressionPartProps](AccessExpressionPartProps.md)
5
+ - [AccessModifiers](AccessModifiers.md) — Access modifiers.
6
+ - [AttributeProps](AttributeProps.md)
7
+ - [AttributesProp](AttributesProp.md) — type AttributesProp = Array<string | AttributeProps | Children>;
8
+ - [ClassDescriptor](ClassDescriptor.md) — Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
9
+ - [ClassModifiers](ClassModifiers.md)
10
+ - [CreateMethodSymbolOptions](CreateMethodSymbolOptions.md) — Extends [CSharpSymbolOptions](../csharpsymboloptions/)
11
+ - [CreateTypeParameterSymbolOptions](CreateTypeParameterSymbolOptions.md) — Extends [CSharpSymbolOptions](../csharpsymboloptions/)
12
+ - [CSharpClassScope](CSharpClassScope.md) — Extends [CSharpNamedTypeScope](../csharpnamedtypescope/)
13
+ - [CSharpElements](CSharpElements.md) — type CSharpElements = "class" | "constant" | "variable" | "struct" | "enum" | "enum-member" | "function" | "interface" |
14
+ - [CSharpFormatOptions](CSharpFormatOptions.md) — Extends [CommonFormatOptions](../../../core/types/commonformatoptions/)
15
+ - [CSharpFormatOptions](CSharpFormatOptions.md) — CSharpFormatOptions: import("@alloy-js/core").ComponentDefinition<import("@alloy-js/core").ContextProviderProps<CSharpFo
16
+ - [CSharpLexicalScope](CSharpLexicalScope.md) — Extends [CSharpScope](../csharpscope/)
17
+ - [CSharpMethodScope](CSharpMethodScope.md) — Extends [CSharpLexicalScope](../csharplexicalscope/)
18
+ - [CSharpNamedTypeScope](CSharpNamedTypeScope.md) — This scope contains NamedTypeSymbols for types that are declared in containers like namespaces.
19
+ - [CSharpNamespaceScope](CSharpNamespaceScope.md) — Extends [CSharpNamedTypeScope](../csharpnamedtypescope/)
20
+ - [CSharpProjectSdk](CSharpProjectSdk.md) — type CSharpProjectSdk = "Microsoft.NET.Sdk" | "Microsoft.NET.Sdk.Web" | "Microsoft.NET.Sdk.Worker" | "Microsoft.NET.Sdk.
21
+ - [CSharpScope](CSharpScope.md) — Extends [OutputScope](../../../core/types/outputscope/)
22
+ - [CSharpSourceFileScope](CSharpSourceFileScope.md) — Extends [CSharpLexicalScope](../csharplexicalscope/)
23
+ - [CSharpSymbol](CSharpSymbol.md) — This is the base type for all symbols in C#.
24
+ - [CSharpSymbolKinds](CSharpSymbolKinds.md) — type CSharpSymbolKinds = "symbol" | "named-type" | "method" | "field" | "property" | "namespace" | "event";
25
+ - [CSharpSymbolOptions](CSharpSymbolOptions.md) — Extends [OutputSymbolOptions](../../../core/types/outputsymboloptions/)
26
+ - [DeclarationModifiers](DeclarationModifiers.md) — Extends [AccessModifiers](../accessmodifiers/),[NonAccessModifiers](../nonaccessmodifiers/)
27
+ - [DeclaredAccessibility](DeclaredAccessibility.md) — type DeclaredAccessibility = "private" | "protected" | "internal" | "public";
28
+ - [Descriptor](Descriptor.md) — type Descriptor = FieldDescriptor | MethodDescriptor | PropertyDescriptor | NamespaceDescriptor<any> | ClassDescriptor<a
29
+ - [DocCommentTagProps](DocCommentTagProps.md)
30
+ - [EnumDescriptor](EnumDescriptor.md) — Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
31
+ - [FieldDescriptor](FieldDescriptor.md) — Extends [MemberDescriptor](../memberdescriptor/)
32
+ - [FieldModifiers](FieldModifiers.md) — Field modifiers.
33
+ - [GenericDescriptor](GenericDescriptor.md)
34
+ - [InterfaceDescriptor](InterfaceDescriptor.md) — Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
35
+ - [InterfaceMethodModifiers](InterfaceMethodModifiers.md) — Method modifiers.
36
+ - [InterfaceModifiers](InterfaceModifiers.md)
37
+ - [InterfacePropertyModifiers](InterfacePropertyModifiers.md) — Method modifiers.
38
+ - [LexicalScopeProps](LexicalScopeProps.md) — type LexicalScopeProps = LexicalScopePropsWithScopeValue | LeixcalScopePropsWithScopeInfo;
39
+ - [LibraryFrom](LibraryFrom.md) — type LibraryFrom<T> = {
40
+ - [MemberDescriptor](MemberDescriptor.md)
41
+ - [MethodDescriptor](MethodDescriptor.md) — Extends [MemberDescriptor](../memberdescriptor/)
42
+ - [MethodKinds](MethodKinds.md) — type MethodKinds = "ordinary" | "constructor";
43
+ - [MethodModifiers](MethodModifiers.md) — Method modifiers.
44
+ - [MethodScopeProps](MethodScopeProps.md) — type MethodScopeProps = MethodScopePropsWithScopeValue | MethodScopePropsWithScopeInfo;
45
+ - [MethodSymbol](MethodSymbol.md) — A symbol for a method or constructor of a class, interface, or struct.
46
+ - [NamedTypeDescriptor](NamedTypeDescriptor.md)
47
+ - [NamedTypeSymbol](NamedTypeSymbol.md) — A symbol for a named type in C# such as a class, interface, enum, and so forth.
48
+ - [NamedTypeSymbolKind](NamedTypeSymbolKind.md) — type NamedTypeSymbolKind = "named-type" | "namespace";
49
+ - [NamedTypeTypeKind](NamedTypeTypeKind.md) — type NamedTypeTypeKind = "class" | "interface" | "enum" | "namespace" | "struct" | "record";
50
+ - [NamespaceDescriptor](NamespaceDescriptor.md)
51
+ - [NamespaceSymbol](NamespaceSymbol.md) — A symbol for a namespace in C#.
52
+ - [NamespaceSymbolOptions](NamespaceSymbolOptions.md) — Extends [OutputSymbolOptions](../../../core/types/outputsymboloptions/)
53
+ - [NonAccessModifiers](NonAccessModifiers.md)
54
+ - [PropertyDescriptor_2](PropertyDescriptor_2.md) — Extends [MemberDescriptor](../memberdescriptor/)
55
+ - [PropertyModifiers](PropertyModifiers.md) — Property modifiers.
56
+ - [RecordDescriptor](RecordDescriptor.md) — Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
57
+ - [RecordModifiers](RecordModifiers.md)
58
+ - [ResolveDescriptor](ResolveDescriptor.md) — type ResolveDescriptor<D> = D extends NamedTypeDescriptor<infer M> ?
59
+ - [StructDescriptor](StructDescriptor.md) — Extends [NamedTypeDescriptor](../namedtypedescriptor/)\<M>
60
+ - [StructModifiers](StructModifiers.md)
61
+ - [TypeParameterProps](TypeParameterProps.md) — Information for a TypeScript generic type parameter.
62
+ - [VarModifiers](VarModifiers.md)
@@ -0,0 +1,21 @@
1
+ # Attribute
2
+
3
+ Render a csharp attribute.
4
+
5
+ ```ts
6
+ Attribute: import("@alloy-js/core").Component<AttributeProps> & Required<Pick<import("@alloy-js/core").Component<AttributeProps>, "tag">>
7
+ ```
8
+
9
+ ## Example
10
+
11
+ ```tsx
12
+ <Attribute name="Test" /><hbr/>
13
+ <Attribute name="Test" args={["arg1", "arg2"]} />
14
+ ```
15
+
16
+ will render:
17
+
18
+ ```csharp
19
+ [Test]
20
+ [Test("arg1", "arg2")]
21
+ ```
@@ -0,0 +1,3 @@
1
+ # csharp — variables
2
+
3
+ - [Attribute](Attribute.md) — Render a csharp attribute.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alloy-js/csharp",
3
- "version": "0.23.0-dev.5",
3
+ "version": "0.23.0-dev.7",
4
4
  "description": "Alloy components for CSharp language.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,16 +43,16 @@
43
43
  "author": "jhendrix@microsoft.com",
44
44
  "license": "MIT",
45
45
  "dependencies": {
46
- "@alloy-js/core": "~0.22.0 || >= 0.23.0-dev.12",
46
+ "@alloy-js/core": "~0.22.0 || >= 0.23.0-dev.16",
47
47
  "@alloy-js/msbuild": "~0.22.0 || >= 0.23.0-dev.2",
48
48
  "change-case": "^5.4.4",
49
49
  "marked": "^16.1.1",
50
50
  "pathe": "^2.0.3"
51
51
  },
52
52
  "devDependencies": {
53
- "@alloy-js/cli": "~0.22.0 || >= 0.23.0-dev.4",
54
- "@alloy-js/rollup-plugin": "~0.1.0 || >= 0.1.1-dev.1",
55
- "@alloy-js/typescript": "~0.22.0 || >= 0.23.0-dev.7",
53
+ "@alloy-js/cli": "~0.22.0 || >= 0.23.0-dev.6",
54
+ "@alloy-js/rollup-plugin": "~0.1.0 || >= 0.1.1-dev.2",
55
+ "@alloy-js/typescript": "~0.22.0 || >= 0.23.0-dev.9",
56
56
  "@microsoft/api-extractor": "~7.52.8",
57
57
  "@rollup/plugin-typescript": "^12.1.2",
58
58
  "@types/js-yaml": "^4.0.9",
@@ -2,6 +2,7 @@ import { refkey } from "@alloy-js/core";
2
2
  import { expect, it } from "vitest";
3
3
  import { TestNamespace } from "../../../test/utils.jsx";
4
4
  import { ClassDeclaration } from "../class/declaration.jsx";
5
+ import { DocSummary } from "../doc/comment.jsx";
5
6
  import { Constructor } from "./constructor.jsx";
6
7
 
7
8
  it("reference constructor parameters in body", () => {
@@ -33,3 +34,29 @@ it("reference constructor parameters in body", () => {
33
34
  }
34
35
  `);
35
36
  });
37
+
38
+ it("renders doc comment", () => {
39
+ expect(
40
+ <TestNamespace>
41
+ <ClassDeclaration public name="TestClass">
42
+ <Constructor
43
+ public
44
+ doc={<DocSummary>Creates a new instance</DocSummary>}
45
+ >
46
+ // body
47
+ </Constructor>
48
+ </ClassDeclaration>
49
+ </TestNamespace>,
50
+ ).toRenderTo(`
51
+ public class TestClass
52
+ {
53
+ /// <summary>
54
+ /// Creates a new instance
55
+ /// </summary>
56
+ public TestClass()
57
+ {
58
+ // body
59
+ }
60
+ }
61
+ `);
62
+ });
@@ -8,6 +8,7 @@ import {
8
8
  } from "../../modifiers.js";
9
9
  import { useNamedTypeScope } from "../../scopes/contexts.js";
10
10
  import { MethodSymbol } from "../../symbols/method.js";
11
+ import { DocWhen } from "../doc/comment.jsx";
11
12
  import { ParameterProps, Parameters } from "../parameters/parameters.jsx";
12
13
 
13
14
  /**
@@ -17,6 +18,9 @@ export interface ConstructorProps extends AccessModifiers {
17
18
  /** Constructor parameters */
18
19
  parameters?: ParameterProps[];
19
20
 
21
+ /** Doc comment */
22
+ doc?: Children;
23
+
20
24
  /** Refkey */
21
25
  refkey?: Refkey;
22
26
 
@@ -38,6 +42,7 @@ export function Constructor(props: ConstructorProps) {
38
42
  return (
39
43
  <MemberDeclaration symbol={ctorSymbol}>
40
44
  <MethodScope>
45
+ <DocWhen doc={props.doc} />
41
46
  {modifiers}
42
47
  <MemberName />
43
48
  <Parameters parameters={props.parameters} />
@@ -45,3 +45,23 @@ it("takes a namekey", () => {
45
45
  enum MyEnum;
46
46
  `);
47
47
  });
48
+
49
+ it("renders doc comment", () => {
50
+ const res = toSourceText(
51
+ <EnumDeclaration public name="TestEnum" doc="This is a test enum">
52
+ <EnumMember name="One" />,<hbr />
53
+ <EnumMember name="Two" />
54
+ </EnumDeclaration>,
55
+ );
56
+
57
+ expect(res).toBe(d`
58
+ namespace TestCode;
59
+
60
+ /// This is a test enum
61
+ public enum TestEnum
62
+ {
63
+ One,
64
+ Two
65
+ }
66
+ `);
67
+ });
@@ -14,11 +14,14 @@ import {
14
14
  import { useCSharpNamePolicy } from "../../name-policy.js";
15
15
  import { createNamedTypeScope } from "../../scopes/factories.js";
16
16
  import { createNamedTypeSymbol } from "../../symbols/factories.js";
17
+ import { DocWhen } from "../doc/comment.jsx";
17
18
  import { Name } from "../Name.jsx";
18
19
 
19
20
  // properties for creating an enum
20
21
  export interface EnumDeclarationProps extends AccessModifiers {
21
22
  name: string | Namekey;
23
+ /** Doc comment */
24
+ doc?: Children;
22
25
  refkey?: Refkey | Refkey[];
23
26
  children?: Children;
24
27
  }
@@ -54,6 +57,7 @@ export function EnumDeclaration(props: EnumDeclarationProps) {
54
57
 
55
58
  return (
56
59
  <Declaration symbol={symbol}>
60
+ <DocWhen doc={props.doc} />
57
61
  {modifiers}enum <Name />
58
62
  {!props.children && ";"}
59
63
  {props.children && (
@@ -43,3 +43,24 @@ it("takes a namekey", () => {
43
43
  Foo.MyMember;
44
44
  `);
45
45
  });
46
+
47
+ it("renders doc comment", () => {
48
+ const res = toSourceText(
49
+ <EnumDeclaration public name="TestEnum">
50
+ <EnumMember name="One" doc="First value" />,<hbr />
51
+ <EnumMember name="Two" doc="Second value" />
52
+ </EnumDeclaration>,
53
+ );
54
+
55
+ expect(res).toBe(d`
56
+ namespace TestCode;
57
+
58
+ public enum TestEnum
59
+ {
60
+ /// First value
61
+ One,
62
+ /// Second value
63
+ Two
64
+ }
65
+ `);
66
+ });
@@ -1,4 +1,5 @@
1
1
  import {
2
+ Children,
2
3
  createSymbol,
3
4
  MemberDeclaration,
4
5
  MemberName,
@@ -8,10 +9,13 @@ import {
8
9
  import { useCSharpNamePolicy } from "../../name-policy.js";
9
10
  import { useNamedTypeScope } from "../../scopes/contexts.js";
10
11
  import { CSharpSymbol } from "../../symbols/csharp.js";
12
+ import { DocWhen } from "../doc/comment.jsx";
11
13
 
12
14
  // properties for creating a C# enum member
13
15
  export interface EnumMemberProps {
14
16
  name: string | Namekey;
17
+ /** Doc comment */
18
+ doc?: Children;
15
19
  refkey?: Refkey;
16
20
  }
17
21
 
@@ -41,6 +45,7 @@ export function EnumMember(props: EnumMemberProps) {
41
45
 
42
46
  return (
43
47
  <MemberDeclaration symbol={thisEnumValueSymbol}>
48
+ <DocWhen doc={props.doc} />
44
49
  <MemberName />
45
50
  </MemberDeclaration>
46
51
  );