@alloy-js/csharp 0.20.0-dev.2 → 0.20.0-dev.4
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 +3 -13
- package/dist/src/components/Reference.d.ts.map +1 -1
- package/dist/src/components/Reference.js +5 -1
- package/dist/src/components/SourceFile.d.ts +8 -9
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +69 -45
- 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 +3 -1
- package/dist/src/components/class/declaration.d.ts +2 -2
- package/dist/src/components/class/declaration.d.ts.map +1 -1
- package/dist/src/components/class/declaration.js +19 -33
- package/dist/src/components/class/declaration.test.js +192 -193
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +11 -19
- package/dist/src/components/constructor/constructor.test.js +10 -19
- 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 +54 -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 +120 -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 +39 -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 +29 -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 +28 -0
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/field/field.js +9 -17
- package/dist/src/components/field/field.test.js +7 -7
- package/dist/src/components/index.d.ts +5 -2
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +5 -2
- package/dist/src/components/interface/declaration.d.ts.map +1 -1
- package/dist/src/components/interface/declaration.js +19 -21
- package/dist/src/components/interface/declaration.test.js +26 -35
- package/dist/src/components/interface/method.d.ts.map +1 -1
- package/dist/src/components/interface/method.js +7 -18
- package/dist/src/components/interface/method.test.js +38 -47
- package/dist/src/components/interface/property.d.ts.map +1 -1
- package/dist/src/components/interface/property.js +21 -39
- package/dist/src/components/interface/property.test.js +11 -11
- 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 +24 -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 +7 -16
- package/dist/src/components/method/method.test.js +11 -11
- 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 +24 -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 +44 -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 +46 -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 +181 -0
- package/dist/src/components/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace.test.js +78 -0
- package/dist/src/components/parameters/parameters.d.ts +2 -2
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +12 -14
- 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 +87 -0
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +21 -39
- package/dist/src/components/property/property.test.js +14 -14
- 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 +19 -13
- package/dist/src/components/record/declaration.test.js +50 -3
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +4 -6
- package/dist/src/components/struct/declaration.test.js +30 -39
- package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.js +7 -10
- package/dist/src/components/type-parameters/type-parameters.test.js +3 -3
- package/dist/src/components/var/declaration.d.ts.map +1 -1
- package/dist/src/components/var/declaration.js +6 -8
- package/dist/src/components/var/declaration.test.js +11 -20
- 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 +24 -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 +5 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/modifiers.d.ts +11 -0
- package/dist/src/modifiers.d.ts.map +1 -1
- 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 +10 -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 +33 -0
- package/dist/src/scopes/csharp.d.ts +8 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -0
- package/dist/src/scopes/csharp.js +11 -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 +23 -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 +9 -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 +7 -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 +13 -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 +32 -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 +38 -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 +43 -0
- package/dist/src/symbols/csharp.d.ts +76 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -0
- package/dist/src/symbols/csharp.js +222 -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 +86 -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 -3
- 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 +15 -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 +30 -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 +44 -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 +36 -43
- package/dist/test/project-directory.test.js +12 -16
- package/dist/test/sourcefile.test.js +7 -19
- package/dist/test/using.test.js +18 -16
- package/dist/test/utils.js +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -4
- package/src/components/Declaration.tsx +3 -6
- package/src/components/Reference.tsx +3 -1
- package/src/components/SourceFile.tsx +68 -55
- package/src/components/UsingDirective.tsx +12 -2
- package/src/components/class/declaration.test.tsx +138 -143
- package/src/components/class/declaration.tsx +20 -33
- package/src/components/constructor/constructor.test.tsx +10 -16
- 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 +7 -7
- package/src/components/field/field.tsx +12 -22
- package/src/components/index.ts +5 -2
- 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/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 +71 -0
- package/src/components/parameters/parameters.tsx +9 -21
- package/src/components/property/property.test.tsx +14 -14
- package/src/components/property/property.tsx +17 -41
- package/src/components/record/declaration.test.tsx +47 -3
- package/src/components/record/declaration.tsx +34 -11
- 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/global-namespace.ts +29 -0
- package/src/contexts/namespace.ts +13 -0
- package/src/index.ts +1 -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 +18 -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 +307 -0
- package/src/symbols/factories.ts +199 -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.ts +47 -50
- package/temp/api.json +6152 -2151
- package/test/project-directory.test.tsx +12 -16
- package/test/sourcefile.test.tsx +7 -21
- package/test/using.test.tsx +18 -16
- package/test/utils.tsx +1 -1
- package/tsdoc-metadata.json +1 -1
- 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/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/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/src/components/EnumDeclaration.tsx +0 -99
- package/src/components/Namespace.tsx +0 -35
- package/src/symbols/csharp-output-symbol.ts +0 -22
- package/src/symbols/scopes.ts +0 -41
- package/test/enum.test.tsx +0 -149
- package/test/namespace.test.tsx +0 -55
- /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as core from "@alloy-js/core";
|
|
2
2
|
export interface DeclarationProps {
|
|
3
3
|
name: string;
|
|
4
|
-
refkey?: core.Refkey;
|
|
4
|
+
refkey?: core.Refkey | core.Refkey[];
|
|
5
5
|
children?: core.Children;
|
|
6
6
|
}
|
|
7
|
-
export declare function Declaration(props: DeclarationProps):
|
|
7
|
+
export declare function Declaration(props: DeclarationProps): void;
|
|
8
8
|
//# sourceMappingURL=Declaration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,QAIlD"}
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import * as core from "@alloy-js/core";
|
|
3
|
-
import { CSharpOutputSymbol } from "../symbols/csharp-output-symbol.js";
|
|
4
|
-
|
|
5
1
|
// properties for creating a declaration
|
|
6
2
|
|
|
7
3
|
// declares a symbol in the program (class, enum, interface etc)
|
|
8
4
|
export function Declaration(props) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
return _$createComponent(core.Declaration, {
|
|
13
|
-
symbol: sym,
|
|
14
|
-
get children() {
|
|
15
|
-
return props.children;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
5
|
+
throw new Error("Not supported");
|
|
6
|
+
|
|
7
|
+
//return <core.Declaration symbol={sym}>{props.children}</core.Declaration>;
|
|
18
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../../src/components/Reference.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAGvC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAGD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../../src/components/Reference.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAGvC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB;AAGD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,iBAMnD"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import * as core from "@alloy-js/core";
|
|
1
3
|
import { ref } from "../symbols/reference.js";
|
|
2
4
|
// used to resolve refkey references within source files
|
|
3
5
|
export function Reference({
|
|
4
6
|
refkey
|
|
5
7
|
}) {
|
|
6
8
|
const reference = ref(refkey);
|
|
7
|
-
|
|
9
|
+
const symbolRef = core.computed(() => reference()[1]);
|
|
10
|
+
core.emitSymbol(symbolRef);
|
|
11
|
+
return [_$memo(() => reference()[0])];
|
|
8
12
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
export interface SourceFileContext {
|
|
3
|
-
addUsing(namespace: string): void;
|
|
4
|
-
}
|
|
5
|
-
export declare function useSourceFile(): SourceFileContext | undefined;
|
|
1
|
+
import { Children } from "@alloy-js/core";
|
|
6
2
|
export interface SourceFileProps {
|
|
7
3
|
/** Path of the source file */
|
|
8
4
|
path: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
children?: Children;
|
|
6
|
+
/**
|
|
7
|
+
* A list of using directives to explicitly include. Note that providing
|
|
8
|
+
* explicit usings is not necessary when referencing symbols via refkeys.
|
|
9
|
+
*/
|
|
10
|
+
using?: string[];
|
|
12
11
|
}
|
|
13
|
-
export declare function SourceFile(props: SourceFileProps):
|
|
12
|
+
export declare function SourceFile(props: SourceFileProps): Children;
|
|
14
13
|
//# sourceMappingURL=SourceFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceFile.d.ts","sourceRoot":"","sources":["../../../src/components/SourceFile.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SourceFile.d.ts","sourceRoot":"","sources":["../../../src/components/SourceFile.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMT,MAAM,gBAAgB,CAAC;AASxB,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA2DhD"}
|
|
@@ -1,40 +1,23 @@
|
|
|
1
|
-
import { memo as _$memo,
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { memo as _$memo, createIntrinsic as _$createIntrinsic, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { computed, SourceFile as CoreSourceFile, Scope, Show, useBinder } from "@alloy-js/core";
|
|
3
|
+
import { getGlobalNamespace } from "../contexts/global-namespace.js";
|
|
4
|
+
import { useNamespaceContext } from "../contexts/namespace.js";
|
|
5
|
+
import { CSharpSourceFileScope } from "../scopes/source-file.js";
|
|
6
|
+
import { NamespaceScope, NamespaceScopes } from "./namespace-scopes.js";
|
|
4
7
|
import { Reference } from "./Reference.js";
|
|
5
8
|
import { UsingDirective } from "./UsingDirective.js";
|
|
6
|
-
|
|
7
|
-
// contains the info for the current source file
|
|
8
|
-
|
|
9
|
-
const SourceFileContext = core.createContext();
|
|
10
|
-
|
|
11
|
-
// returns the current source file
|
|
12
|
-
export function useSourceFile() {
|
|
13
|
-
return core.useContext(SourceFileContext);
|
|
14
|
-
}
|
|
15
9
|
// a C# source file. exists within the context of a namespace
|
|
16
10
|
// contains using statements and declarations
|
|
17
11
|
export function SourceFile(props) {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// adds the specified namespace to the array of using statements.
|
|
28
|
-
// called via SourceFileContext.addUsing when resolving refkeys.
|
|
29
|
-
function addUsing(namespace) {
|
|
30
|
-
if (!using.includes(namespace)) {
|
|
31
|
-
using.push(namespace);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const sourceFileCtx = {
|
|
35
|
-
addUsing
|
|
36
|
-
};
|
|
37
|
-
return _$createComponent(core.SourceFile, {
|
|
12
|
+
const sourceFileScope = new CSharpSourceFileScope(props.path);
|
|
13
|
+
const nsContext = useNamespaceContext();
|
|
14
|
+
const globalNs = getGlobalNamespace(useBinder());
|
|
15
|
+
const nsSymbol = nsContext ? nsContext.symbol : globalNs;
|
|
16
|
+
const nsRef = nsContext ? nsContext.symbol.name : undefined;
|
|
17
|
+
const usings = computed(() => {
|
|
18
|
+
return Array.from(sourceFileScope.usings).concat(props.using ?? []);
|
|
19
|
+
});
|
|
20
|
+
return _$createComponent(CoreSourceFile, {
|
|
38
21
|
get path() {
|
|
39
22
|
return props.path;
|
|
40
23
|
},
|
|
@@ -43,25 +26,66 @@ export function SourceFile(props) {
|
|
|
43
26
|
tabWidth: 4,
|
|
44
27
|
printWidth: 120,
|
|
45
28
|
get children() {
|
|
46
|
-
return _$createComponent(
|
|
47
|
-
value:
|
|
29
|
+
return _$createComponent(Scope, {
|
|
30
|
+
value: sourceFileScope,
|
|
48
31
|
get children() {
|
|
49
|
-
return _$createComponent(
|
|
50
|
-
get
|
|
51
|
-
return
|
|
52
|
-
}
|
|
53
|
-
|
|
32
|
+
return [_$memo(() => _$memo(() => !!(sourceFileScope.usings.size > 0 || props.using && props.using.length > 0))() && [_$createComponent(UsingDirective, {
|
|
33
|
+
get namespaces() {
|
|
34
|
+
return usings.value;
|
|
35
|
+
}
|
|
36
|
+
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})]), _$createComponent(Show, {
|
|
37
|
+
when: !!nsContext && nsSymbol !== globalNs,
|
|
54
38
|
get children() {
|
|
55
|
-
return [_$
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
return [_$createComponent(Show, {
|
|
40
|
+
get when() {
|
|
41
|
+
return sourceFileScope.hasBlockNamespace;
|
|
42
|
+
},
|
|
59
43
|
get children() {
|
|
60
|
-
return
|
|
44
|
+
return ["namespace ", nsRef, " {", _$createIntrinsic("hbr", {}), " "];
|
|
45
|
+
}
|
|
46
|
+
}), _$createComponent(Show, {
|
|
47
|
+
get when() {
|
|
48
|
+
return !sourceFileScope.hasBlockNamespace;
|
|
49
|
+
},
|
|
50
|
+
get children() {
|
|
51
|
+
return ["namespace ", nsRef, ";", _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})];
|
|
52
|
+
}
|
|
53
|
+
}), _$createIntrinsic("align", {
|
|
54
|
+
get width() {
|
|
55
|
+
return sourceFileScope.hasBlockNamespace ? 4 : 0;
|
|
56
|
+
},
|
|
57
|
+
get children() {
|
|
58
|
+
return _$createComponent(NamespaceScopes, {
|
|
59
|
+
get symbol() {
|
|
60
|
+
return nsContext.symbol;
|
|
61
|
+
},
|
|
62
|
+
get children() {
|
|
63
|
+
return props.children;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}), _$createComponent(Show, {
|
|
68
|
+
get when() {
|
|
69
|
+
return sourceFileScope.hasBlockNamespace;
|
|
70
|
+
},
|
|
71
|
+
get children() {
|
|
72
|
+
return [_$createIntrinsic("hbr", {}), "}"];
|
|
61
73
|
}
|
|
62
74
|
})];
|
|
63
75
|
}
|
|
64
|
-
})
|
|
76
|
+
}), _$createComponent(Show, {
|
|
77
|
+
when: !nsContext || nsSymbol === globalNs,
|
|
78
|
+
get children() {
|
|
79
|
+
return _$createComponent(NamespaceScope, {
|
|
80
|
+
get symbol() {
|
|
81
|
+
return getGlobalNamespace(useBinder());
|
|
82
|
+
},
|
|
83
|
+
get children() {
|
|
84
|
+
return props.children;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
})];
|
|
65
89
|
}
|
|
66
90
|
});
|
|
67
91
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import * as core from "@alloy-js/core";
|
|
2
|
+
import { NamespaceSymbol } from "../symbols/namespace.js";
|
|
2
3
|
export interface UsingDirectiveProps {
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Namespace symbols or namespace names to use to generate using statements.
|
|
6
|
+
*/
|
|
7
|
+
namespaces?: (NamespaceSymbol | string)[];
|
|
4
8
|
}
|
|
5
9
|
export declare function UsingDirective(props: UsingDirectiveProps): core.Children;
|
|
6
10
|
//# sourceMappingURL=UsingDirective.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsingDirective.d.ts","sourceRoot":"","sources":["../../../src/components/UsingDirective.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"UsingDirective.d.ts","sourceRoot":"","sources":["../../../src/components/UsingDirective.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3C;AAGD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,iBAgBxD"}
|
|
@@ -3,7 +3,9 @@ import * as core from "@alloy-js/core";
|
|
|
3
3
|
// one ore more C# using directives
|
|
4
4
|
export function UsingDirective(props) {
|
|
5
5
|
const sortedNamespaces = core.computed(() => {
|
|
6
|
-
return props.namespaces.
|
|
6
|
+
return props.namespaces.map(ns => typeof ns === "string" ? ns : ns.getFullyQualifiedName({
|
|
7
|
+
omitGlobal: true
|
|
8
|
+
})).sort((n1, n2) => n1.localeCompare(n2));
|
|
7
9
|
});
|
|
8
10
|
return _$createComponent(core.For, {
|
|
9
11
|
each: sortedNamespaces,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, DeclarationProps, Refkey } from "@alloy-js/core";
|
|
1
|
+
import { Children, DeclarationProps, Namekey, Refkey } from "@alloy-js/core";
|
|
2
2
|
import { AccessModifiers } from "../../modifiers.js";
|
|
3
3
|
import { AttributesProp } from "../attributes/attributes.jsx";
|
|
4
4
|
import { ParameterProps } from "../parameters/parameters.jsx";
|
|
@@ -10,7 +10,7 @@ export interface ClassModifiers {
|
|
|
10
10
|
readonly static?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export interface ClassDeclarationProps extends Omit<DeclarationProps, "nameKind">, AccessModifiers, ClassModifiers {
|
|
13
|
-
name: string;
|
|
13
|
+
name: string | Namekey;
|
|
14
14
|
/** Doc comment */
|
|
15
15
|
doc?: Children;
|
|
16
16
|
refkey?: Refkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/class/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,gBAAgB,EAGhB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/class/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,gBAAgB,EAGhB,OAAO,EACP,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAUD,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACxC,eAAe,EACf,cAAc;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAEjD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,uCAAuC;IACvC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,YAqC5D"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Block, Declaration, join, Name, Scope } from "@alloy-js/core";
|
|
3
3
|
import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { CSharpMemberScope } from "../../symbols/scopes.js";
|
|
4
|
+
import { createClassScope } from "../../scopes/factories.js";
|
|
5
|
+
import { createNamedTypeSymbol } from "../../symbols/factories.js";
|
|
7
6
|
import { AttributeList } from "../attributes/attributes.js";
|
|
8
7
|
import { DocWhen } from "../doc/comment.js";
|
|
9
8
|
import { Parameters } from "../parameters/parameters.js";
|
|
10
9
|
import { TypeParameterConstraints } from "../type-parameters/type-parameter-constraints.js";
|
|
11
10
|
import { TypeParameters } from "../type-parameters/type-parameters.js";
|
|
12
|
-
const getClassModifiers = makeModifiers(["abstract", "
|
|
11
|
+
const getClassModifiers = makeModifiers(["abstract", "sealed", "static", "partial"]);
|
|
13
12
|
|
|
14
13
|
// properties for creating a class
|
|
15
14
|
|
|
@@ -38,18 +37,10 @@ const getClassModifiers = makeModifiers(["abstract", "partial", "sealed", "stati
|
|
|
38
37
|
* ```
|
|
39
38
|
*/
|
|
40
39
|
export function ClassDeclaration(props) {
|
|
41
|
-
const
|
|
42
|
-
const thisClassSymbol = new CSharpOutputSymbol(name, {
|
|
40
|
+
const thisClassSymbol = createNamedTypeSymbol(props.name, "class", {
|
|
43
41
|
refkeys: props.refkey
|
|
44
42
|
});
|
|
45
|
-
|
|
46
|
-
// this creates a new scope for the class definition.
|
|
47
|
-
// members will automatically "inherit" this scope so
|
|
48
|
-
// that refkeys to them will produce the fully-qualified
|
|
49
|
-
// name e.g. Foo.Bar.
|
|
50
|
-
const thisClassScope = new CSharpMemberScope("class-decl", {
|
|
51
|
-
owner: thisClassSymbol
|
|
52
|
-
});
|
|
43
|
+
const thisClassScope = createClassScope(thisClassSymbol);
|
|
53
44
|
const bases = [...(props.baseType ? [props.baseType] : []), ...(props.interfaceTypes || [])];
|
|
54
45
|
const base = bases.length > 0 ? [" : ", _$memo(() => join(bases, {
|
|
55
46
|
joiner: ", "
|
|
@@ -67,34 +58,29 @@ export function ClassDeclaration(props) {
|
|
|
67
58
|
return props.attributes;
|
|
68
59
|
},
|
|
69
60
|
endline: true
|
|
70
|
-
}), modifiers, "class ", _$createComponent(Name, {}), _$
|
|
71
|
-
get parameters() {
|
|
72
|
-
return props.typeParameters;
|
|
73
|
-
}
|
|
74
|
-
})), _$memo(() => _$memo(() => !!props.primaryConstructor)() && _$createComponent(Scope, {
|
|
61
|
+
}), modifiers, "class ", _$createComponent(Name, {}), _$createComponent(Scope, {
|
|
75
62
|
value: thisClassScope,
|
|
76
63
|
get children() {
|
|
77
|
-
return _$createComponent(
|
|
64
|
+
return [_$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameters, {
|
|
65
|
+
get parameters() {
|
|
66
|
+
return props.typeParameters;
|
|
67
|
+
}
|
|
68
|
+
})), _$memo(() => _$memo(() => !!props.primaryConstructor)() && _$createComponent(Parameters, {
|
|
78
69
|
get parameters() {
|
|
79
70
|
return props.primaryConstructor;
|
|
80
71
|
}
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
})), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(Block, {
|
|
88
|
-
newline: true,
|
|
89
|
-
get children() {
|
|
90
|
-
return _$createComponent(Scope, {
|
|
91
|
-
value: thisClassScope,
|
|
72
|
+
})), base, _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
|
|
73
|
+
get parameters() {
|
|
74
|
+
return props.typeParameters;
|
|
75
|
+
}
|
|
76
|
+
})), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(Block, {
|
|
77
|
+
newline: true,
|
|
92
78
|
get children() {
|
|
93
79
|
return props.children;
|
|
94
80
|
}
|
|
95
|
-
});
|
|
81
|
+
}))];
|
|
96
82
|
}
|
|
97
|
-
})
|
|
83
|
+
})];
|
|
98
84
|
}
|
|
99
85
|
});
|
|
100
86
|
}
|