@alloy-js/csharp 0.20.0-dev.0 → 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.
- package/dist/src/components/Declaration.d.ts +2 -2
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +5 -14
- package/dist/src/components/Declaration.js.map +1 -0
- package/dist/src/components/Name.js +2 -1
- package/dist/src/components/Name.js.map +1 -0
- package/dist/src/components/ProjectDirectory.js +2 -1
- package/dist/src/components/ProjectDirectory.js.map +1 -0
- package/dist/src/components/Reference.d.ts.map +1 -1
- package/dist/src/components/Reference.js +7 -2
- package/dist/src/components/Reference.js.map +1 -0
- package/dist/src/components/UsingDirective.d.ts +5 -1
- package/dist/src/components/UsingDirective.d.ts.map +1 -1
- package/dist/src/components/UsingDirective.js +5 -2
- package/dist/src/components/UsingDirective.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.d.ts +54 -0
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.js +277 -0
- package/dist/src/components/access-expression/access-expression.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.js +336 -0
- package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.js +99 -0
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
- package/dist/src/components/attributes/attributes.js +2 -1
- package/dist/src/components/attributes/attributes.js.map +1 -0
- package/dist/src/components/attributes/attributes.test.js +2 -1
- package/dist/src/components/attributes/attributes.test.js.map +1 -0
- package/dist/src/components/{ClassDeclaration.d.ts → class/declaration.d.ts} +30 -12
- package/dist/src/components/class/declaration.d.ts.map +1 -0
- package/dist/src/components/class/declaration.js +87 -0
- package/dist/src/components/class/declaration.js.map +1 -0
- package/dist/src/components/class/declaration.test.d.ts +2 -0
- package/dist/src/components/class/declaration.test.d.ts.map +1 -0
- package/dist/src/components/class/declaration.test.js +573 -0
- package/dist/src/components/class/declaration.test.js.map +1 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +13 -20
- package/dist/src/components/constructor/constructor.js.map +1 -0
- package/dist/src/components/constructor/constructor.test.js +13 -21
- package/dist/src/components/constructor/constructor.test.js.map +1 -0
- package/dist/src/components/doc/comment.js +2 -1
- package/dist/src/components/doc/comment.js.map +1 -0
- package/dist/src/components/doc/comment.test.js +2 -1
- package/dist/src/components/doc/comment.test.js.map +1 -0
- package/dist/src/components/doc/from-markdown.js +2 -1
- package/dist/src/components/doc/from-markdown.js.map +1 -0
- package/dist/src/components/doc/from-markdown.test.js +2 -1
- package/dist/src/components/doc/from-markdown.test.js.map +1 -0
- package/dist/src/components/{EnumDeclaration.d.ts → enum/declaration.d.ts} +6 -11
- package/dist/src/components/enum/declaration.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.js +55 -0
- package/dist/src/components/enum/declaration.js.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.js +121 -0
- package/dist/src/components/enum/declaration.ref.test.js.map +1 -0
- package/dist/src/components/enum/declaration.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.test.js +40 -0
- package/dist/src/components/enum/declaration.test.js.map +1 -0
- package/dist/src/components/enum/member.d.ts +7 -0
- package/dist/src/components/enum/member.d.ts.map +1 -0
- package/dist/src/components/enum/member.js +30 -0
- package/dist/src/components/enum/member.js.map +1 -0
- package/dist/src/components/enum/member.test.d.ts +2 -0
- package/dist/src/components/enum/member.test.d.ts.map +1 -0
- package/dist/src/components/enum/member.test.js +29 -0
- package/dist/src/components/enum/member.test.js.map +1 -0
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/field/field.js +11 -18
- package/dist/src/components/field/field.js.map +1 -0
- package/dist/src/components/field/field.test.js +10 -9
- package/dist/src/components/field/field.test.js.map +1 -0
- package/dist/src/components/index.d.ts +8 -4
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +10 -5
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/components/interface/declaration.d.ts.map +1 -1
- package/dist/src/components/interface/declaration.js +21 -22
- package/dist/src/components/interface/declaration.js.map +1 -0
- package/dist/src/components/interface/declaration.test.js +28 -36
- package/dist/src/components/interface/declaration.test.js.map +1 -0
- package/dist/src/components/interface/method.d.ts.map +1 -1
- package/dist/src/components/interface/method.js +9 -19
- package/dist/src/components/interface/method.js.map +1 -0
- package/dist/src/components/interface/method.test.js +40 -48
- package/dist/src/components/interface/method.test.js.map +1 -0
- package/dist/src/components/interface/property.d.ts.map +1 -1
- package/dist/src/components/interface/property.js +23 -40
- package/dist/src/components/interface/property.js.map +1 -0
- package/dist/src/components/interface/property.test.js +13 -12
- package/dist/src/components/interface/property.test.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
- package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
- package/dist/src/components/lexical-scope.d.ts +8 -0
- package/dist/src/components/lexical-scope.d.ts.map +1 -0
- package/dist/src/components/lexical-scope.js +25 -0
- package/dist/src/components/lexical-scope.js.map +1 -0
- package/dist/src/components/method/method.d.ts +5 -2
- package/dist/src/components/method/method.d.ts.map +1 -1
- package/dist/src/components/method/method.js +9 -17
- package/dist/src/components/method/method.js.map +1 -0
- package/dist/src/components/method/method.test.js +13 -12
- package/dist/src/components/method/method.test.js.map +1 -0
- package/dist/src/components/method-scope.d.ts +8 -0
- package/dist/src/components/method-scope.d.ts.map +1 -0
- package/dist/src/components/method-scope.js +25 -0
- package/dist/src/components/method-scope.js.map +1 -0
- package/dist/src/components/namespace-scopes.d.ts +13 -0
- package/dist/src/components/namespace-scopes.d.ts.map +1 -0
- package/dist/src/components/namespace-scopes.js +45 -0
- package/dist/src/components/namespace-scopes.js.map +1 -0
- package/dist/src/components/namespace.d.ts +7 -0
- package/dist/src/components/namespace.d.ts.map +1 -0
- package/dist/src/components/namespace.js +47 -0
- package/dist/src/components/namespace.js.map +1 -0
- package/dist/src/components/namespace.ref.test.d.ts +2 -0
- package/dist/src/components/namespace.ref.test.d.ts.map +1 -0
- package/dist/src/components/namespace.ref.test.js +182 -0
- package/dist/src/components/namespace.ref.test.js.map +1 -0
- package/dist/src/components/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace.test.js +79 -0
- package/dist/src/components/namespace.test.js.map +1 -0
- package/dist/src/components/parameters/parameters.d.ts +2 -3
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +15 -15
- package/dist/src/components/parameters/parameters.js.map +1 -0
- package/dist/src/components/parameters/parameters.test.d.ts +2 -0
- package/dist/src/components/parameters/parameters.test.d.ts.map +1 -0
- package/dist/src/components/parameters/parameters.test.js +154 -0
- package/dist/src/components/parameters/parameters.test.js.map +1 -0
- package/dist/src/components/property/property.d.ts +2 -2
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +30 -40
- package/dist/src/components/property/property.js.map +1 -0
- package/dist/src/components/property/property.test.js +17 -16
- package/dist/src/components/property/property.test.js.map +1 -0
- package/dist/src/components/record/declaration.d.ts +18 -0
- package/dist/src/components/record/declaration.d.ts.map +1 -1
- package/dist/src/components/record/declaration.js +21 -14
- package/dist/src/components/record/declaration.js.map +1 -0
- package/dist/src/components/record/declaration.test.js +52 -4
- package/dist/src/components/record/declaration.test.js.map +1 -0
- package/dist/src/components/source-file/source-file.d.ts +19 -0
- package/dist/src/components/source-file/source-file.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.js +59 -0
- package/dist/src/components/source-file/source-file.js.map +1 -0
- package/dist/src/components/source-file/source-file.test.d.ts +2 -0
- package/dist/src/components/source-file/source-file.test.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.test.js +136 -0
- package/dist/src/components/source-file/source-file.test.js.map +1 -0
- package/dist/src/components/stc/index.js +2 -1
- package/dist/src/components/stc/index.js.map +1 -0
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +6 -7
- package/dist/src/components/struct/declaration.js.map +1 -0
- package/dist/src/components/struct/declaration.test.js +32 -40
- package/dist/src/components/struct/declaration.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.js +9 -11
- package/dist/src/components/type-parameters/type-parameter.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.js +2 -1
- package/dist/src/components/type-parameters/type-parameters.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.test.js +5 -4
- package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -0
- package/dist/src/components/var/declaration.d.ts.map +1 -1
- package/dist/src/components/var/declaration.js +8 -9
- package/dist/src/components/var/declaration.js.map +1 -0
- package/dist/src/components/var/declaration.test.js +13 -21
- package/dist/src/components/var/declaration.test.js.map +1 -0
- package/dist/src/contexts/format-options.d.ts +5 -0
- package/dist/src/contexts/format-options.d.ts.map +1 -0
- package/dist/src/contexts/format-options.js +9 -0
- package/dist/src/contexts/format-options.js.map +1 -0
- package/dist/src/contexts/global-namespace.d.ts +5 -0
- package/dist/src/contexts/global-namespace.d.ts.map +1 -0
- package/dist/src/contexts/global-namespace.js +25 -0
- package/dist/src/contexts/global-namespace.js.map +1 -0
- package/dist/src/contexts/namespace.d.ts +8 -0
- package/dist/src/contexts/namespace.d.ts.map +1 -0
- package/dist/src/contexts/namespace.js +6 -0
- package/dist/src/contexts/namespace.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/modifiers.d.ts +11 -0
- package/dist/src/modifiers.d.ts.map +1 -1
- package/dist/src/modifiers.js +2 -1
- package/dist/src/modifiers.js.map +1 -0
- package/dist/src/name-policy.js +2 -1
- package/dist/src/name-policy.js.map +1 -0
- package/dist/src/scopes/class.d.ts +10 -0
- package/dist/src/scopes/class.d.ts.map +1 -0
- package/dist/src/scopes/class.js +11 -0
- package/dist/src/scopes/class.js.map +1 -0
- package/dist/src/scopes/contexts.d.ts +9 -0
- package/dist/src/scopes/contexts.d.ts.map +1 -0
- package/dist/src/scopes/contexts.js +34 -0
- package/dist/src/scopes/contexts.js.map +1 -0
- package/dist/src/scopes/csharp.d.ts +10 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -0
- package/dist/src/scopes/csharp.js +15 -0
- package/dist/src/scopes/csharp.js.map +1 -0
- package/dist/src/scopes/factories.d.ts +9 -0
- package/dist/src/scopes/factories.d.ts.map +1 -0
- package/dist/src/scopes/factories.js +24 -0
- package/dist/src/scopes/factories.js.map +1 -0
- package/dist/src/scopes/index.d.ts +10 -0
- package/dist/src/scopes/index.d.ts.map +1 -0
- package/dist/src/scopes/index.js +10 -0
- package/dist/src/scopes/index.js.map +1 -0
- package/dist/src/scopes/lexical.d.ts +7 -0
- package/dist/src/scopes/lexical.d.ts.map +1 -0
- package/dist/src/scopes/lexical.js +8 -0
- package/dist/src/scopes/lexical.js.map +1 -0
- package/dist/src/scopes/method.d.ts +9 -0
- package/dist/src/scopes/method.d.ts.map +1 -0
- package/dist/src/scopes/method.js +14 -0
- package/dist/src/scopes/method.js.map +1 -0
- package/dist/src/scopes/named-type.d.ts +22 -0
- package/dist/src/scopes/named-type.d.ts.map +1 -0
- package/dist/src/scopes/named-type.js +33 -0
- package/dist/src/scopes/named-type.js.map +1 -0
- package/dist/src/scopes/namespace.d.ts +11 -0
- package/dist/src/scopes/namespace.d.ts.map +1 -0
- package/dist/src/scopes/namespace.js +39 -0
- package/dist/src/scopes/namespace.js.map +1 -0
- package/dist/src/scopes/source-file.d.ts +16 -0
- package/dist/src/scopes/source-file.d.ts.map +1 -0
- package/dist/src/scopes/source-file.js +44 -0
- package/dist/src/scopes/source-file.js.map +1 -0
- package/dist/src/symbols/csharp.d.ts +87 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -0
- package/dist/src/symbols/csharp.js +246 -0
- package/dist/src/symbols/csharp.js.map +1 -0
- package/dist/src/symbols/factories.d.ts +25 -0
- package/dist/src/symbols/factories.d.ts.map +1 -0
- package/dist/src/symbols/factories.js +93 -0
- package/dist/src/symbols/factories.js.map +1 -0
- package/dist/src/symbols/index.d.ts +5 -2
- package/dist/src/symbols/index.d.ts.map +1 -1
- package/dist/src/symbols/index.js +6 -2
- package/dist/src/symbols/index.js.map +1 -0
- package/dist/src/symbols/method.d.ts +13 -0
- package/dist/src/symbols/method.d.ts.map +1 -0
- package/dist/src/symbols/method.js +16 -0
- package/dist/src/symbols/method.js.map +1 -0
- package/dist/src/symbols/named-type.d.ts +19 -0
- package/dist/src/symbols/named-type.d.ts.map +1 -0
- package/dist/src/symbols/named-type.js +31 -0
- package/dist/src/symbols/named-type.js.map +1 -0
- package/dist/src/symbols/namespace.d.ts +22 -0
- package/dist/src/symbols/namespace.d.ts.map +1 -0
- package/dist/src/symbols/namespace.js +45 -0
- package/dist/src/symbols/namespace.js.map +1 -0
- package/dist/src/symbols/reference.d.ts +2 -2
- package/dist/src/symbols/reference.d.ts.map +1 -1
- package/dist/src/symbols/reference.js +50 -44
- package/dist/src/symbols/reference.js.map +1 -0
- package/dist/test/project-directory.test.js +20 -19
- package/dist/test/project-directory.test.js.map +1 -0
- package/dist/test/using.test.js +23 -21
- package/dist/test/using.test.js.map +1 -0
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/test/utils.js +7 -4
- package/dist/test/utils.js.map +1 -0
- package/dist/test/vitest.setup.js +2 -1
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -6
- package/src/components/Declaration.tsx +3 -6
- package/src/components/Reference.tsx +3 -1
- package/src/components/UsingDirective.tsx +12 -2
- package/src/components/access-expression/access-expression.test.tsx +284 -0
- package/src/components/access-expression/access-expression.tsx +375 -0
- package/src/components/access-expression/part-descriptors.ts +175 -0
- package/src/components/class/declaration.test.tsx +484 -0
- package/src/components/{ClassDeclaration.tsx → class/declaration.tsx} +63 -44
- package/src/components/constructor/constructor.test.tsx +11 -17
- package/src/components/constructor/constructor.tsx +13 -32
- package/src/components/enum/declaration.ref.test.tsx +93 -0
- package/src/components/enum/declaration.test.tsx +34 -0
- package/src/components/enum/declaration.tsx +65 -0
- package/src/components/enum/member.test.tsx +24 -0
- package/src/components/enum/member.tsx +36 -0
- package/src/components/field/field.test.tsx +8 -8
- package/src/components/field/field.tsx +12 -22
- package/src/components/index.ts +8 -4
- package/src/components/interface/declaration.test.tsx +26 -32
- package/src/components/interface/declaration.tsx +16 -18
- package/src/components/interface/method.test.tsx +38 -44
- package/src/components/interface/method.tsx +7 -20
- package/src/components/interface/property.test.tsx +11 -11
- package/src/components/interface/property.tsx +15 -34
- package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
- package/src/components/invocation-expression/invocation-expression.tsx +60 -0
- package/src/components/lexical-scope.tsx +29 -0
- package/src/components/method/method.test.tsx +11 -11
- package/src/components/method/method.tsx +12 -23
- package/src/components/method-scope.tsx +27 -0
- package/src/components/namespace-scopes.tsx +44 -0
- package/src/components/namespace.ref.test.tsx +139 -0
- package/src/components/namespace.test.tsx +52 -0
- package/src/components/namespace.tsx +45 -0
- package/src/components/parameters/parameters.test.tsx +117 -0
- package/src/components/parameters/parameters.tsx +11 -21
- package/src/components/property/property.test.tsx +15 -15
- package/src/components/property/property.tsx +23 -41
- package/src/components/record/declaration.test.tsx +47 -3
- package/src/components/record/declaration.tsx +34 -11
- package/src/components/source-file/source-file.test.tsx +96 -0
- package/src/components/source-file/source-file.tsx +98 -0
- package/src/components/struct/declaration.test.tsx +16 -22
- package/src/components/struct/declaration.tsx +4 -6
- package/src/components/type-parameters/type-parameter.tsx +14 -11
- package/src/components/type-parameters/type-parameters.test.tsx +4 -4
- package/src/components/var/declaration.test.tsx +8 -14
- package/src/components/var/declaration.tsx +12 -6
- package/src/contexts/format-options.ts +14 -0
- package/src/contexts/global-namespace.ts +29 -0
- package/src/contexts/namespace.ts +13 -0
- package/src/index.ts +2 -0
- package/src/modifiers.ts +14 -0
- package/src/scopes/class.ts +12 -0
- package/src/scopes/contexts.ts +45 -0
- package/src/scopes/csharp.ts +23 -0
- package/src/scopes/factories.ts +45 -0
- package/src/scopes/index.ts +9 -0
- package/src/scopes/lexical.ts +10 -0
- package/src/scopes/method.ts +22 -0
- package/src/scopes/named-type.ts +44 -0
- package/src/scopes/namespace.ts +59 -0
- package/src/scopes/source-file.ts +67 -0
- package/src/symbols/csharp.ts +339 -0
- package/src/symbols/factories.ts +215 -0
- package/src/symbols/index.ts +5 -2
- package/src/symbols/method.ts +26 -0
- package/src/symbols/named-type.ts +54 -0
- package/src/symbols/namespace.ts +62 -0
- package/src/symbols/reference.tsx +64 -0
- package/temp/api.json +6910 -2491
- package/test/project-directory.test.tsx +14 -16
- package/test/using.test.tsx +21 -21
- package/test/utils.tsx +2 -1
- package/tsconfig.json +4 -1
- package/tsdoc-metadata.json +1 -1
- package/dist/src/components/ClassDeclaration.d.ts.map +0 -1
- package/dist/src/components/ClassDeclaration.js +0 -92
- package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
- package/dist/src/components/EnumDeclaration.js +0 -85
- package/dist/src/components/Namespace.d.ts +0 -11
- package/dist/src/components/Namespace.d.ts.map +0 -1
- package/dist/src/components/Namespace.js +0 -33
- package/dist/src/components/SourceFile.d.ts +0 -14
- package/dist/src/components/SourceFile.d.ts.map +0 -1
- package/dist/src/components/SourceFile.js +0 -69
- package/dist/src/symbols/csharp-output-symbol.d.ts +0 -8
- package/dist/src/symbols/csharp-output-symbol.d.ts.map +0 -1
- package/dist/src/symbols/csharp-output-symbol.js +0 -19
- package/dist/src/symbols/scopes.d.ts +0 -14
- package/dist/src/symbols/scopes.d.ts.map +0 -1
- package/dist/src/symbols/scopes.js +0 -31
- package/dist/test/class-declaration.test.d.ts +0 -2
- package/dist/test/class-declaration.test.d.ts.map +0 -1
- package/dist/test/class-declaration.test.js +0 -484
- package/dist/test/enum.test.d.ts +0 -2
- package/dist/test/enum.test.d.ts.map +0 -1
- package/dist/test/enum.test.js +0 -178
- package/dist/test/namespace.test.d.ts.map +0 -1
- package/dist/test/namespace.test.js +0 -81
- package/dist/test/sourcefile.test.d.ts +0 -2
- package/dist/test/sourcefile.test.d.ts.map +0 -1
- package/dist/test/sourcefile.test.js +0 -58
- package/src/components/EnumDeclaration.tsx +0 -99
- package/src/components/Namespace.tsx +0 -35
- package/src/components/SourceFile.tsx +0 -78
- package/src/symbols/csharp-output-symbol.ts +0 -22
- package/src/symbols/reference.ts +0 -65
- package/src/symbols/scopes.ts +0 -41
- package/test/class-declaration.test.tsx +0 -413
- package/test/enum.test.tsx +0 -149
- package/test/namespace.test.tsx +0 -55
- package/test/sourcefile.test.tsx +0 -47
- /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
|
@@ -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
|
|
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,
|
|
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
|
|
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
|
-
|
|
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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CSharpSymbol } from "./csharp.js";
|
|
2
|
+
|
|
3
|
+
// represents a symbol from a .cs file. Class, enum, interface etc.
|
|
4
|
+
|
|
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 class NamedTypeSymbol extends CSharpSymbol {
|
|
11
|
+
symbolKind = "named-type";
|
|
12
|
+
static memberSpaces = ["members"];
|
|
13
|
+
constructor(name, spaces, kind, options) {
|
|
14
|
+
super(name, spaces, options);
|
|
15
|
+
this.#typeKind = kind;
|
|
16
|
+
}
|
|
17
|
+
#typeKind;
|
|
18
|
+
get typeKind() {
|
|
19
|
+
return this.#typeKind;
|
|
20
|
+
}
|
|
21
|
+
copy() {
|
|
22
|
+
const options = this.getCopyOptions();
|
|
23
|
+
const copy = new NamedTypeSymbol(this.name, undefined, this.#typeKind, options);
|
|
24
|
+
this.initializeCopy(copy);
|
|
25
|
+
return copy;
|
|
26
|
+
}
|
|
27
|
+
get members() {
|
|
28
|
+
return this.memberSpaceFor("members");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=named-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CSharpSymbol","NamedTypeSymbol","symbolKind","memberSpaces","constructor","name","spaces","kind","options","typeKind","copy","getCopyOptions","undefined","initializeCopy","members","memberSpaceFor"],"sources":["../../../src/symbols/named-type.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,YAAY,QAAQ,aAAa;;AAE1C;;AAWA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,SAASD,YAAY,CAAC;EAChCE,UAAU,GAAwB,YAAY;EAC9D,OAAuBC,YAAY,GAAG,CAAC,SAAS,CAAC;EAEjDC,WAAWA,CACTC,IAAsB,EACtBC,MAA+C,EAC/CC,IAAuB,EACvBC,OAA6B,EAC7B;IACA,KAAK,CAACH,IAAI,EAAEC,MAAM,EAAEE,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,QAAQ,GAAGF,IAAI;EACvB;EAEA,CAACE,QAAQ;EACT,IAAIA,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAACA,QAAQ;EACvB;EAEAC,IAAIA,CAAA,EAAG;IACL,MAAMF,OAAO,GAAG,IAAI,CAACG,cAAc,CAAC,CAAC;IACrC,MAAMD,IAAI,GAAG,IAAIT,eAAe,CAC9B,IAAI,CAACI,IAAI,EACTO,SAAS,EACT,IAAI,CAAC,CAACH,QAAQ,EACdD,OACF,CAAC;IACD,IAAI,CAACK,cAAc,CAACH,IAAI,CAAC;IACzB,OAAOA,IAAI;EACb;EAEA,IAAII,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,cAAc,CAAC,SAAS,CAAC;EACvC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { OutputSymbolOptions } from "@alloy-js/core";
|
|
2
|
+
import { NamedTypeSymbol } from "./named-type.js";
|
|
3
|
+
export interface NamespaceSymbolOptions extends OutputSymbolOptions {
|
|
4
|
+
isGlobal?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A symbol for a namespace in C#.
|
|
8
|
+
*/
|
|
9
|
+
export declare class NamespaceSymbol extends NamedTypeSymbol {
|
|
10
|
+
#private;
|
|
11
|
+
readonly symbolKind = "namespace";
|
|
12
|
+
constructor(name: string, parentNamespace?: NamespaceSymbol, options?: NamespaceSymbolOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Whether this symbol is the global namespace symbol.
|
|
15
|
+
*/
|
|
16
|
+
get isGlobal(): boolean;
|
|
17
|
+
getFullyQualifiedName(options?: {
|
|
18
|
+
omitGlobal?: boolean;
|
|
19
|
+
}): string;
|
|
20
|
+
copy(): NamespaceSymbol;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/symbols/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;;IAClD,SAAgB,UAAU,eAAe;gBAEvC,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,eAAe,EACjC,OAAO,CAAC,EAAE,sBAAsB;IAUlC;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED,qBAAqB,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,MAAM;IAoBrE,IAAI;CASL"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NamedTypeSymbol } from "./named-type.js";
|
|
2
|
+
/**
|
|
3
|
+
* A symbol for a namespace in C#.
|
|
4
|
+
*/
|
|
5
|
+
export class NamespaceSymbol extends NamedTypeSymbol {
|
|
6
|
+
symbolKind = "namespace";
|
|
7
|
+
constructor(name, parentNamespace, options) {
|
|
8
|
+
const space = parentNamespace?.members;
|
|
9
|
+
super(name, space, "namespace", options);
|
|
10
|
+
this.#isGlobal = !!options?.isGlobal;
|
|
11
|
+
}
|
|
12
|
+
#isGlobal;
|
|
13
|
+
/**
|
|
14
|
+
* Whether this symbol is the global namespace symbol.
|
|
15
|
+
*/
|
|
16
|
+
get isGlobal() {
|
|
17
|
+
return this.#isGlobal;
|
|
18
|
+
}
|
|
19
|
+
getFullyQualifiedName(options = {}) {
|
|
20
|
+
const parts = [];
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
23
|
+
let current = this;
|
|
24
|
+
while (current && !current.isGlobal) {
|
|
25
|
+
parts.unshift(current.name);
|
|
26
|
+
current = current.ownerSymbol;
|
|
27
|
+
}
|
|
28
|
+
const idPart = parts.join(".");
|
|
29
|
+
if (options.omitGlobal) {
|
|
30
|
+
return idPart;
|
|
31
|
+
} else {
|
|
32
|
+
return `global::${idPart}`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
copy() {
|
|
36
|
+
const options = this.getCopyOptions();
|
|
37
|
+
const copy = new NamespaceSymbol(this.name, undefined, {
|
|
38
|
+
...options,
|
|
39
|
+
isGlobal: this.#isGlobal
|
|
40
|
+
});
|
|
41
|
+
this.initializeCopy(copy);
|
|
42
|
+
return copy;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NamedTypeSymbol","NamespaceSymbol","symbolKind","constructor","name","parentNamespace","options","space","members","isGlobal","getFullyQualifiedName","parts","current","unshift","ownerSymbol","idPart","join","omitGlobal","copy","getCopyOptions","undefined","initializeCopy"],"sources":["../../../src/symbols/namespace.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,eAAe,QAAQ,iBAAiB;AAMjD;AACA;AACA;AACA,OAAO,MAAMC,eAAe,SAASD,eAAe,CAAC;EACnCE,UAAU,GAAG,WAAW;EACxCC,WAAWA,CACTC,IAAY,EACZC,eAAiC,EACjCC,OAAgC,EAChC;IACA,MAAMC,KAAK,GAAGF,eAAe,EAAEG,OAAO;IAEtC,KAAK,CAACJ,IAAI,EAAEG,KAAK,EAAE,WAAW,EAAED,OAAO,CAAC;IAExC,IAAI,CAAC,CAACG,QAAQ,GAAG,CAAC,CAACH,OAAO,EAAEG,QAAQ;EACtC;EAEA,CAACA,QAAQ;EACT;AACF;AACA;EACE,IAAIA,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAACA,QAAQ;EACvB;EAEAC,qBAAqBA,CAACJ,OAAiC,GAAG,CAAC,CAAC,EAAU;IACpE,MAAMK,KAAK,GAAG,EAAE;;IAEhB;IACA,IAAIC,OAAoC,GAAG,IAAI;IAE/C,OAAOA,OAAO,IAAI,CAACA,OAAO,CAACH,QAAQ,EAAE;MACnCE,KAAK,CAACE,OAAO,CAACD,OAAO,CAACR,IAAI,CAAC;MAC3BQ,OAAO,GAAGA,OAAO,CAACE,WAA0C;IAC9D;IAEA,MAAMC,MAAM,GAAGJ,KAAK,CAACK,IAAI,CAAC,GAAG,CAAC;IAE9B,IAAIV,OAAO,CAACW,UAAU,EAAE;MACtB,OAAOF,MAAM;IACf,CAAC,MAAM;MACL,OAAO,WAAWA,MAAM,EAAE;IAC5B;EACF;EAEAG,IAAIA,CAAA,EAAG;IACL,MAAMZ,OAAO,GAAG,IAAI,CAACa,cAAc,CAAC,CAAC;IACrC,MAAMD,IAAI,GAAG,IAAIjB,eAAe,CAAC,IAAI,CAACG,IAAI,EAAEgB,SAAS,EAAE;MACrD,GAAGd,OAAO;MACVG,QAAQ,EAAE,IAAI,CAAC,CAACA;IAClB,CAAC,CAAC;IACF,IAAI,CAACY,cAAc,CAACH,IAAI,CAAC;IACzB,OAAOA,IAAI;EACb;AACF","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function ref(refkey:
|
|
1
|
+
import { Children, OutputSymbol, Refkey } from "@alloy-js/core";
|
|
2
|
+
export declare function ref(refkey: Refkey): () => [Children, OutputSymbol | undefined];
|
|
3
3
|
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/symbols/reference.
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/symbols/reference.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAQ,YAAY,EAAE,MAAM,EAAW,MAAM,gBAAgB,CAAC;AAW/E,wBAAgB,GAAG,CACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC,CAiD5C"}
|
|
@@ -1,54 +1,60 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// in pathDown will be the containing source file. we only need this
|
|
7
|
-
// here so we can find and remove this scope as it's not useful
|
|
8
|
-
// when building the reference
|
|
9
|
-
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { AccessExpression } from "#components/access-expression/access-expression.js";
|
|
3
|
+
import { memo, resolve } from "@alloy-js/core";
|
|
4
|
+
import { CSharpNamespaceScope } from "../scopes/namespace.js";
|
|
5
|
+
import { useSourceFileScope } from "../scopes/source-file.js";
|
|
10
6
|
// converts a refkey to its fully qualified name
|
|
11
7
|
// e.g. if refkey is for bar in enum type foo, and
|
|
12
8
|
// foo is in the same namespace as the refkey, then
|
|
13
9
|
// the result would be foo.bar.
|
|
14
10
|
export function ref(refkey) {
|
|
15
|
-
const
|
|
16
|
-
const resolveResult =
|
|
17
|
-
return
|
|
11
|
+
const refSfScope = useSourceFileScope();
|
|
12
|
+
const resolveResult = resolve(refkey);
|
|
13
|
+
return memo(() => {
|
|
18
14
|
if (resolveResult.value === undefined) {
|
|
19
|
-
return "<Unresolved Symbol>";
|
|
15
|
+
return ["<Unresolved Symbol>", undefined];
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
// targetDeclaration is the symbol with the refkey
|
|
23
|
-
// pathDown is an array of scopes to that symbol and can be empty.
|
|
24
|
-
// the entries are top-down, so namespace, source-file, member
|
|
25
|
-
// - referencing a type within the same namespace will have an empty path
|
|
26
|
-
// - referencing a member (e.g. enum value) within the same namespace will
|
|
27
|
-
// have a single path entry that contains the owning type
|
|
28
|
-
// - referencing a type within the same namespace but in a different source
|
|
29
|
-
// file will have at least a source-file entry
|
|
30
|
-
// - referencing a symbol outside the current namespace will have at least
|
|
31
|
-
// two entries, namespace, source-file
|
|
17
|
+
const result = resolveResult.value;
|
|
32
18
|
const {
|
|
33
|
-
|
|
34
|
-
pathDown
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
targetSrc.addUsing(sourceNamespace.name);
|
|
19
|
+
commonScope,
|
|
20
|
+
pathDown,
|
|
21
|
+
memberPath
|
|
22
|
+
} = result;
|
|
23
|
+
let {
|
|
24
|
+
lexicalDeclaration
|
|
25
|
+
} = result;
|
|
26
|
+
if (!commonScope) {
|
|
27
|
+
// this shouldn't be possible in csharp.
|
|
28
|
+
return ["<Unresolved Symbol>", undefined];
|
|
44
29
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
30
|
+
if (commonScope instanceof CSharpNamespaceScope && commonScope.ownerSymbol.isGlobal && lexicalDeclaration.symbolKind === "namespace" && memberPath.length > 0) {
|
|
31
|
+
// we need to using the namespace
|
|
32
|
+
let nsToUse;
|
|
33
|
+
while (lexicalDeclaration.symbolKind === "namespace" && memberPath.length > 0) {
|
|
34
|
+
nsToUse = lexicalDeclaration;
|
|
35
|
+
lexicalDeclaration = memberPath.shift();
|
|
36
|
+
}
|
|
37
|
+
refSfScope.addUsing(nsToUse);
|
|
38
|
+
}
|
|
39
|
+
const parts = [];
|
|
40
|
+
for (const nsScope of pathDown) {
|
|
41
|
+
parts.push(_$createComponent(AccessExpression.Part, {
|
|
42
|
+
get symbol() {
|
|
43
|
+
return nsScope.ownerSymbol;
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
parts.push(_$createComponent(AccessExpression.Part, {
|
|
48
|
+
symbol: lexicalDeclaration
|
|
49
|
+
}));
|
|
50
|
+
for (const member of memberPath) {
|
|
51
|
+
parts.push(_$createComponent(AccessExpression.Part, {
|
|
52
|
+
symbol: member
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
return [_$createComponent(AccessExpression, {
|
|
56
|
+
children: parts
|
|
57
|
+
}), result.symbol];
|
|
53
58
|
});
|
|
54
|
-
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AccessExpression","memo","resolve","CSharpNamespaceScope","useSourceFileScope","ref","refkey","refSfScope","resolveResult","value","undefined","result","commonScope","pathDown","memberPath","lexicalDeclaration","ownerSymbol","isGlobal","symbolKind","length","nsToUse","shift","addUsing","parts","nsScope","push","_$createComponent","Part","symbol","member","children"],"sources":["../../../src/symbols/reference.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,gBAAgB;AACzB,SAAmBC,IAAI,EAAwBC,OAAO,QAAQ,gBAAgB;AAE9E,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,kBAAkB,QAAQ,0BAA0B;AAI7D;AACA;AACA;AACA;AACA,OAAO,SAASC,GAAGA,CACjBC,MAAc,EAC8B;EAC5C,MAAMC,UAAU,GAAGH,kBAAkB,CAAC,CAAE;EACxC,MAAMI,aAAa,GAAGN,OAAO,CAA4BI,MAAgB,CAAC;EAC1E,OAAOL,IAAI,CAAC,MAAM;IAChB,IAAIO,aAAa,CAACC,KAAK,KAAKC,SAAS,EAAE;MACrC,OAAO,CAAC,qBAAqB,EAAEA,SAAS,CAAC;IAC3C;IAEA,MAAMC,MAAM,GAAGH,aAAa,CAACC,KAAK;IAClC,MAAM;MAAEG,WAAW;MAAEC,QAAQ;MAAEC;IAAW,CAAC,GAAGH,MAAM;IACpD,IAAI;MAAEI;IAAmB,CAAC,GAAGJ,MAAM;IAEnC,IAAI,CAACC,WAAW,EAAE;MAChB;MACA,OAAO,CAAC,qBAAqB,EAAEF,SAAS,CAAC;IAC3C;IAEA,IACEE,WAAW,YAAYT,oBAAoB,IAC3CS,WAAW,CAACI,WAAW,CAACC,QAAQ,IAChCF,kBAAkB,CAACG,UAAU,KAAK,WAAW,IAC7CJ,UAAU,CAACK,MAAM,GAAG,CAAC,EACrB;MACA;MACA,IAAIC,OAAwB;MAC5B,OACEL,kBAAkB,CAACG,UAAU,KAAK,WAAW,IAC7CJ,UAAU,CAACK,MAAM,GAAG,CAAC,EACrB;QACAC,OAAO,GAAGL,kBAAqC;QAC/CA,kBAAkB,GAAGD,UAAU,CAACO,KAAK,CAAC,CAAE;MAC1C;MAEAd,UAAU,CAACe,QAAQ,CAACF,OAAQ,CAAC;IAC/B;IAEA,MAAMG,KAAK,GAAG,EAAE;IAEhB,KAAK,MAAMC,OAAO,IAAIX,QAAQ,EAAE;MAC9BU,KAAK,CAACE,IAAI,CAAAC,iBAAA,CAAE1B,gBAAgB,CAAC2B,IAAI;QAAA,IAACC,MAAMA,CAAA;UAAA,OAAEJ,OAAO,CAACR,WAAW;QAAA;MAAA,EAAK,CAAC;IACrE;IAEAO,KAAK,CAACE,IAAI,CAAAC,iBAAA,CAAE1B,gBAAgB,CAAC2B,IAAI;MAACC,MAAM,EAAEb;IAAkB,EAAI,CAAC;IACjE,KAAK,MAAMc,MAAM,IAAIf,UAAU,EAAE;MAC/BS,KAAK,CAACE,IAAI,CAAAC,iBAAA,CAAE1B,gBAAgB,CAAC2B,IAAI;QAACC,MAAM,EAAEC;MAAM,EAAI,CAAC;IACvD;IAEA,OAAO,CAAAH,iBAAA,CAAE1B,gBAAgB;MAAC8B,QAAQ,EAAEP;IAAK,IAAMZ,MAAM,CAACiB,MAAM,CAAC;EAC/D,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -37,7 +37,9 @@ it("defines a project directory file with multiple source files", () => {
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
})
|
|
40
|
+
}), {
|
|
41
|
+
insertFinalNewLine: false
|
|
42
|
+
});
|
|
41
43
|
const projDir = res.contents[0];
|
|
42
44
|
expect(projDir.path).equals("~/projects/TestProject");
|
|
43
45
|
expect(projDir.contents[0].path).equals("~/projects/TestProject/TestProject.csproj");
|
|
@@ -53,17 +55,15 @@ it("defines a project directory file with multiple source files", () => {
|
|
|
53
55
|
const srcDir = projDir.contents[1];
|
|
54
56
|
expect(srcDir.contents[0].path).equals("~/projects/TestProject/src/Test1.cs");
|
|
55
57
|
expect(srcDir.contents[0].contents).toBe(coretest.d`
|
|
56
|
-
namespace TestCode
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
58
|
+
namespace TestCode;
|
|
59
|
+
|
|
60
|
+
public class TestClass1;
|
|
60
61
|
`);
|
|
61
62
|
expect(srcDir.contents[1].path).equals("~/projects/TestProject/src/Test2.cs");
|
|
62
63
|
expect(srcDir.contents[1].contents).toBe(coretest.d`
|
|
63
|
-
namespace TestCode
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
64
|
+
namespace TestCode;
|
|
65
|
+
|
|
66
|
+
public class TestClass2;
|
|
67
67
|
`);
|
|
68
68
|
});
|
|
69
69
|
it("defines a project directory file with multiple source files and a custom TFM", () => {
|
|
@@ -101,7 +101,9 @@ it("defines a project directory file with multiple source files and a custom TFM
|
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
-
})
|
|
104
|
+
}), {
|
|
105
|
+
insertFinalNewLine: false
|
|
106
|
+
});
|
|
105
107
|
const projDir = res.contents[0];
|
|
106
108
|
expect(projDir.path).equals("~/projects/TestProject");
|
|
107
109
|
expect(projDir.contents[0].path).equals("~/projects/TestProject/TestProject.csproj");
|
|
@@ -117,16 +119,15 @@ it("defines a project directory file with multiple source files and a custom TFM
|
|
|
117
119
|
const srcDir = projDir.contents[1];
|
|
118
120
|
expect(srcDir.contents[0].path).equals("~/projects/TestProject/src/Test1.cs");
|
|
119
121
|
expect(srcDir.contents[0].contents).toBe(coretest.d`
|
|
120
|
-
namespace TestCode
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
122
|
+
namespace TestCode;
|
|
123
|
+
|
|
124
|
+
public class TestClass1;
|
|
124
125
|
`);
|
|
125
126
|
expect(srcDir.contents[1].path).equals("~/projects/TestProject/src/Test2.cs");
|
|
126
127
|
expect(srcDir.contents[1].contents).toBe(coretest.d`
|
|
127
|
-
namespace TestCode
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
128
|
+
namespace TestCode;
|
|
129
|
+
|
|
130
|
+
public class TestClass2;
|
|
131
131
|
`);
|
|
132
|
-
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=project-directory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["core","coretest","expect","it","csharp","res","render","_$createComponent","Output","children","ProjectDirectory","name","path","version","description","Namespace","SourceFile","ClassDeclaration","insertFinalNewLine","projDir","contents","equals","toBe","d","srcDir","targetFrameworkMoniker"],"sources":["../../test/project-directory.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,OAAO,KAAKA,IAAI,MAAM,gBAAgB;AACtC,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAClD,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AAEzCD,EAAE,CAAC,6DAA6D,EAAE,MAAM;EACtE,MAAME,GAAG,GAAGL,IAAI,CAACM,MAAM,CAAAC,iBAAA,CACpBP,IAAI,CAACQ,MAAM;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACTH,MAAM,CAACM,gBAAgB;QACtBC,IAAI;QACJC,IAAI;QACJC,OAAO;QACPC,WAAW;QAAA,IAAAL,SAAA;UAAA,OAAAF,iBAAA,CAEVH,MAAM,CAACW,SAAS;YAACJ,IAAI;YAAA,IAAAF,SAAA;cAAA,QAAAF,iBAAA,CACnBH,MAAM,CAACY,UAAU;gBAACJ,IAAI;gBAAA,IAAAH,SAAA;kBAAA,OAAAF,iBAAA,CACpBH,MAAM,CAACa,gBAAgB;oBAAA;oBAAQN,IAAI;kBAAA;gBAAA;cAAA,IAAAJ,iBAAA,CAErCH,MAAM,CAACY,UAAU;gBAACJ,IAAI;gBAAA,IAAAH,SAAA;kBAAA,OAAAF,iBAAA,CACpBH,MAAM,CAACa,gBAAgB;oBAAA;oBAAQN,IAAI;kBAAA;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,IAK5C;IAAEO,kBAAkB,EAAE;EAAM,CAC9B,CAAC;EAED,MAAMC,OAAO,GAAGd,GAAG,CAACe,QAAQ,CAAC,CAAC,CAAyB;EAEvDlB,MAAM,CAACiB,OAAO,CAACP,IAAI,CAAC,CAACS,MAAM,CAAC,wBAAwB,CAAC;EACrDnB,MAAM,CAACiB,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CACrC,2CACF,CAAC;EACDnB,MAAM,CAAEiB,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC7DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;EAEF,MAAMC,MAAM,GAAGL,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAyB;EAE1DlB,MAAM,CAACsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CAAC,qCAAqC,CAAC;EAC7EnB,MAAM,CAAEsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC5DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;EAEFrB,MAAM,CAACsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CAAC,qCAAqC,CAAC;EAC7EnB,MAAM,CAAEsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC5DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFpB,EAAE,CAAC,8EAA8E,EAAE,MAAM;EACvF,MAAME,GAAG,GAAGL,IAAI,CAACM,MAAM,CAAAC,iBAAA,CACpBP,IAAI,CAACQ,MAAM;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACTH,MAAM,CAACM,gBAAgB;QACtBC,IAAI;QACJC,IAAI;QACJC,OAAO;QACPC,WAAW;QACXW,sBAAsB;QAAA,IAAAhB,SAAA;UAAA,OAAAF,iBAAA,CAErBH,MAAM,CAACW,SAAS;YAACJ,IAAI;YAAA,IAAAF,SAAA;cAAA,QAAAF,iBAAA,CACnBH,MAAM,CAACY,UAAU;gBAACJ,IAAI;gBAAA,IAAAH,SAAA;kBAAA,OAAAF,iBAAA,CACpBH,MAAM,CAACa,gBAAgB;oBAAA;oBAAQN,IAAI;kBAAA;gBAAA;cAAA,IAAAJ,iBAAA,CAErCH,MAAM,CAACY,UAAU;gBAACJ,IAAI;gBAAA,IAAAH,SAAA;kBAAA,OAAAF,iBAAA,CACpBH,MAAM,CAACa,gBAAgB;oBAAA;oBAAQN,IAAI;kBAAA;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,IAK5C;IAAEO,kBAAkB,EAAE;EAAM,CAC9B,CAAC;EAED,MAAMC,OAAO,GAAGd,GAAG,CAACe,QAAQ,CAAC,CAAC,CAAyB;EAEvDlB,MAAM,CAACiB,OAAO,CAACP,IAAI,CAAC,CAACS,MAAM,CAAC,wBAAwB,CAAC;EACrDnB,MAAM,CAACiB,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CACrC,2CACF,CAAC;EACDnB,MAAM,CAAEiB,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC7DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;EAEF,MAAMC,MAAM,GAAGL,OAAO,CAACC,QAAQ,CAAC,CAAC,CAAyB;EAE1DlB,MAAM,CAACsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CAAC,qCAAqC,CAAC;EAC7EnB,MAAM,CAAEsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC5DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;EAEFrB,MAAM,CAACsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAACR,IAAI,CAAC,CAACS,MAAM,CAAC,qCAAqC,CAAC;EAC7EnB,MAAM,CAAEsB,MAAM,CAACJ,QAAQ,CAAC,CAAC,CAAC,CAA4BA,QAAQ,CAAC,CAC5DE,IAAI,CAACrB,QAAQ,CAACsB,CAAC;AACpB;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
package/dist/test/using.test.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as core from "@alloy-js/core";
|
|
|
3
3
|
import * as coretest from "@alloy-js/core/testing";
|
|
4
4
|
import { expect, it } from "vitest";
|
|
5
5
|
import * as csharp from "../src/index.js";
|
|
6
|
-
import {
|
|
6
|
+
import { findFile } from "./utils.js";
|
|
7
7
|
it("uses a single namespace", () => {
|
|
8
8
|
const res = core.render(_$createComponent(core.Output, {
|
|
9
9
|
get children() {
|
|
@@ -21,7 +21,9 @@ it("uses a single namespace", () => {
|
|
|
21
21
|
expect(findFile(res, "Test1.cs").contents).toBe(coretest.d`
|
|
22
22
|
using Foo;
|
|
23
23
|
|
|
24
|
-
namespace TestCode
|
|
24
|
+
namespace TestCode;
|
|
25
|
+
|
|
26
|
+
|
|
25
27
|
`);
|
|
26
28
|
});
|
|
27
29
|
it("uses multiple namespaces", () => {
|
|
@@ -42,7 +44,9 @@ it("uses multiple namespaces", () => {
|
|
|
42
44
|
using Bar.Baz;
|
|
43
45
|
using Foo;
|
|
44
46
|
|
|
45
|
-
namespace TestCode
|
|
47
|
+
namespace TestCode;
|
|
48
|
+
|
|
49
|
+
|
|
46
50
|
`);
|
|
47
51
|
});
|
|
48
52
|
it("adds using statement across namespaces", () => {
|
|
@@ -53,7 +57,7 @@ it("adds using statement across namespaces", () => {
|
|
|
53
57
|
name: "BodyParam",
|
|
54
58
|
type: inputTypeRefkey
|
|
55
59
|
}];
|
|
56
|
-
|
|
60
|
+
expect(_$createComponent(core.Output, {
|
|
57
61
|
get namePolicy() {
|
|
58
62
|
return csharp.createCSharpNamePolicy();
|
|
59
63
|
},
|
|
@@ -111,32 +115,30 @@ it("adds using statement across namespaces", () => {
|
|
|
111
115
|
}
|
|
112
116
|
})];
|
|
113
117
|
}
|
|
114
|
-
}))
|
|
115
|
-
assertFileContents(res, {
|
|
118
|
+
})).toRenderTo({
|
|
116
119
|
"Models.cs": coretest.d`
|
|
117
|
-
namespace Models
|
|
120
|
+
namespace Models;
|
|
121
|
+
|
|
122
|
+
public class Input;
|
|
123
|
+
public class Output;
|
|
124
|
+
public enum TestEnum
|
|
118
125
|
{
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
public enum TestEnum
|
|
122
|
-
{
|
|
123
|
-
One,
|
|
124
|
-
Two
|
|
125
|
-
}
|
|
126
|
+
One,
|
|
127
|
+
Two
|
|
126
128
|
}
|
|
127
129
|
`,
|
|
128
130
|
"Client.cs": coretest.d`
|
|
129
131
|
using Models;
|
|
130
132
|
using System;
|
|
131
133
|
|
|
132
|
-
namespace Client
|
|
134
|
+
namespace Client;
|
|
135
|
+
|
|
136
|
+
public class Client
|
|
133
137
|
{
|
|
134
|
-
public
|
|
135
|
-
{
|
|
136
|
-
public Output MethodOne(Input bodyParam) {}
|
|
137
|
-
}
|
|
138
|
-
TestEnum.Two;
|
|
138
|
+
public Output MethodOne(Input bodyParam) {}
|
|
139
139
|
}
|
|
140
|
+
TestEnum.Two;
|
|
140
141
|
`
|
|
141
142
|
});
|
|
142
|
-
});
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=using.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["core","coretest","expect","it","csharp","findFile","res","render","_$createComponent","Output","children","Namespace","name","SourceFile","path","using","contents","toBe","d","inputTypeRefkey","refkey","outputTypeRefkey","twoValRefkey","params","type","namePolicy","createCSharpNamePolicy","ClassDeclaration","_$createIntrinsic","EnumDeclaration","EnumMember","Method","parameters","returns","toRenderTo"],"sources":["../../test/using.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/test/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAKvC,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;CACzB,GAAG,IAAI,CAAC,QAAQ,CAMhB;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAKvC,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;CACzB,GAAG,IAAI,CAAC,QAAQ,CAMhB;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAYrD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAMjE;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,IAAI,EAAE,MAAM,GACX,IAAI,CAAC,iBAAiB,CA2BxB;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,IAAI,CAKN"}
|