@alloy-js/csharp 0.20.0-dev.1 → 0.20.0-dev.10

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 (391) hide show
  1. package/dist/src/components/Declaration.d.ts +2 -2
  2. package/dist/src/components/Declaration.d.ts.map +1 -1
  3. package/dist/src/components/Declaration.js +5 -14
  4. package/dist/src/components/Declaration.js.map +1 -0
  5. package/dist/src/components/Name.js +2 -1
  6. package/dist/src/components/Name.js.map +1 -0
  7. package/dist/src/components/ProjectDirectory.js +2 -1
  8. package/dist/src/components/ProjectDirectory.js.map +1 -0
  9. package/dist/src/components/Reference.d.ts.map +1 -1
  10. package/dist/src/components/Reference.js +7 -2
  11. package/dist/src/components/Reference.js.map +1 -0
  12. package/dist/src/components/UsingDirective.d.ts +5 -1
  13. package/dist/src/components/UsingDirective.d.ts.map +1 -1
  14. package/dist/src/components/UsingDirective.js +5 -2
  15. package/dist/src/components/UsingDirective.js.map +1 -0
  16. package/dist/src/components/access-expression/access-expression.d.ts +54 -0
  17. package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
  18. package/dist/src/components/access-expression/access-expression.js +277 -0
  19. package/dist/src/components/access-expression/access-expression.js.map +1 -0
  20. package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
  21. package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
  22. package/dist/src/components/access-expression/access-expression.test.js +336 -0
  23. package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
  24. package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
  25. package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
  26. package/dist/src/components/access-expression/part-descriptors.js +99 -0
  27. package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
  28. package/dist/src/components/attributes/attributes.js +2 -1
  29. package/dist/src/components/attributes/attributes.js.map +1 -0
  30. package/dist/src/components/attributes/attributes.test.js +2 -1
  31. package/dist/src/components/attributes/attributes.test.js.map +1 -0
  32. package/dist/src/components/class/declaration.d.ts +2 -2
  33. package/dist/src/components/class/declaration.d.ts.map +1 -1
  34. package/dist/src/components/class/declaration.js +21 -34
  35. package/dist/src/components/class/declaration.js.map +1 -0
  36. package/dist/src/components/class/declaration.test.js +199 -200
  37. package/dist/src/components/class/declaration.test.js.map +1 -0
  38. package/dist/src/components/constructor/constructor.d.ts.map +1 -1
  39. package/dist/src/components/constructor/constructor.js +13 -20
  40. package/dist/src/components/constructor/constructor.js.map +1 -0
  41. package/dist/src/components/constructor/constructor.test.js +12 -20
  42. package/dist/src/components/constructor/constructor.test.js.map +1 -0
  43. package/dist/src/components/doc/comment.js +2 -1
  44. package/dist/src/components/doc/comment.js.map +1 -0
  45. package/dist/src/components/doc/comment.test.js +2 -1
  46. package/dist/src/components/doc/comment.test.js.map +1 -0
  47. package/dist/src/components/doc/from-markdown.js +2 -1
  48. package/dist/src/components/doc/from-markdown.js.map +1 -0
  49. package/dist/src/components/doc/from-markdown.test.js +2 -1
  50. package/dist/src/components/doc/from-markdown.test.js.map +1 -0
  51. package/dist/src/components/{EnumDeclaration.d.ts → enum/declaration.d.ts} +6 -11
  52. package/dist/src/components/enum/declaration.d.ts.map +1 -0
  53. package/dist/src/components/enum/declaration.js +55 -0
  54. package/dist/src/components/enum/declaration.js.map +1 -0
  55. package/dist/src/components/enum/declaration.ref.test.d.ts +2 -0
  56. package/dist/src/components/enum/declaration.ref.test.d.ts.map +1 -0
  57. package/dist/src/components/enum/declaration.ref.test.js +121 -0
  58. package/dist/src/components/enum/declaration.ref.test.js.map +1 -0
  59. package/dist/src/components/enum/declaration.test.d.ts +2 -0
  60. package/dist/src/components/enum/declaration.test.d.ts.map +1 -0
  61. package/dist/src/components/enum/declaration.test.js +40 -0
  62. package/dist/src/components/enum/declaration.test.js.map +1 -0
  63. package/dist/src/components/enum/member.d.ts +7 -0
  64. package/dist/src/components/enum/member.d.ts.map +1 -0
  65. package/dist/src/components/enum/member.js +30 -0
  66. package/dist/src/components/enum/member.js.map +1 -0
  67. package/dist/src/components/enum/member.test.d.ts +2 -0
  68. package/dist/src/components/enum/member.test.d.ts.map +1 -0
  69. package/dist/src/components/enum/member.test.js +29 -0
  70. package/dist/src/components/enum/member.test.js.map +1 -0
  71. package/dist/src/components/field/field.d.ts.map +1 -1
  72. package/dist/src/components/field/field.js +11 -18
  73. package/dist/src/components/field/field.js.map +1 -0
  74. package/dist/src/components/field/field.test.js +9 -8
  75. package/dist/src/components/field/field.test.js.map +1 -0
  76. package/dist/src/components/index.d.ts +7 -3
  77. package/dist/src/components/index.d.ts.map +1 -1
  78. package/dist/src/components/index.js +9 -4
  79. package/dist/src/components/index.js.map +1 -0
  80. package/dist/src/components/interface/declaration.d.ts.map +1 -1
  81. package/dist/src/components/interface/declaration.js +21 -22
  82. package/dist/src/components/interface/declaration.js.map +1 -0
  83. package/dist/src/components/interface/declaration.test.js +28 -36
  84. package/dist/src/components/interface/declaration.test.js.map +1 -0
  85. package/dist/src/components/interface/method.d.ts.map +1 -1
  86. package/dist/src/components/interface/method.js +9 -19
  87. package/dist/src/components/interface/method.js.map +1 -0
  88. package/dist/src/components/interface/method.test.js +40 -48
  89. package/dist/src/components/interface/method.test.js.map +1 -0
  90. package/dist/src/components/interface/property.d.ts.map +1 -1
  91. package/dist/src/components/interface/property.js +23 -40
  92. package/dist/src/components/interface/property.js.map +1 -0
  93. package/dist/src/components/interface/property.test.js +13 -12
  94. package/dist/src/components/interface/property.test.js.map +1 -0
  95. package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
  96. package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
  97. package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
  98. package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
  99. package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
  100. package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
  101. package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
  102. package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
  103. package/dist/src/components/lexical-scope.d.ts +8 -0
  104. package/dist/src/components/lexical-scope.d.ts.map +1 -0
  105. package/dist/src/components/lexical-scope.js +25 -0
  106. package/dist/src/components/lexical-scope.js.map +1 -0
  107. package/dist/src/components/method/method.d.ts +5 -2
  108. package/dist/src/components/method/method.d.ts.map +1 -1
  109. package/dist/src/components/method/method.js +9 -17
  110. package/dist/src/components/method/method.js.map +1 -0
  111. package/dist/src/components/method/method.test.js +13 -12
  112. package/dist/src/components/method/method.test.js.map +1 -0
  113. package/dist/src/components/method-scope.d.ts +8 -0
  114. package/dist/src/components/method-scope.d.ts.map +1 -0
  115. package/dist/src/components/method-scope.js +25 -0
  116. package/dist/src/components/method-scope.js.map +1 -0
  117. package/dist/src/components/namespace-scopes.d.ts +13 -0
  118. package/dist/src/components/namespace-scopes.d.ts.map +1 -0
  119. package/dist/src/components/namespace-scopes.js +45 -0
  120. package/dist/src/components/namespace-scopes.js.map +1 -0
  121. package/dist/src/components/namespace.d.ts +7 -0
  122. package/dist/src/components/namespace.d.ts.map +1 -0
  123. package/dist/src/components/namespace.js +47 -0
  124. package/dist/src/components/namespace.js.map +1 -0
  125. package/dist/src/components/namespace.ref.test.d.ts +2 -0
  126. package/dist/src/components/namespace.ref.test.d.ts.map +1 -0
  127. package/dist/src/components/namespace.ref.test.js +182 -0
  128. package/dist/src/components/namespace.ref.test.js.map +1 -0
  129. package/dist/src/components/namespace.test.d.ts.map +1 -0
  130. package/dist/src/components/namespace.test.js +79 -0
  131. package/dist/src/components/namespace.test.js.map +1 -0
  132. package/dist/src/components/parameters/parameters.d.ts +2 -3
  133. package/dist/src/components/parameters/parameters.d.ts.map +1 -1
  134. package/dist/src/components/parameters/parameters.js +15 -15
  135. package/dist/src/components/parameters/parameters.js.map +1 -0
  136. package/dist/src/components/parameters/parameters.test.d.ts +2 -0
  137. package/dist/src/components/parameters/parameters.test.d.ts.map +1 -0
  138. package/dist/src/components/parameters/parameters.test.js +154 -0
  139. package/dist/src/components/parameters/parameters.test.js.map +1 -0
  140. package/dist/src/components/property/property.d.ts +2 -2
  141. package/dist/src/components/property/property.d.ts.map +1 -1
  142. package/dist/src/components/property/property.js +30 -40
  143. package/dist/src/components/property/property.js.map +1 -0
  144. package/dist/src/components/property/property.test.js +16 -15
  145. package/dist/src/components/property/property.test.js.map +1 -0
  146. package/dist/src/components/record/declaration.d.ts +18 -0
  147. package/dist/src/components/record/declaration.d.ts.map +1 -1
  148. package/dist/src/components/record/declaration.js +21 -14
  149. package/dist/src/components/record/declaration.js.map +1 -0
  150. package/dist/src/components/record/declaration.test.js +52 -4
  151. package/dist/src/components/record/declaration.test.js.map +1 -0
  152. package/dist/src/components/source-file/source-file.d.ts +19 -0
  153. package/dist/src/components/source-file/source-file.d.ts.map +1 -0
  154. package/dist/src/components/source-file/source-file.js +59 -0
  155. package/dist/src/components/source-file/source-file.js.map +1 -0
  156. package/dist/src/components/source-file/source-file.test.d.ts +2 -0
  157. package/dist/src/components/source-file/source-file.test.d.ts.map +1 -0
  158. package/dist/src/components/source-file/source-file.test.js +136 -0
  159. package/dist/src/components/source-file/source-file.test.js.map +1 -0
  160. package/dist/src/components/stc/index.js +2 -1
  161. package/dist/src/components/stc/index.js.map +1 -0
  162. package/dist/src/components/struct/declaration.d.ts.map +1 -1
  163. package/dist/src/components/struct/declaration.js +6 -7
  164. package/dist/src/components/struct/declaration.js.map +1 -0
  165. package/dist/src/components/struct/declaration.test.js +32 -40
  166. package/dist/src/components/struct/declaration.test.js.map +1 -0
  167. package/dist/src/components/type-parameters/type-parameter-constraints.js +2 -1
  168. package/dist/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
  169. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +2 -1
  170. package/dist/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
  171. package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
  172. package/dist/src/components/type-parameters/type-parameter.js +9 -11
  173. package/dist/src/components/type-parameters/type-parameter.js.map +1 -0
  174. package/dist/src/components/type-parameters/type-parameters.js +2 -1
  175. package/dist/src/components/type-parameters/type-parameters.js.map +1 -0
  176. package/dist/src/components/type-parameters/type-parameters.test.js +5 -4
  177. package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -0
  178. package/dist/src/components/var/declaration.d.ts.map +1 -1
  179. package/dist/src/components/var/declaration.js +8 -9
  180. package/dist/src/components/var/declaration.js.map +1 -0
  181. package/dist/src/components/var/declaration.test.js +13 -21
  182. package/dist/src/components/var/declaration.test.js.map +1 -0
  183. package/dist/src/contexts/format-options.d.ts +5 -0
  184. package/dist/src/contexts/format-options.d.ts.map +1 -0
  185. package/dist/src/contexts/format-options.js +9 -0
  186. package/dist/src/contexts/format-options.js.map +1 -0
  187. package/dist/src/contexts/global-namespace.d.ts +5 -0
  188. package/dist/src/contexts/global-namespace.d.ts.map +1 -0
  189. package/dist/src/contexts/global-namespace.js +25 -0
  190. package/dist/src/contexts/global-namespace.js.map +1 -0
  191. package/dist/src/contexts/namespace.d.ts +8 -0
  192. package/dist/src/contexts/namespace.d.ts.map +1 -0
  193. package/dist/src/contexts/namespace.js +6 -0
  194. package/dist/src/contexts/namespace.js.map +1 -0
  195. package/dist/src/index.d.ts +2 -0
  196. package/dist/src/index.d.ts.map +1 -1
  197. package/dist/src/index.js +4 -1
  198. package/dist/src/index.js.map +1 -0
  199. package/dist/src/modifiers.d.ts +11 -0
  200. package/dist/src/modifiers.d.ts.map +1 -1
  201. package/dist/src/modifiers.js +2 -1
  202. package/dist/src/modifiers.js.map +1 -0
  203. package/dist/src/name-policy.js +2 -1
  204. package/dist/src/name-policy.js.map +1 -0
  205. package/dist/src/scopes/class.d.ts +10 -0
  206. package/dist/src/scopes/class.d.ts.map +1 -0
  207. package/dist/src/scopes/class.js +11 -0
  208. package/dist/src/scopes/class.js.map +1 -0
  209. package/dist/src/scopes/contexts.d.ts +9 -0
  210. package/dist/src/scopes/contexts.d.ts.map +1 -0
  211. package/dist/src/scopes/contexts.js +34 -0
  212. package/dist/src/scopes/contexts.js.map +1 -0
  213. package/dist/src/scopes/csharp.d.ts +10 -0
  214. package/dist/src/scopes/csharp.d.ts.map +1 -0
  215. package/dist/src/scopes/csharp.js +15 -0
  216. package/dist/src/scopes/csharp.js.map +1 -0
  217. package/dist/src/scopes/factories.d.ts +9 -0
  218. package/dist/src/scopes/factories.d.ts.map +1 -0
  219. package/dist/src/scopes/factories.js +24 -0
  220. package/dist/src/scopes/factories.js.map +1 -0
  221. package/dist/src/scopes/index.d.ts +10 -0
  222. package/dist/src/scopes/index.d.ts.map +1 -0
  223. package/dist/src/scopes/index.js +10 -0
  224. package/dist/src/scopes/index.js.map +1 -0
  225. package/dist/src/scopes/lexical.d.ts +7 -0
  226. package/dist/src/scopes/lexical.d.ts.map +1 -0
  227. package/dist/src/scopes/lexical.js +8 -0
  228. package/dist/src/scopes/lexical.js.map +1 -0
  229. package/dist/src/scopes/method.d.ts +9 -0
  230. package/dist/src/scopes/method.d.ts.map +1 -0
  231. package/dist/src/scopes/method.js +14 -0
  232. package/dist/src/scopes/method.js.map +1 -0
  233. package/dist/src/scopes/named-type.d.ts +22 -0
  234. package/dist/src/scopes/named-type.d.ts.map +1 -0
  235. package/dist/src/scopes/named-type.js +33 -0
  236. package/dist/src/scopes/named-type.js.map +1 -0
  237. package/dist/src/scopes/namespace.d.ts +11 -0
  238. package/dist/src/scopes/namespace.d.ts.map +1 -0
  239. package/dist/src/scopes/namespace.js +39 -0
  240. package/dist/src/scopes/namespace.js.map +1 -0
  241. package/dist/src/scopes/source-file.d.ts +16 -0
  242. package/dist/src/scopes/source-file.d.ts.map +1 -0
  243. package/dist/src/scopes/source-file.js +44 -0
  244. package/dist/src/scopes/source-file.js.map +1 -0
  245. package/dist/src/symbols/csharp.d.ts +87 -0
  246. package/dist/src/symbols/csharp.d.ts.map +1 -0
  247. package/dist/src/symbols/csharp.js +246 -0
  248. package/dist/src/symbols/csharp.js.map +1 -0
  249. package/dist/src/symbols/factories.d.ts +25 -0
  250. package/dist/src/symbols/factories.d.ts.map +1 -0
  251. package/dist/src/symbols/factories.js +93 -0
  252. package/dist/src/symbols/factories.js.map +1 -0
  253. package/dist/src/symbols/index.d.ts +5 -2
  254. package/dist/src/symbols/index.d.ts.map +1 -1
  255. package/dist/src/symbols/index.js +6 -2
  256. package/dist/src/symbols/index.js.map +1 -0
  257. package/dist/src/symbols/method.d.ts +13 -0
  258. package/dist/src/symbols/method.d.ts.map +1 -0
  259. package/dist/src/symbols/method.js +16 -0
  260. package/dist/src/symbols/method.js.map +1 -0
  261. package/dist/src/symbols/named-type.d.ts +19 -0
  262. package/dist/src/symbols/named-type.d.ts.map +1 -0
  263. package/dist/src/symbols/named-type.js +31 -0
  264. package/dist/src/symbols/named-type.js.map +1 -0
  265. package/dist/src/symbols/namespace.d.ts +22 -0
  266. package/dist/src/symbols/namespace.d.ts.map +1 -0
  267. package/dist/src/symbols/namespace.js +45 -0
  268. package/dist/src/symbols/namespace.js.map +1 -0
  269. package/dist/src/symbols/reference.d.ts +2 -2
  270. package/dist/src/symbols/reference.d.ts.map +1 -1
  271. package/dist/src/symbols/reference.js +50 -44
  272. package/dist/src/symbols/reference.js.map +1 -0
  273. package/dist/test/project-directory.test.js +20 -19
  274. package/dist/test/project-directory.test.js.map +1 -0
  275. package/dist/test/using.test.js +23 -21
  276. package/dist/test/using.test.js.map +1 -0
  277. package/dist/test/utils.d.ts.map +1 -1
  278. package/dist/test/utils.js +7 -4
  279. package/dist/test/utils.js.map +1 -0
  280. package/dist/test/vitest.setup.js +2 -1
  281. package/dist/test/vitest.setup.js.map +1 -0
  282. package/dist/tsconfig.tsbuildinfo +1 -1
  283. package/package.json +12 -6
  284. package/src/components/Declaration.tsx +3 -6
  285. package/src/components/Reference.tsx +3 -1
  286. package/src/components/UsingDirective.tsx +12 -2
  287. package/src/components/access-expression/access-expression.test.tsx +284 -0
  288. package/src/components/access-expression/access-expression.tsx +375 -0
  289. package/src/components/access-expression/part-descriptors.ts +175 -0
  290. package/src/components/class/declaration.test.tsx +142 -150
  291. package/src/components/class/declaration.tsx +20 -32
  292. package/src/components/constructor/constructor.test.tsx +10 -16
  293. package/src/components/constructor/constructor.tsx +13 -32
  294. package/src/components/enum/declaration.ref.test.tsx +93 -0
  295. package/src/components/enum/declaration.test.tsx +34 -0
  296. package/src/components/enum/declaration.tsx +65 -0
  297. package/src/components/enum/member.test.tsx +24 -0
  298. package/src/components/enum/member.tsx +36 -0
  299. package/src/components/field/field.test.tsx +7 -7
  300. package/src/components/field/field.tsx +12 -22
  301. package/src/components/index.ts +7 -3
  302. package/src/components/interface/declaration.test.tsx +26 -32
  303. package/src/components/interface/declaration.tsx +16 -18
  304. package/src/components/interface/method.test.tsx +38 -44
  305. package/src/components/interface/method.tsx +7 -20
  306. package/src/components/interface/property.test.tsx +11 -11
  307. package/src/components/interface/property.tsx +15 -34
  308. package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
  309. package/src/components/invocation-expression/invocation-expression.tsx +60 -0
  310. package/src/components/lexical-scope.tsx +29 -0
  311. package/src/components/method/method.test.tsx +11 -11
  312. package/src/components/method/method.tsx +12 -23
  313. package/src/components/method-scope.tsx +27 -0
  314. package/src/components/namespace-scopes.tsx +44 -0
  315. package/src/components/namespace.ref.test.tsx +139 -0
  316. package/src/components/namespace.test.tsx +52 -0
  317. package/src/components/namespace.tsx +45 -0
  318. package/src/components/parameters/parameters.test.tsx +117 -0
  319. package/src/components/parameters/parameters.tsx +11 -23
  320. package/src/components/property/property.test.tsx +14 -14
  321. package/src/components/property/property.tsx +23 -41
  322. package/src/components/record/declaration.test.tsx +47 -3
  323. package/src/components/record/declaration.tsx +34 -11
  324. package/src/components/source-file/source-file.test.tsx +96 -0
  325. package/src/components/source-file/source-file.tsx +98 -0
  326. package/src/components/struct/declaration.test.tsx +16 -22
  327. package/src/components/struct/declaration.tsx +4 -6
  328. package/src/components/type-parameters/type-parameter.tsx +14 -11
  329. package/src/components/type-parameters/type-parameters.test.tsx +4 -4
  330. package/src/components/var/declaration.test.tsx +8 -14
  331. package/src/components/var/declaration.tsx +12 -6
  332. package/src/contexts/format-options.ts +14 -0
  333. package/src/contexts/global-namespace.ts +29 -0
  334. package/src/contexts/namespace.ts +13 -0
  335. package/src/index.ts +2 -0
  336. package/src/modifiers.ts +14 -0
  337. package/src/scopes/class.ts +12 -0
  338. package/src/scopes/contexts.ts +45 -0
  339. package/src/scopes/csharp.ts +23 -0
  340. package/src/scopes/factories.ts +45 -0
  341. package/src/scopes/index.ts +9 -0
  342. package/src/scopes/lexical.ts +10 -0
  343. package/src/scopes/method.ts +22 -0
  344. package/src/scopes/named-type.ts +44 -0
  345. package/src/scopes/namespace.ts +59 -0
  346. package/src/scopes/source-file.ts +67 -0
  347. package/src/symbols/csharp.ts +339 -0
  348. package/src/symbols/factories.ts +215 -0
  349. package/src/symbols/index.ts +5 -2
  350. package/src/symbols/method.ts +26 -0
  351. package/src/symbols/named-type.ts +54 -0
  352. package/src/symbols/namespace.ts +62 -0
  353. package/src/symbols/reference.tsx +64 -0
  354. package/temp/api.json +6919 -2532
  355. package/test/project-directory.test.tsx +14 -16
  356. package/test/using.test.tsx +21 -21
  357. package/test/utils.tsx +2 -1
  358. package/tsconfig.json +4 -1
  359. package/tsdoc-metadata.json +1 -1
  360. package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
  361. package/dist/src/components/EnumDeclaration.js +0 -85
  362. package/dist/src/components/Namespace.d.ts +0 -11
  363. package/dist/src/components/Namespace.d.ts.map +0 -1
  364. package/dist/src/components/Namespace.js +0 -33
  365. package/dist/src/components/SourceFile.d.ts +0 -14
  366. package/dist/src/components/SourceFile.d.ts.map +0 -1
  367. package/dist/src/components/SourceFile.js +0 -69
  368. package/dist/src/symbols/csharp-output-symbol.d.ts +0 -8
  369. package/dist/src/symbols/csharp-output-symbol.d.ts.map +0 -1
  370. package/dist/src/symbols/csharp-output-symbol.js +0 -19
  371. package/dist/src/symbols/scopes.d.ts +0 -14
  372. package/dist/src/symbols/scopes.d.ts.map +0 -1
  373. package/dist/src/symbols/scopes.js +0 -31
  374. package/dist/test/enum.test.d.ts +0 -2
  375. package/dist/test/enum.test.d.ts.map +0 -1
  376. package/dist/test/enum.test.js +0 -178
  377. package/dist/test/namespace.test.d.ts.map +0 -1
  378. package/dist/test/namespace.test.js +0 -81
  379. package/dist/test/sourcefile.test.d.ts +0 -2
  380. package/dist/test/sourcefile.test.d.ts.map +0 -1
  381. package/dist/test/sourcefile.test.js +0 -58
  382. package/src/components/EnumDeclaration.tsx +0 -99
  383. package/src/components/Namespace.tsx +0 -35
  384. package/src/components/SourceFile.tsx +0 -78
  385. package/src/symbols/csharp-output-symbol.ts +0 -22
  386. package/src/symbols/reference.ts +0 -65
  387. package/src/symbols/scopes.ts +0 -41
  388. package/test/enum.test.tsx +0 -149
  389. package/test/namespace.test.tsx +0 -55
  390. package/test/sourcefile.test.tsx +0 -47
  391. /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
@@ -0,0 +1,44 @@
1
+ import { shallowReactive, track, TrackOpTypes, trigger, TriggerOpTypes, useScope } from "@alloy-js/core";
2
+ import { CSharpLexicalScope } from "./lexical.js";
3
+ export class CSharpSourceFileScope extends CSharpLexicalScope {
4
+ #usings = shallowReactive(new Set());
5
+ constructor(name, parent, options) {
6
+ super(name, parent, options);
7
+ }
8
+ get usings() {
9
+ return this.#usings;
10
+ }
11
+ get parent() {
12
+ return super.parent;
13
+ }
14
+ set parent(v) {
15
+ super.parent = v;
16
+ }
17
+ addUsing(using) {
18
+ this.#usings.add(using);
19
+ }
20
+ #hasBlockNamespace = false;
21
+ get hasBlockNamespace() {
22
+ track(this, TrackOpTypes.GET, "hasBlockNamespace");
23
+ return this.#hasBlockNamespace;
24
+ }
25
+ set hasBlockNamespace(value) {
26
+ const old = this.#hasBlockNamespace;
27
+ if (this.#hasBlockNamespace === value) {
28
+ return;
29
+ }
30
+ this.#hasBlockNamespace = value;
31
+ trigger(this, TriggerOpTypes.SET, "hasBlockNamespace", value, old);
32
+ }
33
+ }
34
+ export function useSourceFileScope() {
35
+ let scope = useScope();
36
+ while (scope) {
37
+ if (scope instanceof CSharpSourceFileScope) {
38
+ return scope;
39
+ }
40
+ scope = scope.parent;
41
+ }
42
+ return undefined;
43
+ }
44
+ //# sourceMappingURL=source-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["shallowReactive","track","TrackOpTypes","trigger","TriggerOpTypes","useScope","CSharpLexicalScope","CSharpSourceFileScope","usings","Set","constructor","name","parent","options","v","addUsing","using","add","hasBlockNamespace","GET","value","old","SET","useSourceFileScope","scope","undefined"],"sources":["../../../src/scopes/source-file.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,eAAe,EACfC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,EACdC,QAAQ,QACH,gBAAgB;AAEvB,SAASC,kBAAkB,QAAQ,cAAc;AAGjD,OAAO,MAAMC,qBAAqB,SAASD,kBAAkB,CAAC;EAC5D,CAACE,MAAM,GAAGR,eAAe,CAAuB,IAAIS,GAAG,CAAC,CAAC,CAAC;EAE1DC,WAAWA,CACTC,IAAY,EACZC,MAA6B,EAC7BC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EACA,IAAIL,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC,CAACA,MAAM;EACrB;EAEA,IAAII,MAAMA,CAAA,EAAG;IACX,OAAO,KAAK,CAACA,MAAM;EACrB;EAEA,IAAIA,MAAMA,CAACE,CAAuB,EAAE;IAClC,KAAK,CAACF,MAAM,GAAGE,CAAC;EAClB;EAEAC,QAAQA,CAACC,KAAsB,EAAE;IAC/B,IAAI,CAAC,CAACR,MAAM,CAACS,GAAG,CAACD,KAAK,CAAC;EACzB;EAEA,CAACE,iBAAiB,GAAY,KAAK;EACnC,IAAIA,iBAAiBA,CAAA,EAAG;IACtBjB,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACiB,GAAG,EAAE,mBAAmB,CAAC;IAClD,OAAO,IAAI,CAAC,CAACD,iBAAiB;EAChC;EAEA,IAAIA,iBAAiBA,CAACE,KAAc,EAAE;IACpC,MAAMC,GAAG,GAAG,IAAI,CAAC,CAACH,iBAAiB;IACnC,IAAI,IAAI,CAAC,CAACA,iBAAiB,KAAKE,KAAK,EAAE;MACrC;IACF;IACA,IAAI,CAAC,CAACF,iBAAiB,GAAGE,KAAK;IAC/BjB,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACkB,GAAG,EAAE,mBAAmB,EAAEF,KAAK,EAAEC,GAAG,CAAC;EACpE;AACF;AAEA,OAAO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,IAAIC,KAA8B,GAAGnB,QAAQ,CAAC,CAAC;EAC/C,OAAOmB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYjB,qBAAqB,EAAE;MAC1C,OAAOiB,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACZ,MAAM;EACtB;EAEA,OAAOa,SAAS;AAClB","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ import { Namekey, OutputSpace, OutputSymbol, OutputSymbolOptions } from "@alloy-js/core";
2
+ import { AccessModifiers, NonAccessModifiers } from "../modifiers.js";
3
+ import { NamespaceSymbol } from "./namespace.js";
4
+ export type DeclaredAccessibility = "private" | "protected" | "internal" | "public";
5
+ export interface CSharpSymbolOptions extends OutputSymbolOptions {
6
+ /**
7
+ * The accessibility of the symbol.
8
+ */
9
+ accessibility?: DeclaredAccessibility;
10
+ isOverride?: boolean;
11
+ isAbstract?: boolean;
12
+ isVirtual?: boolean;
13
+ isStatic?: boolean;
14
+ isSealed?: boolean;
15
+ isExtern?: boolean;
16
+ isReadOnly?: boolean;
17
+ /**
18
+ * Whether the value held by this symbol could be null.
19
+ */
20
+ isNullable?: boolean;
21
+ }
22
+ export type CSharpSymbolKinds = "symbol" | "named-type" | "method" | "field" | "property" | "namespace" | "event";
23
+ /**
24
+ * This is the base type for all symbols in C#.
25
+ *
26
+ * Many subtypes of this symbol exist for specific purposes. However, this symbol
27
+ * may be used in cases where a more specific symbol is not required.
28
+ *
29
+ * @remarks
30
+ *
31
+ * This is roughly equivalent to the Roslyn ISymbol interface:
32
+ * https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet-4.13.0
33
+ */
34
+ export declare class CSharpSymbol extends OutputSymbol {
35
+ #private;
36
+ readonly symbolKind: CSharpSymbolKinds;
37
+ constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, options?: CSharpSymbolOptions);
38
+ get enclosingNamespace(): NamespaceSymbol | undefined;
39
+ get accessibility(): DeclaredAccessibility | undefined;
40
+ set accessibility(value: DeclaredAccessibility | undefined);
41
+ copy(): CSharpSymbol;
42
+ /**
43
+ * Whether this symbol is static.
44
+ */
45
+ get isStatic(): boolean;
46
+ set isStatic(value: boolean);
47
+ /**
48
+ * Whether this symbol is virtual.
49
+ */
50
+ get isVirtual(): boolean;
51
+ set isVirtual(value: boolean);
52
+ /**
53
+ * Whether this symbol is abstract.
54
+ */
55
+ get isAbstract(): boolean;
56
+ set isAbstract(value: boolean);
57
+ /**
58
+ * Whether this symbol is override.
59
+ */
60
+ get isOverride(): boolean;
61
+ set isOverride(value: boolean);
62
+ /**
63
+ * Whether this symbol is sealed.
64
+ */
65
+ get isSealed(): boolean;
66
+ set isSealed(value: boolean);
67
+ /**
68
+ * Whether this symbol is extern.
69
+ */
70
+ get isExtern(): boolean;
71
+ set isExtern(value: boolean);
72
+ /**
73
+ * Whether this symbol is readonly.
74
+ */
75
+ get isReadOnly(): boolean;
76
+ set isReadOnly(value: boolean);
77
+ /**
78
+ * Whether this symbol might contain null. True if this symbol has a
79
+ * `typeSymbol` and that symbol is nullable, or else when this symbol has the
80
+ * `nullable` option set.
81
+ */
82
+ get isNullable(): boolean;
83
+ set isNullable(value: boolean);
84
+ }
85
+ export declare function accessibilityFromProps(props: AccessModifiers): "public" | "protected" | "private" | "internal";
86
+ export declare function nonAccessibilityFromProps(props: NonAccessModifiers): CSharpSymbolOptions;
87
+ //# sourceMappingURL=csharp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/symbols/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AACZ;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,EAAE,iBAAiB,CAAY;gBAGvD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,GAAE,mBAAwB;IAenC,IAAI,kBAAkB,IAAI,eAAe,GAAG,SAAS,CA4BpD;IAGD,IAAI,aAAa,IAKQ,qBAAqB,GAAG,SAAS,CAFzD;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,SAAS,EASzD;IAED,IAAI;IAyBJ;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAGvB;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAS3B;IAID;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAS1B;IAGD;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;IAKD;;;;OAIG;IACH,IAAI,UAAU,IASQ,OAAO,CAF5B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAS5B;CACF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,mDAQ5D;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAUrB"}
@@ -0,0 +1,246 @@
1
+ import { OutputDeclarationSpace, OutputMemberSpace, OutputSymbol, track, TrackOpTypes, trigger, TriggerOpTypes, watch } from "@alloy-js/core";
2
+ /**
3
+ * This is the base type for all symbols in C#.
4
+ *
5
+ * Many subtypes of this symbol exist for specific purposes. However, this symbol
6
+ * may be used in cases where a more specific symbol is not required.
7
+ *
8
+ * @remarks
9
+ *
10
+ * This is roughly equivalent to the Roslyn ISymbol interface:
11
+ * https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet-4.13.0
12
+ */
13
+ export class CSharpSymbol extends OutputSymbol {
14
+ symbolKind = "symbol";
15
+ constructor(name, spaces, options = {}) {
16
+ super(name, spaces, options);
17
+ this.#accessibility = options.accessibility;
18
+ this.#isAbstract = options.isAbstract ?? false;
19
+ this.#isVirtual = options.isVirtual ?? false;
20
+ this.#isStatic = options.isStatic ?? false;
21
+ this.#isOverride = options.isOverride ?? false;
22
+ this.#isSealed = options.isSealed ?? false;
23
+ this.#isExtern = options.isExtern ?? false;
24
+ this.#isReadOnly = options.isReadOnly ?? false;
25
+ this.#isNullable = options.isNullable; // undefined means unset, here.
26
+ }
27
+ get enclosingNamespace() {
28
+ if (this.spaces.length === 0) {
29
+ return undefined;
30
+ }
31
+
32
+ // todo: probably need to validate that a symbol can't belong to spaces in
33
+ // multiple namespaces.
34
+ const firstSpace = this.spaces[0];
35
+ if (firstSpace instanceof OutputMemberSpace) {
36
+ // this symbol is a member of something, so get the enclosing namespace from
37
+ // the symbol.
38
+
39
+ if (firstSpace.symbol.constructor.name === "NamespaceSymbol") {
40
+ // this is a namespace symbol, so return the namespace symbol itself.
41
+ // can't use instanceof here due to circular reference issues.
42
+ return firstSpace.symbol;
43
+ }
44
+ return firstSpace.symbol.enclosingNamespace;
45
+ } else if (firstSpace instanceof OutputDeclarationSpace) {
46
+ // this symbol is in a lexical scope, so get the namespace symbol from the
47
+ // scope.
48
+ return firstSpace.scope.enclosingNamespace;
49
+ }
50
+ throw new Error("No place to get namespace symbol from");
51
+ return undefined;
52
+ }
53
+ #accessibility;
54
+ get accessibility() {
55
+ track(this, TrackOpTypes.GET, "accessibility");
56
+ return this.#accessibility;
57
+ }
58
+ set accessibility(value) {
59
+ const old = this.#accessibility;
60
+ if (old === value) {
61
+ return;
62
+ }
63
+ this.#accessibility = value;
64
+ trigger(this, TriggerOpTypes.SET, "accessibility", value, old);
65
+ }
66
+ copy() {
67
+ const options = this.getCopyOptions();
68
+ const copy = new CSharpSymbol(this.name, undefined, {
69
+ ...options,
70
+ accessibility: this.#accessibility,
71
+ isStatic: this.#isStatic,
72
+ isVirtual: this.#isVirtual,
73
+ isAbstract: this.#isAbstract,
74
+ isOverride: this.#isOverride,
75
+ isSealed: this.#isSealed,
76
+ isExtern: this.#isExtern,
77
+ isReadOnly: this.#isReadOnly
78
+ });
79
+ this.initializeCopy(copy);
80
+ watch(() => this.accessibility, newAccessibility => {
81
+ copy.accessibility = newAccessibility;
82
+ });
83
+ return copy;
84
+ }
85
+
86
+ /**
87
+ * Whether this symbol is static.
88
+ */
89
+ get isStatic() {
90
+ track(this, TrackOpTypes.GET, "isStatic");
91
+ return this.#isStatic;
92
+ }
93
+ set isStatic(value) {
94
+ const old = this.#isStatic;
95
+ if (old === value) {
96
+ return;
97
+ }
98
+ this.#isStatic = value;
99
+ trigger(this, TriggerOpTypes.SET, "isStatic", value, old);
100
+ }
101
+ #isStatic = false;
102
+
103
+ /**
104
+ * Whether this symbol is virtual.
105
+ */
106
+ get isVirtual() {
107
+ track(this, TrackOpTypes.GET, "isVirtual");
108
+ return this.#isVirtual;
109
+ }
110
+ set isVirtual(value) {
111
+ const old = this.#isVirtual;
112
+ if (old === value) {
113
+ return;
114
+ }
115
+ this.#isVirtual = value;
116
+ trigger(this, TriggerOpTypes.SET, "isVirtual", value, old);
117
+ }
118
+ #isVirtual = false;
119
+
120
+ /**
121
+ * Whether this symbol is abstract.
122
+ */
123
+ get isAbstract() {
124
+ track(this, TrackOpTypes.GET, "isAbstract");
125
+ return this.#isAbstract;
126
+ }
127
+ set isAbstract(value) {
128
+ const old = this.#isAbstract;
129
+ if (old === value) {
130
+ return;
131
+ }
132
+ this.#isAbstract = value;
133
+ trigger(this, TriggerOpTypes.SET, "isAbstract", value, old);
134
+ }
135
+ #isAbstract = false;
136
+
137
+ /**
138
+ * Whether this symbol is override.
139
+ */
140
+ get isOverride() {
141
+ track(this, TrackOpTypes.GET, "isOverride");
142
+ return this.#isOverride;
143
+ }
144
+ set isOverride(value) {
145
+ const old = this.#isOverride;
146
+ if (old === value) {
147
+ return;
148
+ }
149
+ this.#isOverride = value;
150
+ trigger(this, TriggerOpTypes.SET, "isOverride", value, old);
151
+ }
152
+ #isOverride = false;
153
+
154
+ /**
155
+ * Whether this symbol is sealed.
156
+ */
157
+ get isSealed() {
158
+ track(this, TrackOpTypes.GET, "isSealed");
159
+ return this.#isSealed;
160
+ }
161
+ set isSealed(value) {
162
+ const old = this.#isSealed;
163
+ if (old === value) {
164
+ return;
165
+ }
166
+ this.#isSealed = value;
167
+ trigger(this, TriggerOpTypes.SET, "isSealed", value, old);
168
+ }
169
+ #isSealed = false;
170
+
171
+ /**
172
+ * Whether this symbol is extern.
173
+ */
174
+ get isExtern() {
175
+ track(this, TrackOpTypes.GET, "isExtern");
176
+ return this.#isExtern;
177
+ }
178
+ set isExtern(value) {
179
+ const old = this.#isExtern;
180
+ if (old === value) {
181
+ return;
182
+ }
183
+ this.#isExtern = value;
184
+ trigger(this, TriggerOpTypes.SET, "isExtern", value, old);
185
+ }
186
+ #isExtern = false;
187
+
188
+ /**
189
+ * Whether this symbol is readonly.
190
+ */
191
+ get isReadOnly() {
192
+ track(this, TrackOpTypes.GET, "isReadOnly");
193
+ return this.#isReadOnly;
194
+ }
195
+ set isReadOnly(value) {
196
+ const old = this.#isReadOnly;
197
+ if (old === value) {
198
+ return;
199
+ }
200
+ this.#isReadOnly = value;
201
+ trigger(this, TriggerOpTypes.SET, "isReadOnly", value, old);
202
+ }
203
+ #isReadOnly = false;
204
+ #isNullable = undefined;
205
+
206
+ /**
207
+ * Whether this symbol might contain null. True if this symbol has a
208
+ * `typeSymbol` and that symbol is nullable, or else when this symbol has the
209
+ * `nullable` option set.
210
+ */
211
+ get isNullable() {
212
+ if (this.hasTypeSymbol && this.#isNullable === undefined) {
213
+ return this.type.isNullable;
214
+ }
215
+ track(this, TrackOpTypes.GET, "isNullable");
216
+ return !!this.#isNullable;
217
+ }
218
+ set isNullable(value) {
219
+ const old = this.#isNullable;
220
+ if (old === value) {
221
+ return;
222
+ }
223
+ this.#isNullable = value;
224
+ trigger(this, TriggerOpTypes.SET, "isNullable", value, old);
225
+ }
226
+ }
227
+ export function accessibilityFromProps(props) {
228
+ for (const key of ["public", "internal", "protected", "private"]) {
229
+ if (props[key]) {
230
+ return key;
231
+ }
232
+ }
233
+ return "private";
234
+ }
235
+ export function nonAccessibilityFromProps(props) {
236
+ return {
237
+ isOverride: props.override ?? false,
238
+ isAbstract: props.abstract ?? false,
239
+ isVirtual: props.virtual ?? false,
240
+ isStatic: props.static ?? false,
241
+ isSealed: props.sealed ?? false,
242
+ isExtern: props.extern ?? false,
243
+ isReadOnly: props.readOnly ?? false
244
+ };
245
+ }
246
+ //# sourceMappingURL=csharp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","watch","CSharpSymbol","symbolKind","constructor","name","spaces","options","accessibility","isAbstract","isVirtual","isStatic","isOverride","isSealed","isExtern","isReadOnly","isNullable","enclosingNamespace","length","undefined","firstSpace","symbol","scope","Error","GET","value","old","SET","copy","getCopyOptions","initializeCopy","newAccessibility","hasTypeSymbol","type","accessibilityFromProps","props","key","nonAccessibilityFromProps","override","abstract","virtual","static","sealed","extern","readOnly"],"sources":["../../../src/symbols/csharp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { Namekey, OutputSymbolOptions } from "@alloy-js/core";
2
+ import { CSharpMethodScope } from "../scopes/method.js";
3
+ import { CSharpNamedTypeScope } from "../scopes/named-type.js";
4
+ import { CSharpSymbol, CSharpSymbolOptions } from "./csharp.js";
5
+ import { MethodKinds, MethodSymbol } from "./method.js";
6
+ import { NamedTypeSymbol, NamedTypeTypeKind } from "./named-type.js";
7
+ import { NamespaceSymbol } from "./namespace.js";
8
+ /**
9
+ * Create a symbol for a parameter in the current method scope.
10
+ */
11
+ export declare function createParameterSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
12
+ export interface CreateTypeParameterSymbolOptions extends CSharpSymbolOptions {
13
+ scope?: CSharpMethodScope | CSharpNamedTypeScope;
14
+ }
15
+ export declare function createTypeParameterSymbol(originalName: string | Namekey, options?: CreateTypeParameterSymbolOptions): CSharpSymbol;
16
+ export declare function createFieldSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
17
+ export declare function createNamedTypeSymbol(name: string | Namekey, kind: NamedTypeTypeKind, options?: OutputSymbolOptions): NamedTypeSymbol;
18
+ export declare function createNamespaceSymbol(name: string): NamespaceSymbol;
19
+ export interface CreateMethodSymbolOptions extends CSharpSymbolOptions {
20
+ methodKind?: MethodKinds;
21
+ }
22
+ export declare function createMethodSymbol(originalName: string | Namekey, options?: CreateMethodSymbolOptions): MethodSymbol;
23
+ export declare function createPropertySymbol(name: string | Namekey, options: CSharpSymbolOptions): CSharpSymbol;
24
+ export declare function createVariableSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
25
+ //# sourceMappingURL=factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBAgBlC;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,KAAK,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;CAClD;AACD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,gCAAqC,gBAiB/C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA0BlC;AASD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB,mBAM9B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,mBAOjD;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,yBAA8B,gBAsBxC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,EAAE,mBAAmB,gBAU7B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA6BlC"}
@@ -0,0 +1,93 @@
1
+ import { onCleanup, useBinder } from "@alloy-js/core";
2
+ import { getGlobalNamespace } from "../contexts/global-namespace.js";
3
+ import { useCSharpNamePolicy } from "../name-policy.js";
4
+ import { CSharpClassScope } from "../scopes/class.js";
5
+ import { useCSharpScope, useNamedTypeScope } from "../scopes/contexts.js";
6
+ import { CSharpLexicalScope } from "../scopes/lexical.js";
7
+ import { CSharpMethodScope } from "../scopes/method.js";
8
+ import { CSharpNamedTypeScope } from "../scopes/named-type.js";
9
+ import { CSharpNamespaceScope, useEnclosingNamespaceScope } from "../scopes/namespace.js";
10
+ import { CSharpSourceFileScope } from "../scopes/source-file.js";
11
+ import { CSharpSymbol } from "./csharp.js";
12
+ import { MethodSymbol } from "./method.js";
13
+ import { NamedTypeSymbol } from "./named-type.js";
14
+ import { NamespaceSymbol } from "./namespace.js";
15
+
16
+ /**
17
+ * Create a symbol for a parameter in the current method scope.
18
+ */
19
+ export function createParameterSymbol(originalName, options = {}) {
20
+ const scope = useCSharpScope();
21
+ if (!(scope instanceof CSharpMethodScope) && !(scope instanceof CSharpClassScope)) {
22
+ throw new Error(`Can't create parameter symbol outside of a method or class scope.`);
23
+ }
24
+ return new CSharpSymbol(originalName, scope.parameters, withNamePolicy(options, "parameter"));
25
+ }
26
+ export function createTypeParameterSymbol(originalName, options = {}) {
27
+ const scope = options.scope ?? useCSharpScope();
28
+ if (!(scope instanceof CSharpMethodScope) && !(scope instanceof CSharpNamedTypeScope)) {
29
+ throw new Error("Can't create a type parameter symbol outside of a method or named type scope.");
30
+ }
31
+ return new CSharpSymbol(originalName, scope.typeParameters, withNamePolicy(options, "type-parameter"));
32
+ }
33
+ export function createFieldSymbol(originalName, options = {}) {
34
+ let nameElement = "class-member-private";
35
+ if (options.accessibility === "public" || options.accessibility === "internal" || options.accessibility === "protected") {
36
+ nameElement = "class-member-public";
37
+ }
38
+ const scope = useNamedTypeScope();
39
+ if (scope.ownerSymbol.typeKind !== "class" && scope.ownerSymbol.typeKind !== "struct") {
40
+ throw new Error(`Can't define a field outside of a class or struct.`);
41
+ }
42
+ return new CSharpSymbol(originalName, scope.members, withNamePolicy(options, nameElement));
43
+ }
44
+ function withCleanup(sym) {
45
+ onCleanup(() => {
46
+ sym.delete();
47
+ });
48
+ return sym;
49
+ }
50
+ export function createNamedTypeSymbol(name, kind, options) {
51
+ const scope = useNamedTypeScope();
52
+ return withCleanup(new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options));
53
+ }
54
+ export function createNamespaceSymbol(name) {
55
+ const scope = useEnclosingNamespaceScope();
56
+ const nsSymbol = scope?.ownerSymbol ?? getGlobalNamespace(useBinder());
57
+ if (nsSymbol.members.symbolNames.has(name)) {
58
+ return nsSymbol.members.symbolNames.get(name);
59
+ }
60
+ return withCleanup(new NamespaceSymbol(name, nsSymbol));
61
+ }
62
+ export function createMethodSymbol(originalName, options = {}) {
63
+ const scope = useNamedTypeScope();
64
+ if (scope.ownerSymbol.typeKind !== "class" && scope.ownerSymbol.typeKind !== "interface" && scope.ownerSymbol.typeKind !== "struct") {
65
+ throw new Error(`Can't define a method outside of a class, interface, or struct.`);
66
+ }
67
+ return withCleanup(new MethodSymbol(originalName, scope.members, options.methodKind ?? "ordinary", withNamePolicy(options, "class-method")));
68
+ }
69
+ export function createPropertySymbol(name, options) {
70
+ const scope = useNamedTypeScope();
71
+ return withCleanup(new CSharpSymbol(name, scope.members, withNamePolicy(options, "class-property")));
72
+ }
73
+ export function createVariableSymbol(originalName, options = {}) {
74
+ let scope = useCSharpScope();
75
+ if (scope instanceof CSharpNamespaceScope && scope.ownerSymbol === getGlobalNamespace(scope.ownerSymbol.binder)) {
76
+ // allow top-level variables in the global namespace, which are local to the source file.
77
+ scope = scope.parent;
78
+ if (!(scope instanceof CSharpSourceFileScope)) {
79
+ throw new Error("Variable declarations must be in the global namespace or within a lexical scope.");
80
+ }
81
+ }
82
+ if (!(scope instanceof CSharpLexicalScope)) {
83
+ throw new Error(`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
84
+ }
85
+ return withCleanup(new CSharpSymbol(originalName, scope.localVariables, withNamePolicy(options, "variable")));
86
+ }
87
+ function withNamePolicy(options, elementType) {
88
+ return {
89
+ ...options,
90
+ namePolicy: options.namePolicy ?? useCSharpNamePolicy().for(elementType)
91
+ };
92
+ }
93
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["onCleanup","useBinder","getGlobalNamespace","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","useEnclosingNamespaceScope","CSharpSourceFileScope","CSharpSymbol","MethodSymbol","NamedTypeSymbol","NamespaceSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createFieldSymbol","nameElement","accessibility","ownerSymbol","typeKind","members","withCleanup","sym","delete","createNamedTypeSymbol","name","kind","createNamespaceSymbol","nsSymbol","symbolNames","has","get","createMethodSymbol","methodKind","createPropertySymbol","createVariableSymbol","binder","parent","constructor","localVariables","elementType","namePolicy","for"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,7 @@
1
- export * from "./csharp-output-symbol.js";
1
+ export * from "./csharp.js";
2
+ export * from "./factories.js";
3
+ export * from "./method.js";
4
+ export * from "./named-type.js";
5
+ export * from "./namespace.js";
2
6
  export * from "./reference.js";
3
- export * from "./scopes.js";
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -1,3 +1,7 @@
1
- export * from "./csharp-output-symbol.js";
1
+ export * from "./csharp.js";
2
+ export * from "./factories.js";
3
+ export * from "./method.js";
4
+ export * from "./named-type.js";
5
+ export * from "./namespace.js";
2
6
  export * from "./reference.js";
3
- export * from "./scopes.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/symbols/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,gBAAgB;AAC9B,cAAc,aAAa;AAC3B,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { Namekey, OutputSpace } from "@alloy-js/core";
2
+ import { CSharpSymbol, CSharpSymbolOptions } from "./csharp.js";
3
+ export type MethodKinds = "ordinary" | "constructor";
4
+ /**
5
+ * A symbol for a method or constructor of a class, interface, or struct.
6
+ */
7
+ export declare class MethodSymbol extends CSharpSymbol {
8
+ #private;
9
+ readonly symbolKind = "method";
10
+ get methodKind(): MethodKinds;
11
+ constructor(name: string | Namekey, spaces: OutputSpace | undefined, kind: MethodKinds, options?: CSharpSymbolOptions);
12
+ }
13
+ //# sourceMappingURL=method.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../src/symbols/method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAErD;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;;IAC5C,SAAgB,UAAU,YAAY;IAGtC,IAAI,UAAU,gBAEb;gBAGC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,mBAAwB;CAKpC"}
@@ -0,0 +1,16 @@
1
+ import { CSharpSymbol } from "./csharp.js";
2
+ /**
3
+ * A symbol for a method or constructor of a class, interface, or struct.
4
+ */
5
+ export class MethodSymbol extends CSharpSymbol {
6
+ symbolKind = "method";
7
+ #methodKind;
8
+ get methodKind() {
9
+ return this.#methodKind;
10
+ }
11
+ constructor(name, spaces, kind, options = {}) {
12
+ super(name, spaces, options);
13
+ this.#methodKind = kind;
14
+ }
15
+ }
16
+ //# sourceMappingURL=method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CSharpSymbol","MethodSymbol","symbolKind","methodKind","constructor","name","spaces","kind","options"],"sources":["../../../src/symbols/method.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,YAAY,QAA6B,aAAa;AAI/D;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASD,YAAY,CAAC;EAC7BE,UAAU,GAAG,QAAQ;EAErC,CAACC,UAAU;EACX,IAAIA,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC,CAACA,UAAU;EACzB;EAEAC,WAAWA,CACTC,IAAsB,EACtBC,MAA+B,EAC/BC,IAAiB,EACjBC,OAA4B,GAAG,CAAC,CAAC,EACjC;IACA,KAAK,CAACH,IAAI,EAAEC,MAAM,EAAEE,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACL,UAAU,GAAGI,IAAI;EACzB;AACF","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { Namekey, OutputSpace, OutputSymbolOptions } from "@alloy-js/core";
2
+ import { CSharpSymbol } from "./csharp.js";
3
+ export type NamedTypeTypeKind = "class" | "interface" | "enum" | "namespace" | "struct" | "record";
4
+ export type NamedTypeSymbolKind = "named-type" | "namespace";
5
+ /**
6
+ * A symbol for a named type in C# such as a class, interface, enum, and so
7
+ * forth. Named types are generally defined in a namespace, and can have members
8
+ * of their own.
9
+ */
10
+ export declare class NamedTypeSymbol extends CSharpSymbol {
11
+ #private;
12
+ readonly symbolKind: NamedTypeSymbolKind;
13
+ static readonly memberSpaces: string[];
14
+ constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, kind: NamedTypeTypeKind, options?: OutputSymbolOptions);
15
+ get typeKind(): NamedTypeTypeKind;
16
+ copy(): NamedTypeSymbol;
17
+ get members(): import("@alloy-js/core").OutputMemberSpace;
18
+ }
19
+ //# sourceMappingURL=named-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-type.d.ts","sourceRoot":"","sources":["../../../src/symbols/named-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,WAAW,GACX,MAAM,GACN,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,YAAY;;IAC/C,SAAgB,UAAU,EAAE,mBAAmB,CAAgB;IAC/D,gBAAuB,YAAY,WAAe;gBAGhD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB;IAO/B,IAAI,QAAQ,sBAEX;IAED,IAAI;IAYJ,IAAI,OAAO,+CAEV;CACF"}