@alloy-js/csharp 0.23.0-dev.0 → 0.23.0-dev.3

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 (69) hide show
  1. package/CHANGELOG.md +1 -14
  2. package/dist/src/components/access-expression/access-expression.d.ts +1 -1
  3. package/dist/src/components/access-expression/access-expression.d.ts.map +1 -1
  4. package/dist/src/components/enum/member.d.ts.map +1 -1
  5. package/dist/src/components/enum/member.js +2 -2
  6. package/dist/src/components/enum/member.js.map +1 -1
  7. package/dist/src/components/lexical-scope.d.ts.map +1 -1
  8. package/dist/src/components/lexical-scope.js +4 -3
  9. package/dist/src/components/lexical-scope.js.map +1 -1
  10. package/dist/src/components/method-scope.d.ts.map +1 -1
  11. package/dist/src/components/method-scope.js +4 -3
  12. package/dist/src/components/method-scope.js.map +1 -1
  13. package/dist/src/components/source-file/source-file.d.ts +2 -0
  14. package/dist/src/components/source-file/source-file.d.ts.map +1 -1
  15. package/dist/src/components/source-file/source-file.js +41 -3
  16. package/dist/src/components/source-file/source-file.js.map +1 -1
  17. package/dist/src/components/source-file/source-file.test.js +40 -1
  18. package/dist/src/components/source-file/source-file.test.js.map +1 -1
  19. package/dist/src/contexts/global-namespace.d.ts.map +1 -1
  20. package/dist/src/contexts/global-namespace.js +4 -4
  21. package/dist/src/contexts/global-namespace.js.map +1 -1
  22. package/dist/src/create-library.d.ts.map +1 -1
  23. package/dist/src/create-library.js +7 -7
  24. package/dist/src/create-library.js.map +1 -1
  25. package/dist/src/scopes/csharp.d.ts +1 -0
  26. package/dist/src/scopes/csharp.d.ts.map +1 -1
  27. package/dist/src/scopes/csharp.js +10 -0
  28. package/dist/src/scopes/csharp.js.map +1 -1
  29. package/dist/src/scopes/factories.d.ts.map +1 -1
  30. package/dist/src/scopes/factories.js +4 -3
  31. package/dist/src/scopes/factories.js.map +1 -1
  32. package/dist/src/scopes/namespace.js +2 -2
  33. package/dist/src/scopes/namespace.js.map +1 -1
  34. package/dist/src/symbols/csharp.d.ts +1 -0
  35. package/dist/src/symbols/csharp.d.ts.map +1 -1
  36. package/dist/src/symbols/csharp.js +19 -2
  37. package/dist/src/symbols/csharp.js.map +1 -1
  38. package/dist/src/symbols/factories.d.ts.map +1 -1
  39. package/dist/src/symbols/factories.js +42 -10
  40. package/dist/src/symbols/factories.js.map +1 -1
  41. package/dist/src/symbols/named-type.d.ts +1 -0
  42. package/dist/src/symbols/named-type.d.ts.map +1 -1
  43. package/dist/src/symbols/named-type.js +12 -1
  44. package/dist/src/symbols/named-type.js.map +1 -1
  45. package/dist/src/symbols/namespace.d.ts +1 -0
  46. package/dist/src/symbols/namespace.d.ts.map +1 -1
  47. package/dist/src/symbols/namespace.js +11 -1
  48. package/dist/src/symbols/namespace.js.map +1 -1
  49. package/dist/testing/create-wrapper.d.ts.map +1 -1
  50. package/dist/testing/create-wrapper.js +2 -1
  51. package/dist/testing/create-wrapper.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +11 -7
  54. package/src/components/enum/member.tsx +16 -5
  55. package/src/components/lexical-scope.tsx +15 -4
  56. package/src/components/method-scope.tsx +15 -4
  57. package/src/components/source-file/source-file.test.tsx +35 -1
  58. package/src/components/source-file/source-file.tsx +44 -2
  59. package/src/contexts/global-namespace.ts +11 -6
  60. package/src/create-library.ts +18 -9
  61. package/src/scopes/csharp.ts +11 -0
  62. package/src/scopes/factories.ts +4 -4
  63. package/src/scopes/namespace.ts +2 -2
  64. package/src/symbols/csharp.ts +20 -1
  65. package/src/symbols/factories.ts +46 -34
  66. package/src/symbols/named-type.ts +15 -3
  67. package/src/symbols/namespace.ts +12 -2
  68. package/temp/api.json +196 -234
  69. package/testing/create-wrapper.tsx +2 -1
package/CHANGELOG.md CHANGED
@@ -6,7 +6,6 @@
6
6
 
7
7
  - [#328](https://github.com/alloy-framework/alloy/pull/328) Empty namespaces now don't render an empty block.
8
8
 
9
-
10
9
  ## 0.21.0
11
10
 
12
11
  ### Bug Fixes
@@ -39,7 +38,6 @@
39
38
 
40
39
  - [#283](https://github.com/alloy-framework/alloy/pull/283) Rename `UsingDirective` -> `Usings`
41
40
 
42
-
43
41
  ## 0.20.0
44
42
 
45
43
  ### Bug Fixes
@@ -58,13 +56,12 @@
58
56
 
59
57
  - [#206](https://github.com/alloy-framework/alloy/pull/206) Update core's representation of symbols and scopes. These changes should not impact usage of language components in code generators, but there are some significant changes for language library implementations. See https://github.com/alloy-framework/alloy/pull/206 for more details.
60
58
 
61
-
62
59
  ## 0.19.0
63
60
 
64
61
  ### Features
65
62
 
66
63
  - [#246](https://github.com/alloy-framework/alloy/pull/246) Add support for `struct` declaration
67
- - [#250](https://github.com/alloy-framework/alloy/pull/250) Fields support `new`, `readonly`, `static` and `volatile` modifier
64
+ - [#250](https://github.com/alloy-framework/alloy/pull/250) Fields support `new`, `readonly`, `static` and `volatile` modifier
68
65
  - [#250](https://github.com/alloy-framework/alloy/pull/250) Private field respect c# naming convention of `_camelCase`
69
66
  - [#251](https://github.com/alloy-framework/alloy/pull/251) Support `readonly`, `override` and `extern` modifier for `Method`
70
67
  - [#247](https://github.com/alloy-framework/alloy/pull/247) Add support for expression body syntax in methods
@@ -75,7 +72,6 @@
75
72
  - [#248](https://github.com/alloy-framework/alloy/pull/248) Rename `ClassConstructor` to `Constructor` to allow using it with `StructDeclaration`
76
73
  - [#248](https://github.com/alloy-framework/alloy/pull/248) Rename `ClassMethod` to `Method` to allow using it with `StructDeclaration`
77
74
 
78
-
79
75
  ## 0.18.0
80
76
 
81
77
  ### Bug Fixes
@@ -106,7 +102,6 @@
106
102
 
107
103
  - [#192](https://github.com/alloy-framework/alloy/pull/192) Rename `Class` -> `ClassDeclaration` and `Enum` -> `EnumDeclaration`
108
104
 
109
-
110
105
  ## 0.17.0
111
106
 
112
107
  No changes, version bump only.
@@ -137,7 +132,6 @@ No changes, version bump only.
137
132
 
138
133
  - [#105](https://github.com/alloy-framework/alloy/pull/105) Updated dependencies
139
134
 
140
-
141
135
  ## 0.10.0
142
136
 
143
137
  No changes, version bump only.
@@ -152,7 +146,6 @@ No changes, version bump only.
152
146
 
153
147
  - [#67](https://github.com/alloy-framework/alloy/pull/67) Removed all default refkeys based on declaration name.
154
148
 
155
-
156
149
  ## 0.7.0
157
150
 
158
151
  No changes, version bump only.
@@ -163,7 +156,6 @@ No changes, version bump only.
163
156
 
164
157
  - [#56](https://github.com/alloy-framework/alloy/pull/56) Emitted code is now formatted properly.
165
158
 
166
-
167
159
  ## 0.5.0
168
160
 
169
161
  No changes, version bump only.
@@ -174,19 +166,14 @@ No changes, version bump only.
174
166
 
175
167
  - [80f1ba8](https://github.com/alloy-framework/alloy/commit/80f1ba88470960ce57487b644ae3c3f37f9c4690) Indent source files with 4 spaces as Anders intended.
176
168
 
177
-
178
169
  ## 0.3.0
179
170
 
180
171
  ### Features
181
172
 
182
173
  - [#38](https://github.com/alloy-framework/alloy/pull/38) Indent source files with 4 spaces as Anders intended.
183
174
 
184
-
185
-
186
-
187
175
  ## 0.2.0
188
176
 
189
177
  ### Bug Fixes
190
178
 
191
179
  - [#31](https://github.com/alloy-framework/alloy/pull/31) Update license to MIT
192
-
@@ -3,7 +3,7 @@ import { CSharpSymbol } from "../../symbols/csharp.js";
3
3
  export interface AccessExpressionProps {
4
4
  children: Children;
5
5
  }
6
- export declare function AccessExpression(props: AccessExpressionProps): string | number | boolean | void | import("@alloy-js/core").RenderableObject | import("@alloy-js/core").RefkeyableObject | (() => Children) | import("@vue/reactivity").Ref<any, any> | import("@alloy-js/core").CustomContext | import("@alloy-js/core").IndentIntrinsicElement | import("@alloy-js/core").IndentIfBreakIntrinsicElement | import("@alloy-js/core").BrIntrinsicElement | import("@alloy-js/core").LineIntrinsicElement | import("@alloy-js/core").HbrIntrinsicElement | import("@alloy-js/core").HardlineIntrinsicElement | import("@alloy-js/core").SbrIntrinsicElement | import("@alloy-js/core").SoftlineIntrinsicElement | import("@alloy-js/core").GroupIntrinsicElement | import("@alloy-js/core").AlignIntrinsicElement | import("@alloy-js/core").FillIntrinsicElement | import("@alloy-js/core").BreakParentIntrinsicElement | import("@alloy-js/core").LineSuffixIntrinsicElement | import("@alloy-js/core").LineSuffixBoundaryIntrinsicElement | import("@alloy-js/core").DedentIntrinsicElement | import("@alloy-js/core").LiterallineIntrinsicElement | import("@alloy-js/core").LbrIntrinsicElement | import("@alloy-js/core").DedentToRootIntrinsicElement | import("@alloy-js/core").MarkAsRootIntrinsicElement | import("@alloy-js/core").IfBreakIntrinsicElement | Children[] | import("@vue/reactivity").ComputedRef<Children> | null;
6
+ export declare function AccessExpression(props: AccessExpressionProps): Children;
7
7
  export declare namespace AccessExpression {
8
8
  var Part: (props: AccessExpressionPartProps) => void;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"access-expression.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/access-expression.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,UAAU,EAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAWvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,6yCA6B5D;yBA7Be,gBAAgB;sBA0GS,yBAAyB;;AA1DlE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"access-expression.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/access-expression.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,UAAU,EAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAWvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,YA6B5D;yBA7Be,gBAAgB;sBA0GS,yBAAyB;;AA1DlE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../src/components/enum/member.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMhF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,qCAuBhD"}
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,5 +1,5 @@
1
1
  import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
- import { MemberDeclaration, MemberName } from "@alloy-js/core";
2
+ 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";
@@ -16,7 +16,7 @@ export function EnumMember(props) {
16
16
  if (symbol.typeKind !== "enum") {
17
17
  throw new Error("EnumMember must be used within an EnumDeclaration.");
18
18
  }
19
- const thisEnumValueSymbol = new CSharpSymbol(props.name, symbol.members, {
19
+ const thisEnumValueSymbol = createSymbol(CSharpSymbol, props.name, symbol.members, {
20
20
  refkeys: props.refkey,
21
21
  namePolicy: useCSharpNamePolicy().for("enum-member")
22
22
  });
@@ -1 +1 @@
1
- {"version":3,"names":["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,SAASA,iBAAiB,EAAEC,UAAU,QAAyB,gBAAgB;AAC/E,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,GAAG,IAAIR,YAAY,CAACE,KAAK,CAACO,IAAI,EAAEJ,MAAM,CAACK,OAAO,EAAE;IACvEC,OAAO,EAAET,KAAK,CAACU,MAAM;IACrBC,UAAU,EAAEf,mBAAmB,CAAC,CAAC,CAACgB,GAAG,CAAC,aAAa;EACrD,CAAC,CAAC;EAEF,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","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 +1 @@
1
- {"version":3,"file":"lexical-scope.d.ts","sourceRoot":"","sources":["../../../src/components/lexical-scope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIhF,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;CAAG;AAC/E,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;CAAG;AAE7E,MAAM,MAAM,iBAAiB,GACzB,+BAA+B,GAC/B,8BAA8B,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qCAiBpD"}
1
+ {"version":3,"file":"lexical-scope.d.ts","sourceRoot":"","sources":["../../../src/components/lexical-scope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,+BAAgC,SAAQ,mBAAmB;CAAG;AAC/E,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;CAAG;AAE7E,MAAM,MAAM,iBAAiB,GACzB,+BAA+B,GAC/B,8BAA8B,CAAC;AAEnC,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,qCAuBpD"}
@@ -1,5 +1,5 @@
1
1
  import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
- import { Scope } from "@alloy-js/core";
2
+ import { Scope, createScope } from "@alloy-js/core";
3
3
  import { useCSharpScope } from "../scopes/contexts.js";
4
4
  import { CSharpLexicalScope } from "../scopes/lexical.js";
5
5
  export function LexicalScope(props) {
@@ -11,8 +11,9 @@ export function LexicalScope(props) {
11
11
  scope = props.value;
12
12
  } else {
13
13
  const parentScope = useCSharpScope();
14
- scope = new CSharpLexicalScope(props.name ?? "lexical scope", parentScope, {
15
- ...props
14
+ scope = createScope(CSharpLexicalScope, props.name ?? "lexical scope", parentScope, {
15
+ ...props,
16
+ binder: parentScope?.binder
16
17
  });
17
18
  }
18
19
  return _$createComponent(Scope, {
@@ -1 +1 @@
1
- {"version":3,"names":["Scope","useCSharpScope","CSharpLexicalScope","LexicalScope","props","scope","value","Error","parentScope","name","_$createComponent","children"],"sources":["../../../src/components/lexical-scope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,KAAK,QAAiD,gBAAgB;AAC/E,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,kBAAkB,QAAQ,sBAAsB;AASzD,OAAO,SAASC,YAAYA,CAACC,KAAwB,EAAE;EACrD,IAAIC,KAAK;EACT,IAAI,OAAO,IAAID,KAAK,EAAE;IACpB,IAAI,EAAEA,KAAK,CAACE,KAAK,YAAYJ,kBAAkB,CAAC,EAAE;MAChD,MAAM,IAAIK,KAAK,CACb,0DACF,CAAC;IACH;IACAF,KAAK,GAAGD,KAAK,CAACE,KAAK;EACrB,CAAC,MAAM;IACL,MAAME,WAAW,GAAGP,cAAc,CAAC,CAAC;IACpCI,KAAK,GAAG,IAAIH,kBAAkB,CAACE,KAAK,CAACK,IAAI,IAAI,eAAe,EAAED,WAAW,EAAE;MACzE,GAAGJ;IACL,CAAC,CAAC;EACJ;EAEA,OAAAM,iBAAA,CAAQV,KAAK;IAACM,KAAK,EAAED,KAAK;IAAA,IAAAM,SAAA;MAAA,OAAGP,KAAK,CAACO,QAAQ;IAAA;EAAA;AAC7C","ignoreList":[]}
1
+ {"version":3,"names":["Scope","createScope","useCSharpScope","CSharpLexicalScope","LexicalScope","props","scope","value","Error","parentScope","name","binder","_$createComponent","children"],"sources":["../../../src/components/lexical-scope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAGLC,WAAW,QACN,gBAAgB;AACvB,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,kBAAkB,QAAQ,sBAAsB;AASzD,OAAO,SAASC,YAAYA,CAACC,KAAwB,EAAE;EACrD,IAAIC,KAAK;EACT,IAAI,OAAO,IAAID,KAAK,EAAE;IACpB,IAAI,EAAEA,KAAK,CAACE,KAAK,YAAYJ,kBAAkB,CAAC,EAAE;MAChD,MAAM,IAAIK,KAAK,CACb,0DACF,CAAC;IACH;IACAF,KAAK,GAAGD,KAAK,CAACE,KAAK;EACrB,CAAC,MAAM;IACL,MAAME,WAAW,GAAGP,cAAc,CAAC,CAAC;IACpCI,KAAK,GAAGL,WAAW,CACjBE,kBAAkB,EAClBE,KAAK,CAACK,IAAI,IAAI,eAAe,EAC7BD,WAAW,EACX;MACE,GAAGJ,KAAK;MACRM,MAAM,EAAEF,WAAW,EAAEE;IACvB,CACF,CAAC;EACH;EAEA,OAAAC,iBAAA,CAAQZ,KAAK;IAACO,KAAK,EAAED,KAAK;IAAA,IAAAO,SAAA;MAAA,OAAGR,KAAK,CAACQ,QAAQ;IAAA;EAAA;AAC7C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"method-scope.d.ts","sourceRoot":"","sources":["../../../src/components/method-scope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIhF,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;CAAG;AAC9E,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;CAAG;AAE5E,MAAM,MAAM,gBAAgB,GACxB,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qCAelD"}
1
+ {"version":3,"file":"method-scope.d.ts","sourceRoot":"","sources":["../../../src/components/method-scope.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;CAAG;AAC9E,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;CAAG;AAE5E,MAAM,MAAM,gBAAgB,GACxB,8BAA8B,GAC9B,6BAA6B,CAAC;AAElC,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qCAqBlD"}
@@ -1,5 +1,5 @@
1
1
  import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
- import { Scope } from "@alloy-js/core";
2
+ import { Scope, createScope } from "@alloy-js/core";
3
3
  import { useCSharpScope } from "../scopes/contexts.js";
4
4
  import { CSharpMethodScope } from "../scopes/method.js";
5
5
  export function MethodScope(props) {
@@ -11,8 +11,9 @@ export function MethodScope(props) {
11
11
  scope = props.value;
12
12
  } else {
13
13
  const parentScope = useCSharpScope();
14
- scope = new CSharpMethodScope(props.name ?? "method scope", parentScope, {
15
- ...props
14
+ scope = createScope(CSharpMethodScope, props.name ?? "method scope", parentScope, {
15
+ ...props,
16
+ binder: parentScope?.binder
16
17
  });
17
18
  }
18
19
  return _$createComponent(Scope, {
@@ -1 +1 @@
1
- {"version":3,"names":["Scope","useCSharpScope","CSharpMethodScope","MethodScope","props","scope","value","Error","parentScope","name","_$createComponent","children"],"sources":["../../../src/components/method-scope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,KAAK,QAAiD,gBAAgB;AAC/E,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,iBAAiB,QAAQ,qBAAqB;AASvD,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,IAAIC,KAAK;EACT,IAAI,OAAO,IAAID,KAAK,EAAE;IACpB,IAAI,EAAEA,KAAK,CAACE,KAAK,YAAYJ,iBAAiB,CAAC,EAAE;MAC/C,MAAM,IAAIK,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACAF,KAAK,GAAGD,KAAK,CAACE,KAAK;EACrB,CAAC,MAAM;IACL,MAAME,WAAW,GAAGP,cAAc,CAAC,CAAC;IACpCI,KAAK,GAAG,IAAIH,iBAAiB,CAACE,KAAK,CAACK,IAAI,IAAI,cAAc,EAAED,WAAW,EAAE;MACvE,GAAGJ;IACL,CAAC,CAAC;EACJ;EAEA,OAAAM,iBAAA,CAAQV,KAAK;IAACM,KAAK,EAAED,KAAK;IAAA,IAAAM,SAAA;MAAA,OAAGP,KAAK,CAACO,QAAQ;IAAA;EAAA;AAC7C","ignoreList":[]}
1
+ {"version":3,"names":["Scope","createScope","useCSharpScope","CSharpMethodScope","MethodScope","props","scope","value","Error","parentScope","name","binder","_$createComponent","children"],"sources":["../../../src/components/method-scope.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAGLC,WAAW,QACN,gBAAgB;AACvB,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,iBAAiB,QAAQ,qBAAqB;AASvD,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,IAAIC,KAAK;EACT,IAAI,OAAO,IAAID,KAAK,EAAE;IACpB,IAAI,EAAEA,KAAK,CAACE,KAAK,YAAYJ,iBAAiB,CAAC,EAAE;MAC/C,MAAM,IAAIK,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACAF,KAAK,GAAGD,KAAK,CAACE,KAAK;EACrB,CAAC,MAAM;IACL,MAAME,WAAW,GAAGP,cAAc,CAAC,CAAC;IACpCI,KAAK,GAAGL,WAAW,CACjBE,iBAAiB,EACjBE,KAAK,CAACK,IAAI,IAAI,cAAc,EAC5BD,WAAW,EACX;MACE,GAAGJ,KAAK;MACRM,MAAM,EAAEF,WAAW,EAAEE;IACvB,CACF,CAAC;EACH;EAEA,OAAAC,iBAAA,CAAQZ,KAAK;IAACO,KAAK,EAAED,KAAK;IAAA,IAAAO,SAAA;MAAA,OAAGR,KAAK,CAACQ,QAAQ;IAAA;EAAA;AAC7C","ignoreList":[]}
@@ -13,6 +13,8 @@ export interface SourceFileProps extends CSharpFormatOptions {
13
13
  * explicit usings is not necessary when referencing symbols via refkeys.
14
14
  */
15
15
  using?: string[];
16
+ header?: Children;
17
+ headerComment?: string;
16
18
  }
17
19
  /** A C# source file exists within the context of a namespace contains using statements and declarations */
18
20
  export declare function SourceFile(props: SourceFileProps): Children;
@@ -1 +1 @@
1
- {"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,QAAQ,EAKT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAM1C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA0DhD"}
1
+ {"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,QAAQ,EAQT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAM1C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA2EhD"}
@@ -1,9 +1,10 @@
1
1
  import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$mergeProps, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { DocComment } from "#components/doc/comment.js";
2
3
  import { NamespaceScopes } from "#components/namespace-scopes.js";
3
4
  import { NamespaceName } from "#components/namespace/namespace-name.js";
4
5
  import { Reference } from "#components/Reference.js";
5
6
  import { Usings } from "#components/using/using.js";
6
- import { Block, computed, SourceFile as CoreSourceFile, Scope, useBinder } from "@alloy-js/core";
7
+ import { Block, computed, SourceFile as CoreSourceFile, createScope, List, Scope, Show, useBinder } from "@alloy-js/core";
7
8
  import { useCsharpFormatOptions } from "../../contexts/format-options.js";
8
9
  import { getGlobalNamespace } from "../../contexts/global-namespace.js";
9
10
  import { useNamespaceContext } from "../../contexts/namespace.js";
@@ -15,9 +16,12 @@ import { CSharpSourceFileScope } from "../../scopes/source-file.js";
15
16
 
16
17
  /** A C# source file exists within the context of a namespace contains using statements and declarations */
17
18
  export function SourceFile(props) {
18
- const sourceFileScope = new CSharpSourceFileScope(props.path);
19
+ const binder = useBinder();
20
+ const sourceFileScope = createScope(CSharpSourceFileScope, props.path, undefined, {
21
+ binder
22
+ });
19
23
  const nsContext = useNamespaceContext();
20
- const globalNs = getGlobalNamespace(useBinder());
24
+ const globalNs = getGlobalNamespace(binder);
21
25
  const nsSymbol = nsContext ? nsContext.symbol : globalNs;
22
26
  const usings = computed(() => {
23
27
  return Array.from(sourceFileScope.usings).concat(props.using ?? []);
@@ -33,6 +37,14 @@ export function SourceFile(props) {
33
37
  tabWidth: props.tabWidth,
34
38
  useTabs: props.useTabs
35
39
  });
40
+ const header = props.header || props.headerComment ? _$createComponent(SourceFileHeader, {
41
+ get header() {
42
+ return props.header;
43
+ },
44
+ get headerComment() {
45
+ return props.headerComment;
46
+ }
47
+ }) : undefined;
36
48
  return _$createComponent(CoreSourceFile, _$mergeProps({
37
49
  get path() {
38
50
  return props.path;
@@ -40,6 +52,7 @@ export function SourceFile(props) {
40
52
  filetype: "cs",
41
53
  reference: Reference
42
54
  }, opts, {
55
+ header: header,
43
56
  get children() {
44
57
  return _$createComponent(Scope, {
45
58
  value: sourceFileScope,
@@ -58,4 +71,29 @@ export function SourceFile(props) {
58
71
  }
59
72
  }));
60
73
  }
74
+ function SourceFileHeader(props) {
75
+ return _$createComponent(List, {
76
+ get children() {
77
+ return [_$createComponent(Show, {
78
+ get when() {
79
+ return props.headerComment !== undefined;
80
+ },
81
+ get children() {
82
+ return _$createComponent(DocComment, {
83
+ get children() {
84
+ return props.headerComment;
85
+ }
86
+ });
87
+ }
88
+ }), _$createComponent(Show, {
89
+ get when() {
90
+ return props.header !== undefined;
91
+ },
92
+ get children() {
93
+ return props.header;
94
+ }
95
+ }), _$createIntrinsic("hbr", {})];
96
+ }
97
+ });
98
+ }
61
99
  //# sourceMappingURL=source-file.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NamespaceScopes","NamespaceName","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","usings","Array","from","concat","using","content","_$createComponent","children","opts","printWidth","tabWidth","useTabs","_$mergeProps","filetype","reference","value","_$memo","size","length","namespaces","_$createIntrinsic","hasBlockNamespace"],"sources":["../../../../src/components/source-file/source-file.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,SAAS;AAClB,SAASC,MAAM;AACf,SACEC,KAAK,EAELC,QAAQ,EACRC,UAAU,IAAIC,cAAc,EAC5BC,KAAK,EACLC,SAAS,QACJ,gBAAgB;AACvB,SAEEC,sBAAsB,QACjB,kCAAkC;AACzC,SAASC,kBAAkB,QAAQ,oCAAoC;AACvE,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,qBAAqB,QAAQ,6BAA6B;;AAGnE;AACA;AACA;;AAeA;AACA,OAAO,SAASP,UAAUA,CAACQ,KAAsB,EAAE;EACjD,MAAMC,eAAe,GAAG,IAAIF,qBAAqB,CAACC,KAAK,CAACE,IAAI,CAAC;EAE7D,MAAMC,SAAS,GAAGL,mBAAmB,CAAC,CAAC;EACvC,MAAMM,QAAQ,GAAGP,kBAAkB,CAACF,SAAS,CAAC,CAAC,CAAC;EAChD,MAAMU,QAAQ,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,GAAGF,QAAQ;EACxD,MAAMG,MAAM,GAAGhB,QAAQ,CAAC,MAAM;IAC5B,OACEiB,KAAK,CAACC,IAAI,CAACR,eAAe,CAACM,MAAM,CAAC,CAClCG,MAAM,CAACV,KAAK,CAACW,KAAK,IAAI,EAAE,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGrB,QAAQ,CAAC,MAAAsB,iBAAA,CACtB3B,eAAe;IAACoB,MAAM,EAAED,QAAQ;IAAA,IAAAS,SAAA;MAAA,OAAGd,KAAK,CAACc,QAAQ;IAAA;EAAA,EACnD,CAAC;EAEF,MAAMC,IAAI,GAAGnB,sBAAsB,CAAC;IAClCoB,UAAU,EAAEhB,KAAK,CAACgB,UAAU;IAC5BC,QAAQ,EAAEjB,KAAK,CAACiB,QAAQ;IACxBC,OAAO,EAAElB,KAAK,CAACkB;EACjB,CAAC,CAAC;EAEF,OAAAL,iBAAA,CACGpB,cAAc,EAAA0B,YAAA;IAAA,IACbjB,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;IAChBkB,QAAQ;IACRC,SAAS,EAAEjC;EAAS,GAChB2B,IAAI;IAAA,IAAAD,SAAA;MAAA,OAAAD,iBAAA,CAEPnB,KAAK;QAAC4B,KAAK,EAAErB,eAAe;QAAA,IAAAa,SAAA;UAAA,QAAAS,MAAA,OAC1BA,MAAA,UAACtB,eAAe,CAACM,MAAM,CAACiB,IAAI,GAAG,CAAC,IAC9BxB,KAAK,CAACW,KAAK,IAAIX,KAAK,CAACW,KAAK,CAACc,MAAM,GAAG,CAAE,SAAAZ,iBAAA,CAEpCxB,MAAM;YAAA,IAACqC,UAAUA,CAAA;cAAA,OAAEnB,MAAM,CAACe,KAAK;YAAA;UAAA,IAAAK,iBAAA,aAAAA,iBAAA,YAInC,GAAAJ,MAAA,OACAlB,QAAQ,KAAKD,QAAQ,GACpBQ,OAAO,kBAAAC,iBAAA,CAEM1B,aAAa;YAACmB,MAAM,EAAED;UAAQ,IAAAkB,MAAA,OACxCA,MAAA,SAAAtB,eAAe,CAAC2B,iBAAiB,OAE7B,GAAG,EAAAf,iBAAA,CACHvB,KAAK;YAAAwB,QAAA,EAAEF;UAAO,YAAAe,iBAAA,aAAAA,iBAAA,aAKdf,OAAO,CACP,EAEJ;QAAA;MAAA;IAAA;EAAA;AAKb","ignoreList":[]}
1
+ {"version":3,"names":["DocComment","NamespaceScopes","NamespaceName","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","createScope","List","Scope","Show","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","binder","sourceFileScope","path","undefined","nsContext","globalNs","nsSymbol","symbol","usings","Array","from","concat","using","content","_$createComponent","children","opts","printWidth","tabWidth","useTabs","header","headerComment","SourceFileHeader","_$mergeProps","filetype","reference","value","_$memo","size","length","namespaces","_$createIntrinsic","hasBlockNamespace","when"],"sources":["../../../../src/components/source-file/source-file.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Attribute } from "#components/attributes/attributes.js";
2
3
  import { ClassDeclaration } from "#components/class/declaration.js";
3
4
  import { Namespace } from "#components/namespace/namespace.js";
4
- import { FormatOptions, Indent, Output, Prose } from "@alloy-js/core";
5
+ import { FormatOptions, Indent, List, Output, Prose } from "@alloy-js/core";
6
+ import { Serialization } from "@alloy-js/csharp/global/System/Text/Json";
5
7
  import { describe, expect, it } from "vitest";
6
8
  import { CSharpFormatOptions } from "../../contexts/format-options.js";
7
9
  import { SourceFile } from "./source-file.js";
@@ -132,5 +134,42 @@ describe("format options", () => {
132
134
  indented 3 spaces
133
135
  `);
134
136
  });
137
+ it("respect docComment and using (and docComment before using)", () => {
138
+ expect(_$createComponent(Output, {
139
+ get children() {
140
+ return _$createComponent(SourceFile, {
141
+ path: "Test1.cs",
142
+ headerComment: "This is a file comment",
143
+ get header() {
144
+ return _$createComponent(Prose, {
145
+ children: "// ---------Some Fake Heder-----------"
146
+ });
147
+ },
148
+ get children() {
149
+ return _$createComponent(List, {
150
+ get children() {
151
+ return [_$createComponent(Attribute, {
152
+ get name() {
153
+ return Serialization.JsonConverterAttribute;
154
+ }
155
+ }), _$createComponent(ClassDeclaration, {
156
+ "public": true,
157
+ name: "TestClass1"
158
+ })];
159
+ }
160
+ });
161
+ }
162
+ });
163
+ }
164
+ })).toRenderTo(`
165
+ /// This is a file comment
166
+ // ---------Some Fake Heder-----------
167
+
168
+ using System.Text.Json.Serialization;
169
+
170
+ [JsonConverter]
171
+ public class TestClass1;
172
+ `);
173
+ });
135
174
  });
136
175
  //# sourceMappingURL=source-file.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ClassDeclaration","Namespace","FormatOptions","Indent","Output","Prose","describe","expect","it","CSharpFormatOptions","SourceFile","_$createComponent","children","name","path","toRenderTo","FileWithFormatOptions","props","value","options","tabWidth","useTabs","printWidth"],"sources":["../../../../src/components/source-file/source-file.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Attribute","ClassDeclaration","Namespace","FormatOptions","Indent","List","Output","Prose","Serialization","describe","expect","it","CSharpFormatOptions","SourceFile","_$createComponent","children","name","path","toRenderTo","FileWithFormatOptions","props","value","options","tabWidth","useTabs","printWidth","headerComment","header","JsonConverterAttribute"],"sources":["../../../../src/components/source-file/source-file.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"global-namespace.d.ts","sourceRoot":"","sources":["../../../src/contexts/global-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,wBAAgB,kBAAkB,oBAGjC;AAOD,wBAAgB,oBAAoB,SAInC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,mBAgB5D"}
1
+ {"version":3,"file":"global-namespace.d.ts","sourceRoot":"","sources":["../../../src/contexts/global-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA2B,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,wBAAgB,kBAAkB,oBAGjC;AAYD,wBAAgB,oBAAoB,SAInC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,mBAgB5D"}
@@ -1,15 +1,15 @@
1
- import { useBinder } from "@alloy-js/core";
1
+ import { createSymbol, useBinder } from "@alloy-js/core";
2
2
  import { NamespaceSymbol } from "../symbols/namespace.js";
3
3
  export function useGlobalNamespace() {
4
4
  const binder = useBinder();
5
5
  return getGlobalNamespace(binder);
6
6
  }
7
7
  const globalNamespaces = new WeakMap();
8
- let defaultGlobalNamespace = new NamespaceSymbol("global", undefined, {
8
+ let defaultGlobalNamespace = createSymbol(NamespaceSymbol, "global", undefined, {
9
9
  isGlobal: true
10
10
  });
11
11
  export function resetGlobalNamespace() {
12
- defaultGlobalNamespace = new NamespaceSymbol("global", undefined, {
12
+ defaultGlobalNamespace = createSymbol(NamespaceSymbol, "global", undefined, {
13
13
  isGlobal: true
14
14
  });
15
15
  }
@@ -19,7 +19,7 @@ export function getGlobalNamespace(binder) {
19
19
  }
20
20
  let namespace = globalNamespaces.get(binder);
21
21
  if (!namespace) {
22
- namespace = new NamespaceSymbol("global", undefined, {
22
+ namespace = createSymbol(NamespaceSymbol, "global", undefined, {
23
23
  binder,
24
24
  isGlobal: true
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useBinder","NamespaceSymbol","useGlobalNamespace","binder","getGlobalNamespace","globalNamespaces","WeakMap","defaultGlobalNamespace","undefined","isGlobal","resetGlobalNamespace","namespace","get","set"],"sources":["../../../src/contexts/global-namespace.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAiBA,SAAS,QAAQ,gBAAgB;AAClD,SAASC,eAAe,QAAQ,yBAAyB;AAEzD,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,MAAMC,MAAM,GAAGH,SAAS,CAAC,CAAC;EAC1B,OAAOI,kBAAkB,CAACD,MAAM,CAAC;AACnC;AAEA,MAAME,gBAAgB,GAAG,IAAIC,OAAO,CAA0B,CAAC;AAC/D,IAAIC,sBAAsB,GAAG,IAAIN,eAAe,CAAC,QAAQ,EAAEO,SAAS,EAAE;EACpEC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrCH,sBAAsB,GAAG,IAAIN,eAAe,CAAC,QAAQ,EAAEO,SAAS,EAAE;IAChEC,QAAQ,EAAE;EACZ,CAAC,CAAC;AACJ;AAEA,OAAO,SAASL,kBAAkBA,CAACD,MAA0B,EAAE;EAC7D,IAAI,CAACA,MAAM,EAAE;IACX,OAAOI,sBAAsB;EAC/B;EAEA,IAAII,SAAS,GAAGN,gBAAgB,CAACO,GAAG,CAACT,MAAM,CAAC;EAE5C,IAAI,CAACQ,SAAS,EAAE;IACdA,SAAS,GAAG,IAAIV,eAAe,CAAC,QAAQ,EAAEO,SAAS,EAAE;MACnDL,MAAM;MACNM,QAAQ,EAAE;IACZ,CAAC,CAAC;IACFJ,gBAAgB,CAACQ,GAAG,CAACV,MAAM,EAAEQ,SAAS,CAAC;EACzC;EAEA,OAAOA,SAAS;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["createSymbol","useBinder","NamespaceSymbol","useGlobalNamespace","binder","getGlobalNamespace","globalNamespaces","WeakMap","defaultGlobalNamespace","undefined","isGlobal","resetGlobalNamespace","namespace","get","set"],"sources":["../../../src/contexts/global-namespace.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAiBA,YAAY,EAAEC,SAAS,QAAQ,gBAAgB;AAChE,SAASC,eAAe,QAAQ,yBAAyB;AAEzD,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,MAAMC,MAAM,GAAGH,SAAS,CAAC,CAAC;EAC1B,OAAOI,kBAAkB,CAACD,MAAM,CAAC;AACnC;AAEA,MAAME,gBAAgB,GAAG,IAAIC,OAAO,CAA0B,CAAC;AAC/D,IAAIC,sBAAsB,GAAGR,YAAY,CACvCE,eAAe,EACf,QAAQ,EACRO,SAAS,EACT;EACEC,QAAQ,EAAE;AACZ,CACF,CAAC;AAED,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrCH,sBAAsB,GAAGR,YAAY,CAACE,eAAe,EAAE,QAAQ,EAAEO,SAAS,EAAE;IAC1EC,QAAQ,EAAE;EACZ,CAAC,CAAC;AACJ;AAEA,OAAO,SAASL,kBAAkBA,CAACD,MAA0B,EAAE;EAC7D,IAAI,CAACA,MAAM,EAAE;IACX,OAAOI,sBAAsB;EAC/B;EAEA,IAAII,SAAS,GAAGN,gBAAgB,CAACO,GAAG,CAACT,MAAM,CAAC;EAE5C,IAAI,CAACQ,SAAS,EAAE;IACdA,SAAS,GAAGZ,YAAY,CAACE,eAAe,EAAE,QAAQ,EAAEO,SAAS,EAAE;MAC7DL,MAAM;MACNM,QAAQ,EAAE;IACZ,CAAC,CAAC;IACFJ,gBAAgB,CAACQ,GAAG,CAACV,MAAM,EAAEQ,SAAS,CAAC;EACzC;EAEA,OAAOA,SAAS;AAClB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"create-library.d.ts","sourceRoot":"","sources":["../../src/create-library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-library.d.ts","sourceRoot":"","sources":["../../src/create-library.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { namekey, refkey, REFKEYABLE, TO_SYMBOL, useBinder } from "@alloy-js/core";
1
+ import { createSymbol, namekey, refkey, REFKEYABLE, TO_SYMBOL, useBinder } from "@alloy-js/core";
2
2
  import { getGlobalNamespace } from "./contexts/global-namespace.js";
3
3
  import { MethodSymbol } from "./index.js";
4
4
  import { CSharpSymbol } from "./symbols/csharp.js";
@@ -18,7 +18,7 @@ export function createLibrary(rootNs, props) {
18
18
  if (ownerSymbol.members.symbolNames.has(name)) {
19
19
  ownerSymbol = ownerSymbol.members.symbolNames.get(name);
20
20
  } else {
21
- ownerSymbol = new NamespaceSymbol(namekey(name), ownerSymbol, {
21
+ ownerSymbol = createSymbol(NamespaceSymbol, namekey(name), ownerSymbol, {
22
22
  binder,
23
23
  refkeys: refkey()
24
24
  });
@@ -77,7 +77,7 @@ function createSymbolFromDescriptor(name, binder, descriptor, context, lazyMembe
77
77
  if (ownerSymbol.members.symbolNames.has(name)) {
78
78
  return ownerSymbol.members.symbolNames.get(name);
79
79
  }
80
- return new NamespaceSymbol(namekey(name), ownerSymbol, {
80
+ return createSymbol(NamespaceSymbol, namekey(name), ownerSymbol, {
81
81
  binder,
82
82
  refkeys: refkey(),
83
83
  lazyMemberInitializer
@@ -87,19 +87,19 @@ function createSymbolFromDescriptor(name, binder, descriptor, context, lazyMembe
87
87
  case "interface":
88
88
  case "struct":
89
89
  case "record":
90
- return new NamedTypeSymbol(namekey(name), ownerSymbol.members, descriptor.kind, {
90
+ return createSymbol(NamedTypeSymbol, namekey(name), ownerSymbol.members, descriptor.kind, {
91
91
  binder,
92
92
  refkeys: refkey(),
93
93
  lazyMemberInitializer
94
94
  });
95
95
  case "method":
96
- return new MethodSymbol(namekey(name), ownerSymbol.members, descriptor.methodKind, {
96
+ return createSymbol(MethodSymbol, namekey(name), ownerSymbol.members, descriptor.methodKind, {
97
97
  binder,
98
98
  refkeys: refkey()
99
99
  });
100
100
  case "field":
101
101
  case "property":
102
- return new CSharpSymbol(namekey(name), ownerSymbol.members, {
102
+ return createSymbol(CSharpSymbol, namekey(name), ownerSymbol.members, {
103
103
  binder,
104
104
  refkeys: refkey(),
105
105
  type: descriptor.type === undefined ? undefined : typeof descriptor.type === "function" ? descriptor.type()[TO_SYMBOL]() : descriptor.type[TO_SYMBOL](),
@@ -107,7 +107,7 @@ function createSymbolFromDescriptor(name, binder, descriptor, context, lazyMembe
107
107
  lazyMemberInitializer
108
108
  });
109
109
  case "generic":
110
- return new CSharpSymbol(namekey(name), ownerSymbol.members, {
110
+ return createSymbol(CSharpSymbol, namekey(name), ownerSymbol.members, {
111
111
  binder,
112
112
  refkeys: refkey()
113
113
  });
@@ -1 +1 @@
1
- {"version":3,"names":["namekey","refkey","REFKEYABLE","TO_SYMBOL","useBinder","getGlobalNamespace","MethodSymbol","CSharpSymbol","NamedTypeSymbol","NamespaceSymbol","createLibrary","rootNs","props","ownerSymbolPerBinder","WeakMap","namespaceNames","split","createSymbolEntry","at","kind","members","ownerSymbol","binder","mapGet","name","slice","symbolNames","has","get","refkeys","descriptor","context","symbols","getSymbol","createSymbolFromDescriptor","initializeMembers","newContext","key","Object","keys","obj","memberName","memberDesc","entries","lazyMemberInitializer","methodKind","type","undefined","isNullable","defaultsPerMap","map","init","value","set"],"sources":["../../src/create-library.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSymbol","namekey","refkey","REFKEYABLE","TO_SYMBOL","useBinder","getGlobalNamespace","MethodSymbol","CSharpSymbol","NamedTypeSymbol","NamespaceSymbol","createLibrary","rootNs","props","ownerSymbolPerBinder","WeakMap","namespaceNames","split","createSymbolEntry","at","kind","members","ownerSymbol","binder","mapGet","name","slice","symbolNames","has","get","refkeys","descriptor","context","symbols","getSymbol","createSymbolFromDescriptor","initializeMembers","newContext","key","Object","keys","obj","memberName","memberDesc","entries","lazyMemberInitializer","methodKind","type","undefined","isNullable","defaultsPerMap","map","init","value","set"],"sources":["../../src/create-library.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -6,5 +6,6 @@ export declare class CSharpScope extends OutputScope {
6
6
  constructor(name: string, parent: CSharpScope | undefined, options?: OutputScopeOptions);
7
7
  get enclosingNamespace(): NamespaceSymbol | undefined;
8
8
  get ownerSymbol(): CSharpSymbol | undefined;
9
+ get debugInfo(): Record<string, unknown>;
9
10
  }
10
11
  //# sourceMappingURL=csharp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/scopes/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,qBAAa,WAAY,SAAQ,WAAW;;gBAExC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,kBAAkB;IAO9B,IAAI,kBAAkB,gCAErB;IAED,IAAI,WAAW,IAAI,YAAY,GAAG,SAAS,CAE1C;CACF"}
1
+ {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/scopes/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,qBAAa,WAAY,SAAQ,WAAW;;gBAExC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,kBAAkB;IAO9B,IAAI,kBAAkB,gCAErB;IAED,IAAI,WAAW,IAAI,YAAY,GAAG,SAAS,CAE1C;IAED,IAAa,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAShD;CACF"}
@@ -11,5 +11,15 @@ export class CSharpScope extends OutputScope {
11
11
  get ownerSymbol() {
12
12
  return super.ownerSymbol;
13
13
  }
14
+ get debugInfo() {
15
+ const info = super.debugInfo;
16
+ if (this.enclosingNamespace) {
17
+ return {
18
+ ...info,
19
+ enclosingNamespace: this.enclosingNamespace.name
20
+ };
21
+ }
22
+ return info;
23
+ }
14
24
  }
15
25
  //# sourceMappingURL=csharp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OutputScope","CSharpScope","constructor","name","parent","options","namespaceSymbol","enclosingNamespace","ownerSymbol"],"sources":["../../../src/scopes/csharp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAA4B,gBAAgB;AAIhE,OAAO,MAAMC,WAAW,SAASD,WAAW,CAAC;EAC3CE,WAAWA,CACTC,IAAY,EACZC,MAA+B,EAC/BC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,eAAe,GAAGF,MAAM,EAAEG,kBAAkB;EACpD;EAEA,CAACD,eAAe;EAChB,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC,CAACD,eAAe;EAC9B;EAEA,IAAIE,WAAWA,CAAA,EAA6B;IAC1C,OAAO,KAAK,CAACA,WAAW;EAC1B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["OutputScope","CSharpScope","constructor","name","parent","options","namespaceSymbol","enclosingNamespace","ownerSymbol","debugInfo","info"],"sources":["../../../src/scopes/csharp.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAA4B,gBAAgB;AAIhE,OAAO,MAAMC,WAAW,SAASD,WAAW,CAAC;EAC3CE,WAAWA,CACTC,IAAY,EACZC,MAA+B,EAC/BC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,eAAe,GAAGF,MAAM,EAAEG,kBAAkB;EACpD;EAEA,CAACD,eAAe;EAChB,IAAIC,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAC,CAACD,eAAe;EAC9B;EAEA,IAAIE,WAAWA,CAAA,EAA6B;IAC1C,OAAO,KAAK,CAACA,WAAW;EAC1B;EAEA,IAAaC,SAASA,CAAA,EAA4B;IAChD,MAAMC,IAAI,GAAG,KAAK,CAACD,SAAS;IAC5B,IAAI,IAAI,CAACF,kBAAkB,EAAE;MAC3B,OAAO;QACL,GAAGG,IAAI;QACPH,kBAAkB,EAAE,IAAI,CAACA,kBAAkB,CAACJ;MAC9C,CAAC;IACH;IACA,OAAOO,IAAI;EACb;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/scopes/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,kBAAuB,wBAcjC;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,kBAAuB,oBAYjC;AACD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,qBAGjE"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/scopes/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,kBAAuB,wBAcjC;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,kBAAuB,oBAYjC;AACD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,qBAGjE"}
@@ -1,3 +1,4 @@
1
+ import { createScope } from "@alloy-js/core";
1
2
  import { CSharpClassScope } from "./class.js";
2
3
  import { useCSharpScope, useNamedTypeScope } from "./contexts.js";
3
4
  import { CSharpMethodScope } from "./method.js";
@@ -8,17 +9,17 @@ export function createNamedTypeScope(ownerSymbol, options = {}) {
8
9
  if (!(currentScope instanceof CSharpNamedTypeScope) && !(currentScope instanceof CSharpSourceFileScope)) {
9
10
  throw new Error("Can't create C# type declaration scope inside of " + currentScope.constructor.name);
10
11
  }
11
- return new CSharpNamedTypeScope(ownerSymbol, currentScope, options);
12
+ return createScope(CSharpNamedTypeScope, ownerSymbol, currentScope, options);
12
13
  }
13
14
  export function createClassScope(ownerSymbol, options = {}) {
14
15
  const currentScope = useCSharpScope();
15
16
  if (!(currentScope instanceof CSharpNamedTypeScope) && !(currentScope instanceof CSharpSourceFileScope)) {
16
17
  throw new Error("Can't create C# class scope inside of " + currentScope.constructor.name);
17
18
  }
18
- return new CSharpClassScope(ownerSymbol, currentScope, options);
19
+ return createScope(CSharpClassScope, ownerSymbol, currentScope, options);
19
20
  }
20
21
  export function createMethodScope(options = {}) {
21
22
  const parentScope = useNamedTypeScope();
22
- return new CSharpMethodScope("method scope", parentScope, options);
23
+ return createScope(CSharpMethodScope, "method scope", parentScope, options);
23
24
  }
24
25
  //# sourceMappingURL=factories.js.map