@alloy-js/csharp 0.21.0-dev.17 → 0.21.0-dev.19
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/access-expression/access-expression.d.ts +5 -0
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -1
- package/dist/src/components/access-expression/access-expression.js.map +1 -1
- package/dist/src/components/access-expression/part-descriptors.d.ts +8 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -1
- package/dist/src/components/access-expression/part-descriptors.js +22 -2
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -1
- package/dist/src/components/attributes/attributes.d.ts +2 -6
- package/dist/src/components/attributes/attributes.d.ts.map +1 -1
- package/dist/src/components/attributes/attributes.js +15 -1
- package/dist/src/components/attributes/attributes.js.map +1 -1
- package/dist/src/components/attributes/attributes.test.js +54 -1
- package/dist/src/components/attributes/attributes.test.js.map +1 -1
- package/dist/src/components/parameters/parameters.d.ts +20 -0
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +8 -1
- package/dist/src/components/parameters/parameters.js.map +1 -1
- package/dist/src/components/parameters/parameters.test.js +31 -0
- package/dist/src/components/parameters/parameters.test.js.map +1 -1
- package/dist/src/contexts/reference-context.d.ts +12 -0
- package/dist/src/contexts/reference-context.d.ts.map +1 -0
- package/dist/src/contexts/reference-context.js +15 -0
- package/dist/src/contexts/reference-context.js.map +1 -0
- package/dist/src/create-library.d.ts.map +1 -1
- package/dist/src/create-library.js +7 -7
- package/dist/src/create-library.js.map +1 -1
- package/dist/src/symbols/reference.d.ts.map +1 -1
- package/dist/src/symbols/reference.js +4 -1
- package/dist/src/symbols/reference.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/access-expression/access-expression.tsx +6 -0
- package/src/components/access-expression/part-descriptors.ts +26 -2
- package/src/components/attributes/attributes.test.tsx +43 -1
- package/src/components/attributes/attributes.tsx +14 -7
- package/src/components/parameters/parameters.test.tsx +37 -0
- package/src/components/parameters/parameters.tsx +38 -0
- package/src/contexts/reference-context.ts +18 -0
- package/src/create-library.ts +24 -14
- package/src/symbols/reference.tsx +9 -1
- package/temp/api.json +142 -75
package/package.json
CHANGED
|
@@ -122,6 +122,12 @@ export interface AccessExpressionPartProps {
|
|
|
122
122
|
* you provide a symbol or refkey and the symbol's nullable flag is set.
|
|
123
123
|
*/
|
|
124
124
|
nullable?: boolean;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Wether this part is an attribute reference (used in an attribute context).
|
|
128
|
+
* In that case the "Attribute" suffix is trimmed from the name if present.
|
|
129
|
+
*/
|
|
130
|
+
attribute?: boolean;
|
|
125
131
|
}
|
|
126
132
|
|
|
127
133
|
AccessExpression.Part = function (props: AccessExpressionPartProps) {
|
|
@@ -128,9 +128,12 @@ function createPartDescriptorFromProps(
|
|
|
128
128
|
} else if (first && partProps.refkey) {
|
|
129
129
|
return partProps.refkey;
|
|
130
130
|
} else if (partProps.id !== undefined) {
|
|
131
|
-
return partProps.id;
|
|
131
|
+
return normalizeIfAttribute(partProps.id, partProps.attribute);
|
|
132
132
|
} else if (symbolSource.value) {
|
|
133
|
-
return
|
|
133
|
+
return normalizeIfAttribute(
|
|
134
|
+
escapeId(symbolSource.value.name),
|
|
135
|
+
partProps.attribute,
|
|
136
|
+
);
|
|
134
137
|
} else {
|
|
135
138
|
return "<unresolved symbol>";
|
|
136
139
|
}
|
|
@@ -173,3 +176,24 @@ function createPartDescriptorFromProps(
|
|
|
173
176
|
function escapeId(id: string) {
|
|
174
177
|
return id.replace(/"/g, '\\"');
|
|
175
178
|
}
|
|
179
|
+
|
|
180
|
+
function normalizeIfAttribute(id: string, isAttribute?: boolean) {
|
|
181
|
+
if (isAttribute) {
|
|
182
|
+
return normalizeAttributeName(id);
|
|
183
|
+
}
|
|
184
|
+
return id;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Normalize attribute name by removing the "Attribute" suffix if present.
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts
|
|
191
|
+
* normalizeAttributeName("TestAttribute") // returns "Test"
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
export function normalizeAttributeName(name: string) {
|
|
195
|
+
if (name !== undefined && name.endsWith("Attribute")) {
|
|
196
|
+
return name.substring(0, name.length - "Attribute".length);
|
|
197
|
+
}
|
|
198
|
+
return name;
|
|
199
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ClassDeclaration } from "#components/class/declaration.jsx";
|
|
2
|
+
import { createLibrary } from "#createLibrary";
|
|
3
|
+
import { TestNamespace } from "#test/utils.jsx";
|
|
4
|
+
import { List, namekey } from "@alloy-js/core";
|
|
5
|
+
import { describe, expect, it } from "vitest";
|
|
2
6
|
import { Attribute, AttributeList } from "./attributes.jsx";
|
|
3
7
|
|
|
4
8
|
it("define attribute", () => {
|
|
@@ -7,6 +11,44 @@ it("define attribute", () => {
|
|
|
7
11
|
`);
|
|
8
12
|
});
|
|
9
13
|
|
|
14
|
+
describe("Attribute suffix trimming", () => {
|
|
15
|
+
it("define attribute whose name ending with 'Attribute'", () => {
|
|
16
|
+
expect(<Attribute name="TestAttribute" />).toRenderTo(`
|
|
17
|
+
[Test]
|
|
18
|
+
`);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("when using namekey", () => {
|
|
22
|
+
const key = namekey("TestAttribute");
|
|
23
|
+
expect(
|
|
24
|
+
<TestNamespace>
|
|
25
|
+
<List>
|
|
26
|
+
<Attribute name={key} />
|
|
27
|
+
<ClassDeclaration name={key} />
|
|
28
|
+
</List>
|
|
29
|
+
</TestNamespace>,
|
|
30
|
+
).toRenderTo(`
|
|
31
|
+
[Test]
|
|
32
|
+
class TestAttribute;
|
|
33
|
+
`);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("when referenced from library", () => {
|
|
37
|
+
const TestLib = createLibrary("TestLib", {
|
|
38
|
+
TestAttribute: { kind: "method", methodKind: "ordinary" },
|
|
39
|
+
});
|
|
40
|
+
expect(
|
|
41
|
+
<TestNamespace>
|
|
42
|
+
<Attribute name={TestLib.TestAttribute} />
|
|
43
|
+
</TestNamespace>,
|
|
44
|
+
).toRenderTo(`
|
|
45
|
+
using TestLib;
|
|
46
|
+
|
|
47
|
+
[Test]
|
|
48
|
+
`);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
10
52
|
it("define attribute with single arg", () => {
|
|
11
53
|
expect(<Attribute name="Test" args={[`"abc"`]} />).toRenderTo(`
|
|
12
54
|
[Test("abc")]
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
+
import { normalizeAttributeName } from "#components/access-expression/part-descriptors.js";
|
|
1
2
|
import {
|
|
2
3
|
Children,
|
|
3
4
|
findKeyedChildren,
|
|
4
5
|
For,
|
|
5
6
|
Indent,
|
|
7
|
+
Refkeyable,
|
|
6
8
|
taggedComponent,
|
|
7
9
|
} from "@alloy-js/core";
|
|
8
|
-
|
|
9
|
-
export interface AttributeItem {
|
|
10
|
-
name: string;
|
|
11
|
-
args?: string[];
|
|
12
|
-
}
|
|
10
|
+
import { ReferenceContext } from "../../contexts/reference-context.js";
|
|
13
11
|
|
|
14
12
|
export type AttributesProp = Array<string | AttributeProps | Children>;
|
|
15
13
|
|
|
@@ -54,7 +52,7 @@ function renderAttribute(attr: string | AttributeProps | Children): Children {
|
|
|
54
52
|
|
|
55
53
|
export interface AttributeProps {
|
|
56
54
|
/** Attribute name */
|
|
57
|
-
name:
|
|
55
|
+
name: string | Refkeyable;
|
|
58
56
|
|
|
59
57
|
/** Argument */
|
|
60
58
|
args?: Children[];
|
|
@@ -81,7 +79,8 @@ export const Attribute = taggedComponent(
|
|
|
81
79
|
(props: AttributeProps) => {
|
|
82
80
|
return (
|
|
83
81
|
<group>
|
|
84
|
-
[
|
|
82
|
+
[
|
|
83
|
+
<AttributeName name={props.name} />
|
|
85
84
|
{props.args && props.args.length > 0 && (
|
|
86
85
|
<>
|
|
87
86
|
(
|
|
@@ -98,3 +97,11 @@ export const Attribute = taggedComponent(
|
|
|
98
97
|
);
|
|
99
98
|
},
|
|
100
99
|
);
|
|
100
|
+
|
|
101
|
+
function AttributeName(props: Pick<AttributeProps, "name">) {
|
|
102
|
+
return typeof props.name === "string" ?
|
|
103
|
+
normalizeAttributeName(props.name)
|
|
104
|
+
: <ReferenceContext.Provider value={"attribute"}>
|
|
105
|
+
{props.name}
|
|
106
|
+
</ReferenceContext.Provider>;
|
|
107
|
+
}
|
|
@@ -148,3 +148,40 @@ it("can attach attributes", () => {
|
|
|
148
148
|
}
|
|
149
149
|
`);
|
|
150
150
|
});
|
|
151
|
+
|
|
152
|
+
it("can add modifiers: in | out | ref", () => {
|
|
153
|
+
expect(
|
|
154
|
+
<Wrapper>
|
|
155
|
+
<Method
|
|
156
|
+
name="MethodOne"
|
|
157
|
+
parameters={[
|
|
158
|
+
{
|
|
159
|
+
name: "param1",
|
|
160
|
+
type: "T1",
|
|
161
|
+
ref: true,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "param2",
|
|
165
|
+
type: "T2",
|
|
166
|
+
in: true,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: "param3",
|
|
170
|
+
type: "T3",
|
|
171
|
+
out: true,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "param4",
|
|
175
|
+
type: "T4",
|
|
176
|
+
refReadonly: true,
|
|
177
|
+
},
|
|
178
|
+
]}
|
|
179
|
+
/>
|
|
180
|
+
</Wrapper>,
|
|
181
|
+
).toRenderTo(`
|
|
182
|
+
public class TestClass
|
|
183
|
+
{
|
|
184
|
+
void MethodOne(ref T1 param1, in T2 param2, out T3 param3, ref readonly T4 param4) {}
|
|
185
|
+
}
|
|
186
|
+
`);
|
|
187
|
+
});
|
|
@@ -22,6 +22,27 @@ export interface ParameterProps {
|
|
|
22
22
|
|
|
23
23
|
refkey?: Refkey;
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Parameter modifier: The argument must be initialized before calling the method. The method can't assign a new value to the parameter. The compiler might create a temporary variable to hold a copy of the argument to in parameters.
|
|
27
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#in-parameter-modifier
|
|
28
|
+
* */
|
|
29
|
+
in?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Parameter modifier: The calling method isn't required to initialize the argument before calling the method. The method must assign a value to the parameter.
|
|
32
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#out-parameter-modifier
|
|
33
|
+
* */
|
|
34
|
+
out?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Parameter modifier: The argument must be initialized before calling the method. The method can assign a new value to the parameter, but isn't required to do so.
|
|
37
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#ref-parameter-modifier
|
|
38
|
+
*/
|
|
39
|
+
ref?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Parameter modifier: The argument must be initialized before calling the method. The method can't assign a new value to the parameter.
|
|
42
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#ref-readonly-modifier
|
|
43
|
+
*/
|
|
44
|
+
refReadonly?: boolean;
|
|
45
|
+
|
|
25
46
|
/**
|
|
26
47
|
* Define attributes to attach
|
|
27
48
|
* @example
|
|
@@ -48,9 +69,26 @@ export function Parameter(props: ParameterProps) {
|
|
|
48
69
|
isNullable: props.optional,
|
|
49
70
|
});
|
|
50
71
|
|
|
72
|
+
// Only one of in, out, ref, ref readonly can be specified
|
|
73
|
+
const modifiers: (keyof ParameterProps)[] = (
|
|
74
|
+
["in", "out", "ref", "refReadonly"] as (keyof ParameterProps)[]
|
|
75
|
+
).filter((k) => props[k]);
|
|
76
|
+
|
|
77
|
+
if (modifiers.length > 1) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
`Only one of 'in', 'out', 'ref', 'ref readonly' can be specified for parameter '${
|
|
80
|
+
typeof props.name === "string" ? props.name : props.name.name
|
|
81
|
+
}'`,
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
const modifier =
|
|
85
|
+
modifiers.length === 0 ? ""
|
|
86
|
+
: modifiers[0] === "refReadonly" ? "ref readonly "
|
|
87
|
+
: modifiers[0] + " ";
|
|
51
88
|
return (
|
|
52
89
|
<Declaration symbol={memberSymbol}>
|
|
53
90
|
<AttributeList attributes={props.attributes} endline />
|
|
91
|
+
<>{modifier}</>
|
|
54
92
|
<TypeSlot>{props.type}</TypeSlot>
|
|
55
93
|
{props.optional ? "?" : ""} <Name />
|
|
56
94
|
{props.default ? code` = ${props.default}` : ""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ComponentContext, createContext, useContext } from "@alloy-js/core";
|
|
2
|
+
|
|
3
|
+
/** What kind of reference.
|
|
4
|
+
* - 'standard' Default reference nothing special.
|
|
5
|
+
* - 'attribute' means we are referencing an attribute and so the name should be trimmed of "Attribute" suffix.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export type ReferenceContext = "standard" | "attribute";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Provides scopes for instance and static private members.
|
|
12
|
+
*/
|
|
13
|
+
export const ReferenceContext: ComponentContext<ReferenceContext> =
|
|
14
|
+
createContext<ReferenceContext>();
|
|
15
|
+
|
|
16
|
+
export function useReferenceContext(): "standard" | "attribute" {
|
|
17
|
+
return useContext(ReferenceContext) ?? "standard";
|
|
18
|
+
}
|
package/src/create-library.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Binder,
|
|
3
3
|
LibrarySymbolReference,
|
|
4
|
+
namekey,
|
|
4
5
|
refkey,
|
|
5
6
|
REFKEYABLE,
|
|
6
7
|
TO_SYMBOL,
|
|
@@ -123,7 +124,7 @@ export function createLibrary<T extends Record<string, Descriptor>>(
|
|
|
123
124
|
name,
|
|
124
125
|
)! as NamespaceSymbol;
|
|
125
126
|
} else {
|
|
126
|
-
ownerSymbol = new NamespaceSymbol(name, ownerSymbol!, {
|
|
127
|
+
ownerSymbol = new NamespaceSymbol(namekey(name), ownerSymbol!, {
|
|
127
128
|
binder,
|
|
128
129
|
refkeys: refkey(),
|
|
129
130
|
});
|
|
@@ -213,24 +214,33 @@ function createSymbolFromDescriptor(
|
|
|
213
214
|
if (ownerSymbol.members.symbolNames.has(name)) {
|
|
214
215
|
return ownerSymbol.members.symbolNames.get(name)! as NamespaceSymbol;
|
|
215
216
|
}
|
|
216
|
-
return new NamespaceSymbol(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
217
|
+
return new NamespaceSymbol(
|
|
218
|
+
namekey(name),
|
|
219
|
+
ownerSymbol as NamespaceSymbol,
|
|
220
|
+
{
|
|
221
|
+
binder,
|
|
222
|
+
refkeys: refkey(),
|
|
223
|
+
lazyMemberInitializer,
|
|
224
|
+
},
|
|
225
|
+
);
|
|
221
226
|
case "class":
|
|
222
227
|
case "enum":
|
|
223
228
|
case "interface":
|
|
224
229
|
case "struct":
|
|
225
230
|
case "record":
|
|
226
|
-
return new NamedTypeSymbol(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
+
return new NamedTypeSymbol(
|
|
232
|
+
namekey(name),
|
|
233
|
+
ownerSymbol.members,
|
|
234
|
+
descriptor.kind,
|
|
235
|
+
{
|
|
236
|
+
binder,
|
|
237
|
+
refkeys: refkey(),
|
|
238
|
+
lazyMemberInitializer,
|
|
239
|
+
},
|
|
240
|
+
);
|
|
231
241
|
case "method":
|
|
232
242
|
return new MethodSymbol(
|
|
233
|
-
name,
|
|
243
|
+
namekey(name),
|
|
234
244
|
ownerSymbol.members,
|
|
235
245
|
descriptor.methodKind,
|
|
236
246
|
{
|
|
@@ -240,7 +250,7 @@ function createSymbolFromDescriptor(
|
|
|
240
250
|
);
|
|
241
251
|
case "field":
|
|
242
252
|
case "property":
|
|
243
|
-
return new CSharpSymbol(name, ownerSymbol.members, {
|
|
253
|
+
return new CSharpSymbol(namekey(name), ownerSymbol.members, {
|
|
244
254
|
binder,
|
|
245
255
|
refkeys: refkey(),
|
|
246
256
|
type:
|
|
@@ -252,7 +262,7 @@ function createSymbolFromDescriptor(
|
|
|
252
262
|
lazyMemberInitializer,
|
|
253
263
|
});
|
|
254
264
|
case "generic":
|
|
255
|
-
return new CSharpSymbol(name, ownerSymbol.members, {
|
|
265
|
+
return new CSharpSymbol(namekey(name), ownerSymbol.members, {
|
|
256
266
|
binder,
|
|
257
267
|
refkeys: refkey(),
|
|
258
268
|
});
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
resolve,
|
|
8
8
|
unresolvedRefkey,
|
|
9
9
|
} from "@alloy-js/core";
|
|
10
|
+
import { useReferenceContext } from "../contexts/reference-context.js";
|
|
10
11
|
import { CSharpScope } from "../scopes/csharp.js";
|
|
11
12
|
import { CSharpNamespaceScope } from "../scopes/namespace.js";
|
|
12
13
|
import { useSourceFileScope } from "../scopes/source-file.js";
|
|
@@ -56,12 +57,19 @@ export function ref(
|
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
const parts = [];
|
|
60
|
+
const referenceContext = useReferenceContext();
|
|
59
61
|
|
|
60
62
|
for (const nsScope of pathDown) {
|
|
61
63
|
parts.push(<AccessExpression.Part symbol={nsScope.ownerSymbol!} />);
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
parts.push(
|
|
66
|
+
parts.push(
|
|
67
|
+
<AccessExpression.Part
|
|
68
|
+
symbol={lexicalDeclaration}
|
|
69
|
+
attribute={referenceContext === "attribute"}
|
|
70
|
+
/>,
|
|
71
|
+
);
|
|
72
|
+
|
|
65
73
|
for (const member of memberPath) {
|
|
66
74
|
parts.push(<AccessExpression.Part symbol={member} />);
|
|
67
75
|
}
|
package/temp/api.json
CHANGED
|
@@ -995,6 +995,33 @@
|
|
|
995
995
|
"endIndex": 4
|
|
996
996
|
}
|
|
997
997
|
},
|
|
998
|
+
{
|
|
999
|
+
"kind": "PropertySignature",
|
|
1000
|
+
"canonicalReference": "@alloy-js/csharp!AccessExpressionPartProps#attribute:member",
|
|
1001
|
+
"docComment": "/**\n * Wether this part is an attribute reference (used in an attribute context).\n * In that case the \"Attribute\" suffix is trimmed from the name if present.\n */\n",
|
|
1002
|
+
"excerptTokens": [
|
|
1003
|
+
{
|
|
1004
|
+
"kind": "Content",
|
|
1005
|
+
"text": "attribute?: "
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"kind": "Content",
|
|
1009
|
+
"text": "boolean"
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
"kind": "Content",
|
|
1013
|
+
"text": ";"
|
|
1014
|
+
}
|
|
1015
|
+
],
|
|
1016
|
+
"isReadonly": false,
|
|
1017
|
+
"isOptional": true,
|
|
1018
|
+
"releaseTag": "Public",
|
|
1019
|
+
"name": "attribute",
|
|
1020
|
+
"propertyTypeTokenRange": {
|
|
1021
|
+
"startIndex": 1,
|
|
1022
|
+
"endIndex": 2
|
|
1023
|
+
}
|
|
1024
|
+
},
|
|
998
1025
|
{
|
|
999
1026
|
"kind": "PropertySignature",
|
|
1000
1027
|
"canonicalReference": "@alloy-js/csharp!AccessExpressionPartProps#children:member",
|
|
@@ -1577,78 +1604,6 @@
|
|
|
1577
1604
|
"endIndex": 14
|
|
1578
1605
|
}
|
|
1579
1606
|
},
|
|
1580
|
-
{
|
|
1581
|
-
"kind": "Interface",
|
|
1582
|
-
"canonicalReference": "@alloy-js/csharp!AttributeItem:interface",
|
|
1583
|
-
"docComment": "",
|
|
1584
|
-
"excerptTokens": [
|
|
1585
|
-
{
|
|
1586
|
-
"kind": "Content",
|
|
1587
|
-
"text": "export interface AttributeItem "
|
|
1588
|
-
}
|
|
1589
|
-
],
|
|
1590
|
-
"fileUrlPath": "src/components/attributes/attributes.tsx",
|
|
1591
|
-
"releaseTag": "Public",
|
|
1592
|
-
"name": "AttributeItem",
|
|
1593
|
-
"preserveMemberOrder": false,
|
|
1594
|
-
"members": [
|
|
1595
|
-
{
|
|
1596
|
-
"kind": "PropertySignature",
|
|
1597
|
-
"canonicalReference": "@alloy-js/csharp!AttributeItem#args:member",
|
|
1598
|
-
"docComment": "",
|
|
1599
|
-
"excerptTokens": [
|
|
1600
|
-
{
|
|
1601
|
-
"kind": "Content",
|
|
1602
|
-
"text": "args?: "
|
|
1603
|
-
},
|
|
1604
|
-
{
|
|
1605
|
-
"kind": "Content",
|
|
1606
|
-
"text": "string[]"
|
|
1607
|
-
},
|
|
1608
|
-
{
|
|
1609
|
-
"kind": "Content",
|
|
1610
|
-
"text": ";"
|
|
1611
|
-
}
|
|
1612
|
-
],
|
|
1613
|
-
"isReadonly": false,
|
|
1614
|
-
"isOptional": true,
|
|
1615
|
-
"releaseTag": "Public",
|
|
1616
|
-
"name": "args",
|
|
1617
|
-
"propertyTypeTokenRange": {
|
|
1618
|
-
"startIndex": 1,
|
|
1619
|
-
"endIndex": 2
|
|
1620
|
-
}
|
|
1621
|
-
},
|
|
1622
|
-
{
|
|
1623
|
-
"kind": "PropertySignature",
|
|
1624
|
-
"canonicalReference": "@alloy-js/csharp!AttributeItem#name:member",
|
|
1625
|
-
"docComment": "",
|
|
1626
|
-
"excerptTokens": [
|
|
1627
|
-
{
|
|
1628
|
-
"kind": "Content",
|
|
1629
|
-
"text": "name: "
|
|
1630
|
-
},
|
|
1631
|
-
{
|
|
1632
|
-
"kind": "Content",
|
|
1633
|
-
"text": "string"
|
|
1634
|
-
},
|
|
1635
|
-
{
|
|
1636
|
-
"kind": "Content",
|
|
1637
|
-
"text": ";"
|
|
1638
|
-
}
|
|
1639
|
-
],
|
|
1640
|
-
"isReadonly": false,
|
|
1641
|
-
"isOptional": false,
|
|
1642
|
-
"releaseTag": "Public",
|
|
1643
|
-
"name": "name",
|
|
1644
|
-
"propertyTypeTokenRange": {
|
|
1645
|
-
"startIndex": 1,
|
|
1646
|
-
"endIndex": 2
|
|
1647
|
-
}
|
|
1648
|
-
}
|
|
1649
|
-
],
|
|
1650
|
-
"extendsTokenRanges": []
|
|
1651
|
-
},
|
|
1652
1607
|
{
|
|
1653
1608
|
"kind": "Function",
|
|
1654
1609
|
"canonicalReference": "@alloy-js/csharp!AttributeList:function(1)",
|
|
@@ -1857,10 +1812,14 @@
|
|
|
1857
1812
|
"kind": "Content",
|
|
1858
1813
|
"text": "name: "
|
|
1859
1814
|
},
|
|
1815
|
+
{
|
|
1816
|
+
"kind": "Content",
|
|
1817
|
+
"text": "string | "
|
|
1818
|
+
},
|
|
1860
1819
|
{
|
|
1861
1820
|
"kind": "Reference",
|
|
1862
|
-
"text": "
|
|
1863
|
-
"canonicalReference": "@alloy-js/core!
|
|
1821
|
+
"text": "Refkeyable",
|
|
1822
|
+
"canonicalReference": "@alloy-js/core!Refkeyable:type"
|
|
1864
1823
|
},
|
|
1865
1824
|
{
|
|
1866
1825
|
"kind": "Content",
|
|
@@ -1873,7 +1832,7 @@
|
|
|
1873
1832
|
"name": "name",
|
|
1874
1833
|
"propertyTypeTokenRange": {
|
|
1875
1834
|
"startIndex": 1,
|
|
1876
|
-
"endIndex":
|
|
1835
|
+
"endIndex": 3
|
|
1877
1836
|
}
|
|
1878
1837
|
}
|
|
1879
1838
|
],
|
|
@@ -13690,6 +13649,33 @@
|
|
|
13690
13649
|
"endIndex": 2
|
|
13691
13650
|
}
|
|
13692
13651
|
},
|
|
13652
|
+
{
|
|
13653
|
+
"kind": "PropertySignature",
|
|
13654
|
+
"canonicalReference": "@alloy-js/csharp!ParameterProps#in:member",
|
|
13655
|
+
"docComment": "/**\n * Parameter modifier: The argument must be initialized before calling the method. The method can't assign a new value to the parameter. The compiler might create a temporary variable to hold a copy of the argument to in parameters.\n *\n * @see\n *\n * https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#in-parameter-modifier\n */\n",
|
|
13656
|
+
"excerptTokens": [
|
|
13657
|
+
{
|
|
13658
|
+
"kind": "Content",
|
|
13659
|
+
"text": "in?: "
|
|
13660
|
+
},
|
|
13661
|
+
{
|
|
13662
|
+
"kind": "Content",
|
|
13663
|
+
"text": "boolean"
|
|
13664
|
+
},
|
|
13665
|
+
{
|
|
13666
|
+
"kind": "Content",
|
|
13667
|
+
"text": ";"
|
|
13668
|
+
}
|
|
13669
|
+
],
|
|
13670
|
+
"isReadonly": false,
|
|
13671
|
+
"isOptional": true,
|
|
13672
|
+
"releaseTag": "Public",
|
|
13673
|
+
"name": "in",
|
|
13674
|
+
"propertyTypeTokenRange": {
|
|
13675
|
+
"startIndex": 1,
|
|
13676
|
+
"endIndex": 2
|
|
13677
|
+
}
|
|
13678
|
+
},
|
|
13693
13679
|
{
|
|
13694
13680
|
"kind": "PropertySignature",
|
|
13695
13681
|
"canonicalReference": "@alloy-js/csharp!ParameterProps#name:member",
|
|
@@ -13749,6 +13735,60 @@
|
|
|
13749
13735
|
"endIndex": 2
|
|
13750
13736
|
}
|
|
13751
13737
|
},
|
|
13738
|
+
{
|
|
13739
|
+
"kind": "PropertySignature",
|
|
13740
|
+
"canonicalReference": "@alloy-js/csharp!ParameterProps#out:member",
|
|
13741
|
+
"docComment": "/**\n * Parameter modifier: The calling method isn't required to initialize the argument before calling the method. The method must assign a value to the parameter.\n *\n * @see\n *\n * https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#out-parameter-modifier\n */\n",
|
|
13742
|
+
"excerptTokens": [
|
|
13743
|
+
{
|
|
13744
|
+
"kind": "Content",
|
|
13745
|
+
"text": "out?: "
|
|
13746
|
+
},
|
|
13747
|
+
{
|
|
13748
|
+
"kind": "Content",
|
|
13749
|
+
"text": "boolean"
|
|
13750
|
+
},
|
|
13751
|
+
{
|
|
13752
|
+
"kind": "Content",
|
|
13753
|
+
"text": ";"
|
|
13754
|
+
}
|
|
13755
|
+
],
|
|
13756
|
+
"isReadonly": false,
|
|
13757
|
+
"isOptional": true,
|
|
13758
|
+
"releaseTag": "Public",
|
|
13759
|
+
"name": "out",
|
|
13760
|
+
"propertyTypeTokenRange": {
|
|
13761
|
+
"startIndex": 1,
|
|
13762
|
+
"endIndex": 2
|
|
13763
|
+
}
|
|
13764
|
+
},
|
|
13765
|
+
{
|
|
13766
|
+
"kind": "PropertySignature",
|
|
13767
|
+
"canonicalReference": "@alloy-js/csharp!ParameterProps#ref:member",
|
|
13768
|
+
"docComment": "/**\n * Parameter modifier: The argument must be initialized before calling the method. The method can assign a new value to the parameter, but isn't required to do so.\n *\n * @see\n *\n * https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#ref-parameter-modifier\n */\n",
|
|
13769
|
+
"excerptTokens": [
|
|
13770
|
+
{
|
|
13771
|
+
"kind": "Content",
|
|
13772
|
+
"text": "ref?: "
|
|
13773
|
+
},
|
|
13774
|
+
{
|
|
13775
|
+
"kind": "Content",
|
|
13776
|
+
"text": "boolean"
|
|
13777
|
+
},
|
|
13778
|
+
{
|
|
13779
|
+
"kind": "Content",
|
|
13780
|
+
"text": ";"
|
|
13781
|
+
}
|
|
13782
|
+
],
|
|
13783
|
+
"isReadonly": false,
|
|
13784
|
+
"isOptional": true,
|
|
13785
|
+
"releaseTag": "Public",
|
|
13786
|
+
"name": "ref",
|
|
13787
|
+
"propertyTypeTokenRange": {
|
|
13788
|
+
"startIndex": 1,
|
|
13789
|
+
"endIndex": 2
|
|
13790
|
+
}
|
|
13791
|
+
},
|
|
13752
13792
|
{
|
|
13753
13793
|
"kind": "PropertySignature",
|
|
13754
13794
|
"canonicalReference": "@alloy-js/csharp!ParameterProps#refkey:member",
|
|
@@ -13777,6 +13817,33 @@
|
|
|
13777
13817
|
"endIndex": 2
|
|
13778
13818
|
}
|
|
13779
13819
|
},
|
|
13820
|
+
{
|
|
13821
|
+
"kind": "PropertySignature",
|
|
13822
|
+
"canonicalReference": "@alloy-js/csharp!ParameterProps#refReadonly:member",
|
|
13823
|
+
"docComment": "/**\n * Parameter modifier: The argument must be initialized before calling the method. The method can't assign a new value to the parameter.\n *\n * @see\n *\n * https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/method-parameters#ref-readonly-modifier\n */\n",
|
|
13824
|
+
"excerptTokens": [
|
|
13825
|
+
{
|
|
13826
|
+
"kind": "Content",
|
|
13827
|
+
"text": "refReadonly?: "
|
|
13828
|
+
},
|
|
13829
|
+
{
|
|
13830
|
+
"kind": "Content",
|
|
13831
|
+
"text": "boolean"
|
|
13832
|
+
},
|
|
13833
|
+
{
|
|
13834
|
+
"kind": "Content",
|
|
13835
|
+
"text": ";"
|
|
13836
|
+
}
|
|
13837
|
+
],
|
|
13838
|
+
"isReadonly": false,
|
|
13839
|
+
"isOptional": true,
|
|
13840
|
+
"releaseTag": "Public",
|
|
13841
|
+
"name": "refReadonly",
|
|
13842
|
+
"propertyTypeTokenRange": {
|
|
13843
|
+
"startIndex": 1,
|
|
13844
|
+
"endIndex": 2
|
|
13845
|
+
}
|
|
13846
|
+
},
|
|
13780
13847
|
{
|
|
13781
13848
|
"kind": "PropertySignature",
|
|
13782
13849
|
"canonicalReference": "@alloy-js/csharp!ParameterProps#type:member",
|