@alloy-js/csharp 0.21.0-dev.1 → 0.21.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.
- package/dist/src/components/enum/declaration.d.ts +2 -2
- package/dist/src/components/enum/declaration.d.ts.map +1 -1
- package/dist/src/components/enum/declaration.js +3 -3
- package/dist/src/components/enum/declaration.js.map +1 -1
- package/dist/src/components/enum/declaration.ref.test.js +1 -1
- package/dist/src/components/enum/declaration.test.js +15 -1
- package/dist/src/components/enum/declaration.test.js.map +1 -1
- package/dist/src/components/enum/member.d.ts +2 -2
- package/dist/src/components/enum/member.d.ts.map +1 -1
- package/dist/src/components/enum/member.js +3 -3
- package/dist/src/components/enum/member.js.map +1 -1
- package/dist/src/components/enum/member.test.js +24 -1
- package/dist/src/components/enum/member.test.js.map +1 -1
- package/dist/src/components/field/field.d.ts +2 -2
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/field/field.js.map +1 -1
- package/dist/src/components/field/field.test.js +19 -1
- package/dist/src/components/field/field.test.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -2
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/interface/declaration.d.ts +1 -1
- package/dist/src/components/interface/declaration.d.ts.map +1 -1
- package/dist/src/components/interface/declaration.js +3 -3
- package/dist/src/components/interface/declaration.js.map +1 -1
- package/dist/src/components/interface/declaration.test.js +14 -1
- package/dist/src/components/interface/declaration.test.js.map +1 -1
- package/dist/src/components/interface/method.d.ts +2 -2
- package/dist/src/components/interface/method.d.ts.map +1 -1
- package/dist/src/components/interface/method.js.map +1 -1
- package/dist/src/components/interface/method.test.js +17 -1
- package/dist/src/components/interface/method.test.js.map +1 -1
- package/dist/src/components/interface/property.d.ts +2 -2
- package/dist/src/components/interface/property.d.ts.map +1 -1
- package/dist/src/components/interface/property.js.map +1 -1
- package/dist/src/components/interface/property.test.js +19 -0
- package/dist/src/components/interface/property.test.js.map +1 -1
- package/dist/src/components/namespace/namespace-name.d.ts +10 -0
- package/dist/src/components/namespace/namespace-name.d.ts.map +1 -0
- package/dist/src/components/namespace/namespace-name.js +20 -0
- package/dist/src/components/namespace/namespace-name.js.map +1 -0
- package/dist/src/components/{namespace.d.ts → namespace/namespace.d.ts} +3 -1
- package/dist/src/components/namespace/namespace.d.ts.map +1 -0
- package/dist/src/components/{namespace.js → namespace/namespace.js} +12 -13
- package/dist/src/components/namespace/namespace.js.map +1 -0
- package/dist/src/components/namespace/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace/namespace.test.js +207 -0
- package/dist/src/components/namespace/namespace.test.js.map +1 -0
- package/dist/src/components/namespace.ref.test.js +42 -10
- package/dist/src/components/namespace.ref.test.js.map +1 -1
- package/dist/src/components/record/declaration.d.ts +1 -1
- package/dist/src/components/record/declaration.d.ts.map +1 -1
- package/dist/src/components/record/declaration.js +3 -4
- package/dist/src/components/record/declaration.js.map +1 -1
- package/dist/src/components/record/declaration.test.js +14 -1
- package/dist/src/components/record/declaration.test.js.map +1 -1
- package/dist/src/components/source-file/source-file.d.ts.map +1 -1
- package/dist/src/components/source-file/source-file.js +4 -2
- package/dist/src/components/source-file/source-file.js.map +1 -1
- package/dist/src/components/source-file/source-file.test.js +1 -1
- package/dist/src/components/source-file/using.test.js +1 -1
- package/dist/src/components/struct/declaration.d.ts +1 -1
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +3 -3
- package/dist/src/components/struct/declaration.js.map +1 -1
- package/dist/src/components/struct/declaration.test.js +14 -1
- package/dist/src/components/struct/declaration.test.js.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.d.ts +2 -2
- package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.js.map +1 -1
- package/dist/src/components/type-parameters/type-parameters.test.js +14 -0
- package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -1
- package/dist/src/components/var/declaration.d.ts +2 -2
- package/dist/src/components/var/declaration.d.ts.map +1 -1
- package/dist/src/components/var/declaration.js.map +1 -1
- package/dist/src/components/var/declaration.test.js +22 -1
- package/dist/src/components/var/declaration.test.js.map +1 -1
- package/dist/src/name-policy.d.ts +1 -1
- package/dist/src/name-policy.d.ts.map +1 -1
- package/dist/src/name-policy.js +1 -0
- package/dist/src/name-policy.js.map +1 -1
- package/dist/src/symbols/factories.d.ts +1 -1
- package/dist/src/symbols/factories.d.ts.map +1 -1
- package/dist/src/symbols/factories.js +27 -7
- package/dist/src/symbols/factories.js.map +1 -1
- package/dist/src/symbols/namespace.d.ts +2 -2
- package/dist/src/symbols/namespace.d.ts.map +1 -1
- package/dist/src/symbols/namespace.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/enum/declaration.ref.test.tsx +1 -1
- package/src/components/enum/declaration.test.tsx +14 -1
- package/src/components/enum/declaration.tsx +4 -3
- package/src/components/enum/member.test.tsx +22 -1
- package/src/components/enum/member.tsx +4 -4
- package/src/components/field/field.test.tsx +14 -1
- package/src/components/field/field.tsx +2 -2
- package/src/components/index.ts +1 -1
- package/src/components/interface/declaration.test.tsx +11 -1
- package/src/components/interface/declaration.tsx +3 -4
- package/src/components/interface/method.test.tsx +14 -1
- package/src/components/interface/method.tsx +2 -1
- package/src/components/interface/property.test.tsx +13 -0
- package/src/components/interface/property.tsx +2 -1
- package/src/components/namespace/namespace-name.tsx +31 -0
- package/src/components/namespace/namespace.test.tsx +145 -0
- package/src/components/{namespace.tsx → namespace/namespace.tsx} +12 -15
- package/src/components/namespace.ref.test.tsx +34 -9
- package/src/components/record/declaration.test.tsx +11 -1
- package/src/components/record/declaration.tsx +3 -4
- package/src/components/source-file/source-file.test.tsx +1 -1
- package/src/components/source-file/source-file.tsx +2 -2
- package/src/components/source-file/using.test.tsx +1 -1
- package/src/components/struct/declaration.test.tsx +11 -1
- package/src/components/struct/declaration.tsx +3 -4
- package/src/components/type-parameters/type-parameter.tsx +2 -1
- package/src/components/type-parameters/type-parameters.test.tsx +9 -0
- package/src/components/var/declaration.test.tsx +16 -1
- package/src/components/var/declaration.tsx +2 -1
- package/src/name-policy.ts +3 -1
- package/src/symbols/factories.ts +47 -10
- package/src/symbols/namespace.ts +2 -2
- package/temp/api.json +184 -35
- package/dist/src/components/namespace.d.ts.map +0 -1
- package/dist/src/components/namespace.js.map +0 -1
- package/dist/src/components/namespace.test.d.ts.map +0 -1
- package/dist/src/components/namespace.test.js +0 -79
- package/dist/src/components/namespace.test.js.map +0 -1
- package/src/components/namespace.test.tsx +0 -52
- /package/dist/src/components/{namespace.test.d.ts → namespace/namespace.test.d.ts} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useNamespaceContext } from "../../contexts/namespace.js";
|
|
2
|
+
import { NamespaceSymbol } from "../../symbols/namespace.js";
|
|
3
|
+
|
|
4
|
+
/** @internal */
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export function NamespaceName(props) {
|
|
8
|
+
const names = [props.symbol.name];
|
|
9
|
+
const parent = props.relative ? useNamespaceContext()?.symbol : undefined;
|
|
10
|
+
let current = props.symbol.ownerSymbol;
|
|
11
|
+
while (current) {
|
|
12
|
+
if (current === parent || !(current instanceof NamespaceSymbol) || current.isGlobal) {
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
names.unshift(current.name);
|
|
16
|
+
current = current.ownerSymbol;
|
|
17
|
+
}
|
|
18
|
+
return names.join(".");
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=namespace-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useNamespaceContext","NamespaceSymbol","NamespaceName","props","names","symbol","name","parent","relative","undefined","current","ownerSymbol","isGlobal","unshift","join"],"sources":["../../../../src/components/namespace/namespace-name.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,eAAe,QAAQ,4BAA4B;;AAE5D;;AAQA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,KAAK,GAAG,CAACD,KAAK,CAACE,MAAM,CAACC,IAAI,CAAC;EACjC,MAAMC,MAAM,GAAGJ,KAAK,CAACK,QAAQ,GAAGR,mBAAmB,CAAC,CAAC,EAAEK,MAAM,GAAGI,SAAS;EAEzE,IAAIC,OAAO,GAAGP,KAAK,CAACE,MAAM,CAACM,WAAW;EACtC,OAAOD,OAAO,EAAE;IACd,IACEA,OAAO,KAAKH,MAAM,IAClB,EAAEG,OAAO,YAAYT,eAAe,CAAC,IACrCS,OAAO,CAACE,QAAQ,EAChB;MACA;IACF;IACAR,KAAK,CAACS,OAAO,CAACH,OAAO,CAACJ,IAAI,CAAC;IAC3BI,OAAO,GAAGA,OAAO,CAACC,WAAW;EAC/B;EAEA,OAAOP,KAAK,CAACU,IAAI,CAAC,GAAG,CAAC;AACxB","ignoreList":[]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { Namekey, Refkey } from "@alloy-js/core";
|
|
1
2
|
import { Children } from "@alloy-js/core/jsx-runtime";
|
|
2
3
|
export interface NamespaceProps {
|
|
3
|
-
name: string;
|
|
4
|
+
name: string | Namekey | (string | Namekey)[];
|
|
5
|
+
refkey?: Refkey | Refkey[];
|
|
4
6
|
children?: Children;
|
|
5
7
|
}
|
|
6
8
|
export declare function Namespace(props: NamespaceProps): Children;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../src/components/namespace/namespace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,YA2B9C"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Block } from "@alloy-js/core";
|
|
3
|
-
import { NamespaceContext } from "
|
|
4
|
-
import { useSourceFileScope } from "
|
|
5
|
-
import { createNamespaceSymbol } from "
|
|
6
|
-
import { NamespaceScope } from "
|
|
3
|
+
import { NamespaceContext } from "../../contexts/namespace.js";
|
|
4
|
+
import { useSourceFileScope } from "../../scopes/source-file.js";
|
|
5
|
+
import { createNamespaceSymbol } from "../../symbols/factories.js";
|
|
6
|
+
import { NamespaceScope } from "../namespace-scopes.js";
|
|
7
|
+
import { NamespaceName } from "./namespace-name.js";
|
|
7
8
|
export function Namespace(props) {
|
|
8
|
-
const namespaceSymbol = createNamespaceSymbol(props.name
|
|
9
|
+
const namespaceSymbol = createNamespaceSymbol(props.name, {
|
|
10
|
+
refkeys: props.refkey
|
|
11
|
+
});
|
|
9
12
|
const sfScope = useSourceFileScope();
|
|
10
13
|
if (!sfScope) {
|
|
11
14
|
return _$createComponent(NamespaceContext.Provider, {
|
|
@@ -18,7 +21,10 @@ export function Namespace(props) {
|
|
|
18
21
|
});
|
|
19
22
|
} else {
|
|
20
23
|
sfScope.hasBlockNamespace = true;
|
|
21
|
-
return ["namespace ", _$
|
|
24
|
+
return ["namespace ", _$createComponent(NamespaceName, {
|
|
25
|
+
symbol: namespaceSymbol,
|
|
26
|
+
relative: true
|
|
27
|
+
}), " ", _$createComponent(Block, {
|
|
22
28
|
get children() {
|
|
23
29
|
return _$createComponent(NamespaceContext.Provider, {
|
|
24
30
|
value: {
|
|
@@ -37,11 +43,4 @@ export function Namespace(props) {
|
|
|
37
43
|
})];
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
|
-
|
|
41
|
-
/*
|
|
42
|
-
const scope = createCSharpNamespaceScope(namespaceSymbol);
|
|
43
|
-
|
|
44
|
-
return <Scope value={scope}>{props.children}</Scope>;
|
|
45
|
-
}
|
|
46
|
-
*/
|
|
47
46
|
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Block","NamespaceContext","useSourceFileScope","createNamespaceSymbol","NamespaceScope","NamespaceName","Namespace","props","namespaceSymbol","name","refkeys","refkey","sfScope","_$createComponent","Provider","value","symbol","children","hasBlockNamespace","relative"],"sources":["../../../../src/components/namespace/namespace.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,KAAK,QAAyB,gBAAgB;AAEvD,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,cAAc;AACvB,SAASC,aAAa;AAQtB,OAAO,SAASC,SAASA,CAACC,KAAqB,EAAE;EAC/C,MAAMC,eAAe,GAAGL,qBAAqB,CAACI,KAAK,CAACE,IAAI,EAAE;IACxDC,OAAO,EAAEH,KAAK,CAACI;EACjB,CAAC,CAAC;EACF,MAAMC,OAAO,GAAGV,kBAAkB,CAAC,CAAC;EAEpC,IAAI,CAACU,OAAO,EAAE;IACZ,OAAAC,iBAAA,CACGZ,gBAAgB,CAACa,QAAQ;MAACC,KAAK,EAAE;QAAEC,MAAM,EAAER;MAAgB,CAAC;MAAA,IAAAS,SAAA;QAAA,OAC1DV,KAAK,CAACU,QAAQ;MAAA;IAAA;EAGrB,CAAC,MAAM;IACLL,OAAO,CAACM,iBAAiB,GAAG,IAAI;IAChC,sBAAAL,iBAAA,CAEeR,aAAa;MAACW,MAAM,EAAER,eAAe;MAAEW,QAAQ;IAAA,IAAI,GAAG,EAAAN,iBAAA,CAChEb,KAAK;MAAA,IAAAiB,SAAA;QAAA,OAAAJ,iBAAA,CACHZ,gBAAgB,CAACa,QAAQ;UAACC,KAAK,EAAE;YAAEC,MAAM,EAAER;UAAgB,CAAC;UAAA,IAAAS,SAAA;YAAA,OAAAJ,iBAAA,CAC1DT,cAAc;cAACY,MAAM,EAAER,eAAe;cAAA,IAAAS,SAAA;gBAAA,OACpCV,KAAK,CAACU,QAAQ;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAM3B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.test.d.ts","sourceRoot":"","sources":["../../../../src/components/namespace/namespace.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { TestNamespace } from "#test/utils.js";
|
|
3
|
+
import { Output } from "@alloy-js/core";
|
|
4
|
+
import { d } from "@alloy-js/core/testing";
|
|
5
|
+
import { expect, it } from "vitest";
|
|
6
|
+
import { ClassDeclaration } from "../class/declaration.js";
|
|
7
|
+
import { SourceFile } from "../source-file/source-file.js";
|
|
8
|
+
import { Namespace } from "./namespace.js";
|
|
9
|
+
it("defines multiple namespaces and source files with unique content", () => {
|
|
10
|
+
const tree = _$createComponent(Output, {
|
|
11
|
+
get children() {
|
|
12
|
+
return [_$createComponent(Namespace, {
|
|
13
|
+
name: "Namespace1",
|
|
14
|
+
get children() {
|
|
15
|
+
return [_$createComponent(SourceFile, {
|
|
16
|
+
path: "Model1.cs",
|
|
17
|
+
get children() {
|
|
18
|
+
return _$createComponent(ClassDeclaration, {
|
|
19
|
+
"public": true,
|
|
20
|
+
name: "Model1"
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}), _$createComponent(SourceFile, {
|
|
24
|
+
path: "Model2.cs",
|
|
25
|
+
get children() {
|
|
26
|
+
return _$createComponent(ClassDeclaration, {
|
|
27
|
+
"public": true,
|
|
28
|
+
name: "Model2"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
})];
|
|
32
|
+
}
|
|
33
|
+
}), _$createComponent(Namespace, {
|
|
34
|
+
name: "Namespace2",
|
|
35
|
+
get children() {
|
|
36
|
+
return [_$createComponent(SourceFile, {
|
|
37
|
+
path: "Model3.cs",
|
|
38
|
+
get children() {
|
|
39
|
+
return _$createComponent(ClassDeclaration, {
|
|
40
|
+
"public": true,
|
|
41
|
+
name: "Model3"
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}), _$createComponent(SourceFile, {
|
|
45
|
+
path: "Model4.cs",
|
|
46
|
+
get children() {
|
|
47
|
+
return _$createComponent(ClassDeclaration, {
|
|
48
|
+
"public": true,
|
|
49
|
+
name: "Model4"
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
})];
|
|
53
|
+
}
|
|
54
|
+
})];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
expect(tree).toRenderTo({
|
|
58
|
+
"Model1.cs": d`
|
|
59
|
+
namespace Namespace1;
|
|
60
|
+
|
|
61
|
+
public class Model1;
|
|
62
|
+
`,
|
|
63
|
+
"Model2.cs": d`
|
|
64
|
+
namespace Namespace1;
|
|
65
|
+
|
|
66
|
+
public class Model2;
|
|
67
|
+
`,
|
|
68
|
+
"Model3.cs": d`
|
|
69
|
+
namespace Namespace2;
|
|
70
|
+
|
|
71
|
+
public class Model3;
|
|
72
|
+
`,
|
|
73
|
+
"Model4.cs": d`
|
|
74
|
+
namespace Namespace2;
|
|
75
|
+
|
|
76
|
+
public class Model4;
|
|
77
|
+
`
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
it("nest namespaces", () => {
|
|
81
|
+
const tree = _$createComponent(Output, {
|
|
82
|
+
get children() {
|
|
83
|
+
return _$createComponent(Namespace, {
|
|
84
|
+
name: ["Namespace1"],
|
|
85
|
+
get children() {
|
|
86
|
+
return _$createComponent(Namespace, {
|
|
87
|
+
name: ["Namespace2"],
|
|
88
|
+
get children() {
|
|
89
|
+
return _$createComponent(SourceFile, {
|
|
90
|
+
path: "Model1.cs",
|
|
91
|
+
get children() {
|
|
92
|
+
return _$createComponent(ClassDeclaration, {
|
|
93
|
+
"public": true,
|
|
94
|
+
name: "Model1"
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
expect(tree).toRenderTo(`
|
|
105
|
+
namespace Namespace1.Namespace2;
|
|
106
|
+
|
|
107
|
+
public class Model1;
|
|
108
|
+
`);
|
|
109
|
+
});
|
|
110
|
+
it("define nested namespace directly with array", () => {
|
|
111
|
+
const tree = _$createComponent(Output, {
|
|
112
|
+
get children() {
|
|
113
|
+
return _$createComponent(Namespace, {
|
|
114
|
+
name: ["Namespace1", "Namespace2"],
|
|
115
|
+
get children() {
|
|
116
|
+
return _$createComponent(SourceFile, {
|
|
117
|
+
path: "Model1.cs",
|
|
118
|
+
get children() {
|
|
119
|
+
return _$createComponent(ClassDeclaration, {
|
|
120
|
+
"public": true,
|
|
121
|
+
name: "Model1"
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
expect(tree).toRenderTo(`
|
|
130
|
+
namespace Namespace1.Namespace2;
|
|
131
|
+
|
|
132
|
+
public class Model1;
|
|
133
|
+
`);
|
|
134
|
+
});
|
|
135
|
+
it("define nested namespace directly as dotted notation", () => {
|
|
136
|
+
const tree = _$createComponent(Output, {
|
|
137
|
+
get children() {
|
|
138
|
+
return _$createComponent(Namespace, {
|
|
139
|
+
name: "Namespace1.Namespace2",
|
|
140
|
+
get children() {
|
|
141
|
+
return _$createComponent(SourceFile, {
|
|
142
|
+
path: "Model1.cs",
|
|
143
|
+
get children() {
|
|
144
|
+
return _$createComponent(ClassDeclaration, {
|
|
145
|
+
"public": true,
|
|
146
|
+
name: "Model1"
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
expect(tree).toRenderTo({
|
|
155
|
+
"Model1.cs": d`
|
|
156
|
+
namespace Namespace1.Namespace2;
|
|
157
|
+
|
|
158
|
+
public class Model1;
|
|
159
|
+
`
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
it("uses a name policy", () => {
|
|
163
|
+
expect(_$createComponent(TestNamespace, {
|
|
164
|
+
get children() {
|
|
165
|
+
return _$createComponent(Namespace, {
|
|
166
|
+
name: "my-namespace"
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
})).toRenderTo(`
|
|
170
|
+
namespace MyNamespace {
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
`);
|
|
174
|
+
});
|
|
175
|
+
it("define nested namespace in sourcefile", () => {
|
|
176
|
+
const tree = _$createComponent(Output, {
|
|
177
|
+
get children() {
|
|
178
|
+
return _$createComponent(Namespace, {
|
|
179
|
+
name: "Base",
|
|
180
|
+
get children() {
|
|
181
|
+
return _$createComponent(SourceFile, {
|
|
182
|
+
path: "Model1.cs",
|
|
183
|
+
get children() {
|
|
184
|
+
return _$createComponent(Namespace, {
|
|
185
|
+
name: "Namespace1.Namespace2",
|
|
186
|
+
get children() {
|
|
187
|
+
return _$createComponent(ClassDeclaration, {
|
|
188
|
+
"public": true,
|
|
189
|
+
name: "Model1"
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
expect(tree).toRenderTo(`
|
|
200
|
+
namespace Base {
|
|
201
|
+
namespace Namespace1.Namespace2 {
|
|
202
|
+
public class Model1;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
`);
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=namespace.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TestNamespace","Output","d","expect","it","ClassDeclaration","SourceFile","Namespace","tree","_$createComponent","children","name","path","toRenderTo"],"sources":["../../../../src/components/namespace/namespace.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { Output, refkey } from "@alloy-js/core";
|
|
3
|
-
import { d } from "@alloy-js/core/testing";
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { List, memberRefkey, namekey, Output, refkey } from "@alloy-js/core";
|
|
4
3
|
import { expect, it } from "vitest";
|
|
5
4
|
import { ClassDeclaration } from "./class/declaration.js";
|
|
6
|
-
import { Namespace } from "./namespace.js";
|
|
5
|
+
import { Namespace } from "./namespace/namespace.js";
|
|
7
6
|
import { SourceFile } from "./source-file/source-file.js";
|
|
8
7
|
it("references types in the same namespace", () => {
|
|
9
8
|
const classRef = refkey();
|
|
@@ -25,7 +24,7 @@ it("references types in the same namespace", () => {
|
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
});
|
|
28
|
-
expect(tree).toRenderTo(
|
|
27
|
+
expect(tree).toRenderTo(`
|
|
29
28
|
namespace Test;
|
|
30
29
|
|
|
31
30
|
class TestClass;
|
|
@@ -57,7 +56,7 @@ it("references types in a parent namespace", () => {
|
|
|
57
56
|
});
|
|
58
57
|
}
|
|
59
58
|
});
|
|
60
|
-
expect(tree).toRenderTo(
|
|
59
|
+
expect(tree).toRenderTo(`
|
|
61
60
|
namespace Test {
|
|
62
61
|
class TestClass;
|
|
63
62
|
namespace Nested {
|
|
@@ -91,7 +90,7 @@ it("references types in a child namespace", () => {
|
|
|
91
90
|
});
|
|
92
91
|
}
|
|
93
92
|
});
|
|
94
|
-
expect(tree).toRenderTo(
|
|
93
|
+
expect(tree).toRenderTo(`
|
|
95
94
|
namespace Test {
|
|
96
95
|
Nested.TestClass;
|
|
97
96
|
namespace Nested {
|
|
@@ -123,7 +122,7 @@ it("references types in a different top-level namespace declared in the same fil
|
|
|
123
122
|
});
|
|
124
123
|
}
|
|
125
124
|
});
|
|
126
|
-
expect(tree).toRenderTo(
|
|
125
|
+
expect(tree).toRenderTo(`
|
|
127
126
|
using TestCode2;
|
|
128
127
|
|
|
129
128
|
namespace TestCode1 {
|
|
@@ -165,18 +164,51 @@ it("references types in a different top-level namespace declared in a different
|
|
|
165
164
|
}
|
|
166
165
|
});
|
|
167
166
|
expect(tree).toRenderTo({
|
|
168
|
-
"test.cs":
|
|
167
|
+
"test.cs": `
|
|
169
168
|
using TestCode2;
|
|
170
169
|
|
|
171
170
|
namespace TestCode1 {
|
|
172
171
|
TestClass;
|
|
173
172
|
}
|
|
174
173
|
`,
|
|
175
|
-
"other.cs":
|
|
174
|
+
"other.cs": `
|
|
176
175
|
namespace TestCode2 {
|
|
177
176
|
class TestClass;
|
|
178
177
|
}
|
|
179
178
|
`
|
|
180
179
|
});
|
|
181
180
|
});
|
|
181
|
+
it("can be referenced by refkey", () => {
|
|
182
|
+
const classRef = namekey("TestClass");
|
|
183
|
+
const nsRef = namekey("TestCode2");
|
|
184
|
+
const tree = _$createComponent(Output, {
|
|
185
|
+
get children() {
|
|
186
|
+
return _$createComponent(SourceFile, {
|
|
187
|
+
path: "other.cs",
|
|
188
|
+
get children() {
|
|
189
|
+
return _$createComponent(List, {
|
|
190
|
+
get children() {
|
|
191
|
+
return [_$createComponent(Namespace, {
|
|
192
|
+
name: nsRef,
|
|
193
|
+
get children() {
|
|
194
|
+
return _$createComponent(ClassDeclaration, {
|
|
195
|
+
name: classRef
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}), [_$memo(() => memberRefkey(nsRef, classRef)), ";"]];
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
expect(tree).toRenderTo(`
|
|
206
|
+
using TestCode2;
|
|
207
|
+
|
|
208
|
+
namespace TestCode2 {
|
|
209
|
+
class TestClass;
|
|
210
|
+
}
|
|
211
|
+
TestClass;
|
|
212
|
+
`);
|
|
213
|
+
});
|
|
182
214
|
//# sourceMappingURL=namespace.ref.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["List","memberRefkey","namekey","Output","refkey","expect","it","ClassDeclaration","Namespace","SourceFile","classRef","tree","_$createComponent","children","name","path","_$createIntrinsic","toRenderTo","nsRef","_$memo"],"sources":["../../../src/components/namespace.ref.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ export interface RecordModifiers {
|
|
|
6
6
|
}
|
|
7
7
|
/** Props to use the {@link RecordDeclaration} component */
|
|
8
8
|
export interface RecordDeclarationProps extends Omit<core.DeclarationProps, "nameKind">, AccessModifiers, RecordModifiers {
|
|
9
|
-
name: string;
|
|
9
|
+
name: string | core.Namekey;
|
|
10
10
|
/** Doc comment */
|
|
11
11
|
doc?: core.Children;
|
|
12
12
|
refkey?: core.Refkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/record/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,2DAA2D;AAC3D,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/record/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,2DAA2D;AAC3D,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAE5B,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7C;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,iBAwD9D"}
|
|
@@ -32,12 +32,11 @@ const getRecordModifiers = makeModifiers(["partial"]);
|
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
34
|
export function RecordDeclaration(props) {
|
|
35
|
-
const name = useCSharpNamePolicy().getName(props.name, "record");
|
|
36
|
-
|
|
37
35
|
// records don't have their own type kind but instead use class or struct
|
|
38
36
|
// depending on what kind of record we have.
|
|
39
|
-
const thisRecordSymbol = createNamedTypeSymbol(name, "record", {
|
|
40
|
-
refkeys: props.refkey
|
|
37
|
+
const thisRecordSymbol = createNamedTypeSymbol(props.name, "record", {
|
|
38
|
+
refkeys: props.refkey,
|
|
39
|
+
namePolicy: useCSharpNamePolicy().for("record")
|
|
41
40
|
});
|
|
42
41
|
const thisRecordScope = createClassScope(thisRecordSymbol);
|
|
43
42
|
let typeParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["core","computeModifiersPrefix","getAccessModifier","makeModifiers","useCSharpNamePolicy","createClassScope","createNamedTypeSymbol","createTypeParameterSymbol","DocWhen","Name","Parameters","getRecordModifiers","RecordDeclaration","props","name","
|
|
1
|
+
{"version":3,"names":["core","computeModifiersPrefix","getAccessModifier","makeModifiers","useCSharpNamePolicy","createClassScope","createNamedTypeSymbol","createTypeParameterSymbol","DocWhen","Name","Parameters","getRecordModifiers","RecordDeclaration","props","thisRecordSymbol","name","refkeys","refkey","namePolicy","for","thisRecordScope","typeParams","typeParameters","typeParamNames","Array","entry","Object","entries","push","getName","scope","_$createIntrinsic","children","_$createComponent","For","each","comma","line","modifiers","Declaration","symbol","doc","_$memo","primaryConstructor","Scope","value","parameters","Block","newline"],"sources":["../../../../src/components/record/declaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { code, refkey } from "@alloy-js/core";
|
|
2
|
+
import { code, namekey, refkey } from "@alloy-js/core";
|
|
3
3
|
import { describe, expect, it } from "vitest";
|
|
4
4
|
import { TestNamespace } from "../../../test/utils.js";
|
|
5
5
|
import { Property } from "../property/property.js";
|
|
@@ -24,6 +24,19 @@ it("declares record with no members", () => {
|
|
|
24
24
|
record TestRecord;
|
|
25
25
|
`);
|
|
26
26
|
});
|
|
27
|
+
it("takes a namekey", () => {
|
|
28
|
+
expect(_$createComponent(TestNamespace, {
|
|
29
|
+
get children() {
|
|
30
|
+
return _$createComponent(RecordDeclaration, {
|
|
31
|
+
get name() {
|
|
32
|
+
return namekey("my-record");
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
})).toRenderTo(`
|
|
37
|
+
record MyRecord;
|
|
38
|
+
`);
|
|
39
|
+
});
|
|
27
40
|
describe("modifiers", () => {
|
|
28
41
|
it.each(["public", "private", "internal"])("%s", mod => {
|
|
29
42
|
expect(_$createComponent(TestNamespace, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["code","refkey","describe","expect","it","TestNamespace","Property","RecordDeclaration","Wrapper","children","_$createComponent","name","toRenderTo","each","mod","_$mergeProps","partial","doc","get","set","type","paramNameRefkey","paramSizeRefkey","ctorParams","primaryConstructor","initializer"],"sources":["../../../../src/components/record/declaration.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAAmBA,IAAI,EAAEC,MAAM,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"names":["code","namekey","refkey","describe","expect","it","TestNamespace","Property","RecordDeclaration","Wrapper","children","_$createComponent","name","toRenderTo","each","mod","_$mergeProps","partial","doc","get","set","type","paramNameRefkey","paramSizeRefkey","ctorParams","primaryConstructor","initializer"],"sources":["../../../../src/components/record/declaration.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"
|
|
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,5 +1,6 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$mergeProps, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { NamespaceScopes } from "#components/namespace-scopes.js";
|
|
3
|
+
import { NamespaceName } from "#components/namespace/namespace-name.js";
|
|
3
4
|
import { Reference } from "#components/Reference.js";
|
|
4
5
|
import { Usings } from "#components/using/using.js";
|
|
5
6
|
import { Block, computed, SourceFile as CoreSourceFile, Scope, useBinder } from "@alloy-js/core";
|
|
@@ -18,7 +19,6 @@ export function SourceFile(props) {
|
|
|
18
19
|
const nsContext = useNamespaceContext();
|
|
19
20
|
const globalNs = getGlobalNamespace(useBinder());
|
|
20
21
|
const nsSymbol = nsContext ? nsContext.symbol : globalNs;
|
|
21
|
-
const nsRef = nsContext ? nsContext.symbol.name : undefined;
|
|
22
22
|
const usings = computed(() => {
|
|
23
23
|
return Array.from(sourceFileScope.usings).concat(props.using ?? []);
|
|
24
24
|
});
|
|
@@ -48,7 +48,9 @@ export function SourceFile(props) {
|
|
|
48
48
|
get namespaces() {
|
|
49
49
|
return usings.value;
|
|
50
50
|
}
|
|
51
|
-
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})]), _$memo(() => nsSymbol === globalNs ? content : ["namespace ",
|
|
51
|
+
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})]), _$memo(() => nsSymbol === globalNs ? content : ["namespace ", _$createComponent(NamespaceName, {
|
|
52
|
+
symbol: nsSymbol
|
|
53
|
+
}), _$memo(() => _$memo(() => !!sourceFileScope.hasBlockNamespace)() ? [" ", _$createComponent(Block, {
|
|
52
54
|
children: content
|
|
53
55
|
})] : [";", _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {}), content])])];
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NamespaceScopes","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { ClassDeclaration } from "#components/class/declaration.js";
|
|
3
|
-
import { Namespace } from "#components/namespace.js";
|
|
3
|
+
import { Namespace } from "#components/namespace/namespace.js";
|
|
4
4
|
import { FormatOptions, Indent, Output, Prose } from "@alloy-js/core";
|
|
5
5
|
import { describe, expect, it } from "vitest";
|
|
6
6
|
import { CSharpFormatOptions } from "../../contexts/format-options.js";
|
|
@@ -3,7 +3,7 @@ import { ClassDeclaration } from "#components/class/declaration.js";
|
|
|
3
3
|
import { EnumDeclaration } from "#components/enum/declaration.js";
|
|
4
4
|
import { EnumMember } from "#components/enum/member.js";
|
|
5
5
|
import { Method } from "#components/method/method.js";
|
|
6
|
-
import { Namespace } from "#components/namespace.js";
|
|
6
|
+
import { Namespace } from "#components/namespace/namespace.js";
|
|
7
7
|
import { SourceFile } from "#components/source-file/source-file.js";
|
|
8
8
|
import { Output, refkey } from "@alloy-js/core";
|
|
9
9
|
import * as coretest from "@alloy-js/core/testing";
|
|
@@ -9,7 +9,7 @@ export interface StructModifiers {
|
|
|
9
9
|
readonly partial?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export interface StructDeclarationProps extends Omit<core.DeclarationProps, "nameKind">, AccessModifiers, StructModifiers {
|
|
12
|
-
name: string;
|
|
12
|
+
name: string | core.Namekey;
|
|
13
13
|
/** Doc comment */
|
|
14
14
|
doc?: core.Children;
|
|
15
15
|
refkey?: core.Refkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/struct/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/struct/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAE5B,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IAErB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC;IAEjD;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B,wCAAwC;IACxC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,iBAqC9D"}
|
|
@@ -35,9 +35,9 @@ const getStructModifiers = makeModifiers(["new", "readonly", "ref", "partial"]);
|
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
37
|
export function StructDeclaration(props) {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const thisStructSymbol = createNamedTypeSymbol(props.name, "struct", {
|
|
39
|
+
refkeys: props.refkey,
|
|
40
|
+
namePolicy: useCSharpNamePolicy().for("struct")
|
|
41
41
|
});
|
|
42
42
|
const thisStructScope = createNamedTypeScope(thisStructSymbol);
|
|
43
43
|
const modifiers = computeModifiersPrefix([getAccessModifier(props), getStructModifiers(props)]);
|