@likec4/language-server 1.32.0 → 1.32.2
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/ast.d.ts +1 -0
- package/dist/ast.js +4 -1
- package/dist/bundled.mjs +2314 -2312
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/schema.js +8 -11
- package/dist/formatting/LikeC4Formatter.js +2 -2
- package/dist/generated/ast.d.ts +30 -6
- package/dist/generated/ast.js +44 -9
- package/dist/generated/grammar.js +1 -1
- package/dist/mcp/LikeC4MCPServerFactory.d.ts +4 -0
- package/dist/mcp/LikeC4MCPServerFactory.js +6 -0
- package/dist/mcp/sseserver/MCPServer.d.ts +4 -2
- package/dist/mcp/sseserver/MCPServer.js +12 -6
- package/dist/mcp/sseserver/with-mcp-server.js +22 -6
- package/dist/model/model-builder.js +20 -19
- package/dist/model/model-parser.d.ts +9 -0
- package/dist/model/parser/Base.d.ts +1 -0
- package/dist/model/parser/Base.js +22 -0
- package/dist/model/parser/DeploymentModelParser.d.ts +1 -0
- package/dist/model/parser/DeploymentModelParser.js +7 -5
- package/dist/model/parser/DeploymentViewParser.d.ts +1 -0
- package/dist/model/parser/FqnRefParser.d.ts +1 -0
- package/dist/model/parser/GlobalsParser.d.ts +1 -0
- package/dist/model/parser/ImportsParser.d.ts +1 -0
- package/dist/model/parser/ModelParser.d.ts +1 -0
- package/dist/model/parser/ModelParser.js +7 -5
- package/dist/model/parser/PredicatesParser.d.ts +1 -0
- package/dist/model/parser/SpecificationParser.d.ts +1 -0
- package/dist/model/parser/SpecificationParser.js +4 -2
- package/dist/model/parser/ViewsParser.d.ts +1 -0
- package/dist/module.d.ts +2 -2
- package/dist/module.js +4 -4
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.js +19 -0
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.js +10 -3
- package/dist/validation/property-checks.d.ts +1 -0
- package/dist/validation/property-checks.js +62 -0
- package/dist/views/configurable-layouter.d.ts +2 -2
- package/dist/views/configurable-layouter.js +4 -2
- package/dist/views/likec4-views.d.ts +2 -3
- package/dist/views/likec4-views.js +29 -50
- package/dist/workspace/ProjectsManager.d.ts +0 -1
- package/dist/workspace/ProjectsManager.js +15 -4
- package/package.json +16 -16
package/dist/config/schema.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
export declare const ProjectConfig: v.ObjectSchema<{
|
|
3
|
-
readonly name: v.SchemaWithPipe<readonly [v.
|
|
4
|
-
readonly contactPerson: v.OptionalSchema<v.SchemaWithPipe<readonly [v.
|
|
3
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, "Project name cannot be empty">, v.ExcludesAction<string, "default", "Project name cannot be \"default\"">, v.ExcludesAction<string, ".", "Project name cannot contain \".\", try to use A-z, 0-9, _ and -">, v.ExcludesAction<string, "@", "Project name cannot contain \"@\", try to use A-z, 0-9, _ and -">, v.ExcludesAction<string, "#", "Project name cannot contain \"#\", try to use A-z, 0-9, _ and -">, v.DescriptionAction<string, "Project name, must be unique in the workspace">]>;
|
|
4
|
+
readonly contactPerson: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, "Contact person cannot be empty if specified">, v.DescriptionAction<string, "A person who has been involved in creating or maintaining this project">]>, undefined>;
|
|
5
5
|
readonly exclude: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.DescriptionAction<string[], "List of file patterns to exclude from the project, default is [\"**/node_modules/**/*\"]">]>, undefined>;
|
|
6
6
|
}, undefined>;
|
|
7
7
|
export type ProjectConfig = v.InferOutput<typeof ProjectConfig>;
|
package/dist/config/schema.js
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import JSON5 from "json5";
|
|
2
2
|
import * as v from "valibot";
|
|
3
|
-
const nonEmptyString = v.pipe(v.string(), v.nonEmpty());
|
|
4
3
|
export const ProjectConfig = v.object({
|
|
5
4
|
name: v.pipe(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
v.string(),
|
|
6
|
+
v.nonEmpty("Project name cannot be empty"),
|
|
7
|
+
v.excludes("default", 'Project name cannot be "default"'),
|
|
8
|
+
v.excludes(".", 'Project name cannot contain ".", try to use A-z, 0-9, _ and -'),
|
|
9
|
+
v.excludes("@", 'Project name cannot contain "@", try to use A-z, 0-9, _ and -'),
|
|
10
|
+
v.excludes("#", 'Project name cannot contain "#", try to use A-z, 0-9, _ and -'),
|
|
9
11
|
v.description("Project name, must be unique in the workspace")
|
|
10
12
|
),
|
|
11
13
|
contactPerson: v.optional(
|
|
12
14
|
v.pipe(
|
|
13
|
-
|
|
15
|
+
v.string(),
|
|
16
|
+
v.nonEmpty("Contact person cannot be empty if specified"),
|
|
14
17
|
v.description("A person who has been involved in creating or maintaining this project")
|
|
15
18
|
)
|
|
16
19
|
),
|
|
17
|
-
// imports: v.optional(
|
|
18
|
-
// v.pipe(
|
|
19
|
-
// v.record(v.string(), nonEmptyString),
|
|
20
|
-
// v.description('Imported projects'),
|
|
21
|
-
// ),
|
|
22
|
-
// ),
|
|
23
20
|
exclude: v.optional(
|
|
24
21
|
v.pipe(
|
|
25
22
|
v.array(v.string()),
|
|
@@ -79,7 +79,7 @@ export class LikeC4Formatter extends AbstractFormatter {
|
|
|
79
79
|
n.target,
|
|
80
80
|
n.tags
|
|
81
81
|
], isTruthy)).prepend(FormattingOptions.oneSpace);
|
|
82
|
-
f.properties("title", "technology").prepend(FormattingOptions.oneSpace);
|
|
82
|
+
f.properties("title", "description", "technology").prepend(FormattingOptions.oneSpace);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
formatExtendDeployment(node) {
|
|
@@ -100,7 +100,7 @@ export class LikeC4Formatter extends AbstractFormatter {
|
|
|
100
100
|
n.target,
|
|
101
101
|
n.tags
|
|
102
102
|
], isTruthy)).prepend(FormattingOptions.oneSpace);
|
|
103
|
-
f.properties("title", "technology").prepend(FormattingOptions.oneSpace);
|
|
103
|
+
f.properties("title", "description", "technology").prepend(FormattingOptions.oneSpace);
|
|
104
104
|
}
|
|
105
105
|
);
|
|
106
106
|
this.on(node, ast.isDynamicViewStep, (n, f) => {
|
package/dist/generated/ast.d.ts
CHANGED
|
@@ -20,12 +20,13 @@ export declare const LikeC4Terminals: {
|
|
|
20
20
|
Eq: RegExp;
|
|
21
21
|
Percent: RegExp;
|
|
22
22
|
String: RegExp;
|
|
23
|
-
|
|
23
|
+
Float: RegExp;
|
|
24
24
|
Number: RegExp;
|
|
25
25
|
Hex: RegExp;
|
|
26
|
+
IdTerminal: RegExp;
|
|
26
27
|
};
|
|
27
28
|
export type LikeC4TerminalNames = keyof typeof LikeC4Terminals;
|
|
28
|
-
export type LikeC4KeywordNames = "(" | ")" | "*" | "," | "->" | "-[" | ":" | ";" | "<-" | "<->" | "BottomTop" | "LeftRight" | "RightLeft" | "TopBottom" | "]->" | "amber" | "and" | "autoLayout" | "blue" | "border" | "browser" | "color" | "crow" | "cylinder" | "dashed" | "deployment" | "deploymentNode" | "description" | "diamond" | "dot" | "dotted" | "dynamic" | "dynamicPredicateGroup" | "element" | "element.kind" | "element.tag" | "exclude" | "extend" | "extends" | "false" | "from" | "global" | "gray" | "green" | "group" | "head" | "icon" | "icons" | "import" | "include" | "indigo" | "instance" | "instanceOf" | "is" | "kind" | "large" | "lg" | "likec4lib" | "line" | "link" | "md" | "medium" | "metadata" | "mobile" | "model" | "multiple" | "muted" | "navigateTo" | "node" | "none" | "normal" | "not" | "notation" | "notes" | "odiamond" | "odot" | "of" | "onormal" | "opacity" | "open" | "or" | "padding" | "par" | "parallel" | "person" | "predicate" | "predicateGroup" | "primary" | "queue" | "rectangle" | "red" | "relationship" | "secondary" | "shape" | "size" | "sky" | "slate" | "sm" | "small" | "solid" | "source" | "specification" | "storage" | "style" | "styleGroup" | "tag" | "tail" | "target" | "technology" | "textSize" | "title" | "true" | "vee" | "view" | "views" | "where" | "with" | "xl" | "xlarge" | "xs" | "xsmall" | "{" | "}";
|
|
29
|
+
export type LikeC4KeywordNames = "(" | ")" | "*" | "," | "->" | "-[" | ":" | ";" | "<-" | "<->" | "BottomTop" | "LeftRight" | "RightLeft" | "TopBottom" | "]->" | "amber" | "and" | "autoLayout" | "blue" | "border" | "browser" | "color" | "crow" | "cylinder" | "dashed" | "deployment" | "deploymentNode" | "description" | "diamond" | "dot" | "dotted" | "dynamic" | "dynamicPredicateGroup" | "element" | "element.kind" | "element.tag" | "exclude" | "extend" | "extends" | "false" | "from" | "global" | "gray" | "green" | "group" | "head" | "icon" | "icons" | "import" | "include" | "indigo" | "instance" | "instanceOf" | "is" | "kind" | "large" | "lg" | "likec4lib" | "line" | "link" | "md" | "medium" | "metadata" | "mobile" | "model" | "multiple" | "muted" | "navigateTo" | "node" | "none" | "normal" | "not" | "notation" | "notes" | "odiamond" | "odot" | "of" | "onormal" | "opacity" | "open" | "or" | "padding" | "par" | "parallel" | "person" | "predicate" | "predicateGroup" | "primary" | "queue" | "rectangle" | "red" | "relationship" | "rgb" | "rgba" | "secondary" | "shape" | "size" | "sky" | "slate" | "sm" | "small" | "solid" | "source" | "specification" | "storage" | "style" | "styleGroup" | "tag" | "tail" | "target" | "technology" | "textSize" | "title" | "true" | "vee" | "view" | "views" | "where" | "with" | "xl" | "xlarge" | "xs" | "xsmall" | "{" | "}";
|
|
29
30
|
export type LikeC4TokenNames = LikeC4TerminalNames | LikeC4KeywordNames;
|
|
30
31
|
export type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
|
|
31
32
|
export declare function isArrowType(item: unknown): item is ArrowType;
|
|
@@ -33,10 +34,11 @@ export type Boolean = boolean;
|
|
|
33
34
|
export declare function isBoolean(item: unknown): item is Boolean;
|
|
34
35
|
export type BorderStyleValue = 'none' | LineOptions;
|
|
35
36
|
export declare function isBorderStyleValue(item: unknown): item is BorderStyleValue;
|
|
37
|
+
export type ColorLiteral = HexColor | RGBAColor;
|
|
38
|
+
export declare const ColorLiteral = "ColorLiteral";
|
|
39
|
+
export declare function isColorLiteral(item: unknown): item is ColorLiteral;
|
|
36
40
|
export type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | string;
|
|
37
41
|
export declare function isCustomColorId(item: unknown): item is CustomColorId;
|
|
38
|
-
export type CustomColorValue = string;
|
|
39
|
-
export declare function isCustomColorValue(item: unknown): item is CustomColorValue;
|
|
40
42
|
export type DeploymentElement = DeployedInstance | DeploymentNode;
|
|
41
43
|
export declare const DeploymentElement = "DeploymentElement";
|
|
42
44
|
export declare function isDeploymentElement(item: unknown): item is DeploymentElement;
|
|
@@ -249,6 +251,7 @@ export interface DeploymentRelation extends langium.AstNode {
|
|
|
249
251
|
readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
|
|
250
252
|
readonly $type: 'DeploymentRelation';
|
|
251
253
|
body?: DeploymentRelationBody;
|
|
254
|
+
description?: string;
|
|
252
255
|
dotKind?: RelationKindDotRef;
|
|
253
256
|
kind?: langium.Reference<RelationshipKind>;
|
|
254
257
|
source?: FqnRef;
|
|
@@ -589,6 +592,13 @@ export interface GlobalStyleId extends langium.AstNode {
|
|
|
589
592
|
}
|
|
590
593
|
export declare const GlobalStyleId = "GlobalStyleId";
|
|
591
594
|
export declare function isGlobalStyleId(item: unknown): item is GlobalStyleId;
|
|
595
|
+
export interface HexColor extends langium.AstNode {
|
|
596
|
+
readonly $container: SpecificationColor | SpecificationTag;
|
|
597
|
+
readonly $type: 'HexColor';
|
|
598
|
+
hex: number | string;
|
|
599
|
+
}
|
|
600
|
+
export declare const HexColor = "HexColor";
|
|
601
|
+
export declare function isHexColor(item: unknown): item is HexColor;
|
|
592
602
|
export interface IconProperty extends langium.AstNode {
|
|
593
603
|
readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | DeploymentViewRuleStyle | ElementBody | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
|
|
594
604
|
readonly $type: 'IconProperty';
|
|
@@ -773,6 +783,7 @@ export interface Relation extends langium.AstNode {
|
|
|
773
783
|
readonly $container: ElementBody | ExtendElementBody | Model;
|
|
774
784
|
readonly $type: 'Relation';
|
|
775
785
|
body?: RelationBody;
|
|
786
|
+
description?: string;
|
|
776
787
|
dotKind?: RelationKindDotRef;
|
|
777
788
|
kind?: langium.Reference<RelationshipKind>;
|
|
778
789
|
source?: FqnRef;
|
|
@@ -845,6 +856,16 @@ export interface RelationStyleProperty extends langium.AstNode {
|
|
|
845
856
|
}
|
|
846
857
|
export declare const RelationStyleProperty = "RelationStyleProperty";
|
|
847
858
|
export declare function isRelationStyleProperty(item: unknown): item is RelationStyleProperty;
|
|
859
|
+
export interface RGBAColor extends langium.AstNode {
|
|
860
|
+
readonly $container: SpecificationColor | SpecificationTag;
|
|
861
|
+
readonly $type: 'RGBAColor';
|
|
862
|
+
alpha?: number | string;
|
|
863
|
+
blue: number;
|
|
864
|
+
green: number;
|
|
865
|
+
red: number;
|
|
866
|
+
}
|
|
867
|
+
export declare const RGBAColor = "RGBAColor";
|
|
868
|
+
export declare function isRGBAColor(item: unknown): item is RGBAColor;
|
|
848
869
|
export interface ShapeProperty extends langium.AstNode {
|
|
849
870
|
readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
|
|
850
871
|
readonly $type: 'ShapeProperty';
|
|
@@ -864,7 +885,7 @@ export declare function isShapeSizeProperty(item: unknown): item is ShapeSizePro
|
|
|
864
885
|
export interface SpecificationColor extends langium.AstNode {
|
|
865
886
|
readonly $container: SpecificationRule;
|
|
866
887
|
readonly $type: 'SpecificationColor';
|
|
867
|
-
color:
|
|
888
|
+
color: ColorLiteral;
|
|
868
889
|
name: CustomColor;
|
|
869
890
|
}
|
|
870
891
|
export declare const SpecificationColor = "SpecificationColor";
|
|
@@ -926,7 +947,7 @@ export declare function isSpecificationRule(item: unknown): item is Specificatio
|
|
|
926
947
|
export interface SpecificationTag extends langium.AstNode {
|
|
927
948
|
readonly $container: SpecificationRule;
|
|
928
949
|
readonly $type: 'SpecificationTag';
|
|
929
|
-
color?:
|
|
950
|
+
color?: ColorLiteral;
|
|
930
951
|
tag: Tag;
|
|
931
952
|
}
|
|
932
953
|
export declare const SpecificationTag = "SpecificationTag";
|
|
@@ -1129,6 +1150,7 @@ export declare function isWildcardExpression(item: unknown): item is WildcardExp
|
|
|
1129
1150
|
export type LikeC4AstType = {
|
|
1130
1151
|
ArrowProperty: ArrowProperty;
|
|
1131
1152
|
BorderProperty: BorderProperty;
|
|
1153
|
+
ColorLiteral: ColorLiteral;
|
|
1132
1154
|
ColorProperty: ColorProperty;
|
|
1133
1155
|
CustomColor: CustomColor;
|
|
1134
1156
|
CustomElementProperties: CustomElementProperties;
|
|
@@ -1190,6 +1212,7 @@ export type LikeC4AstType = {
|
|
|
1190
1212
|
GlobalStyleGroup: GlobalStyleGroup;
|
|
1191
1213
|
GlobalStyleId: GlobalStyleId;
|
|
1192
1214
|
Globals: Globals;
|
|
1215
|
+
HexColor: HexColor;
|
|
1193
1216
|
IconProperty: IconProperty;
|
|
1194
1217
|
Imported: Imported;
|
|
1195
1218
|
ImportsFromPoject: ImportsFromPoject;
|
|
@@ -1215,6 +1238,7 @@ export type LikeC4AstType = {
|
|
|
1215
1238
|
OpacityProperty: OpacityProperty;
|
|
1216
1239
|
OutgoingRelationExpr: OutgoingRelationExpr;
|
|
1217
1240
|
PaddingSizeProperty: PaddingSizeProperty;
|
|
1241
|
+
RGBAColor: RGBAColor;
|
|
1218
1242
|
Referenceable: Referenceable;
|
|
1219
1243
|
Relation: Relation;
|
|
1220
1244
|
RelationBody: RelationBody;
|
package/dist/generated/ast.js
CHANGED
|
@@ -15,10 +15,11 @@ export const LikeC4Terminals = {
|
|
|
15
15
|
NotEqual: /\!\={1,2}/,
|
|
16
16
|
Eq: /\={1,2}/,
|
|
17
17
|
Percent: /\b\d+%/,
|
|
18
|
-
String: /"[^"]*"|'[^']*'/,
|
|
19
|
-
|
|
18
|
+
String: /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/,
|
|
19
|
+
Float: /\b\d+\.\d+\b/,
|
|
20
20
|
Number: /\b\d+\b/,
|
|
21
|
-
Hex: /\b[a-
|
|
21
|
+
Hex: /\b[a-fA-F0-9]{3,}\b/,
|
|
22
|
+
IdTerminal: /[_]*[a-zA-Z][-\w]*/
|
|
22
23
|
};
|
|
23
24
|
export function isArrowType(item) {
|
|
24
25
|
return item === "none" || item === "normal" || item === "onormal" || item === "dot" || item === "odot" || item === "diamond" || item === "odiamond" || item === "crow" || item === "open" || item === "vee";
|
|
@@ -29,11 +30,12 @@ export function isBoolean(item) {
|
|
|
29
30
|
export function isBorderStyleValue(item) {
|
|
30
31
|
return isLineOptions(item) || item === "none";
|
|
31
32
|
}
|
|
32
|
-
export
|
|
33
|
-
|
|
33
|
+
export const ColorLiteral = "ColorLiteral";
|
|
34
|
+
export function isColorLiteral(item) {
|
|
35
|
+
return reflection.isInstance(item, ColorLiteral);
|
|
34
36
|
}
|
|
35
|
-
export function
|
|
36
|
-
return typeof item === "string";
|
|
37
|
+
export function isCustomColorId(item) {
|
|
38
|
+
return isElementShape(item) || isArrowType(item) || isLineOptions(item) || item === "element" || item === "model" || typeof item === "string" && (/\b[a-fA-F0-9]{3,}\b/.test(item) || /[_]*[a-zA-Z][-\w]*/.test(item));
|
|
37
39
|
}
|
|
38
40
|
export const DeploymentElement = "DeploymentElement";
|
|
39
41
|
export function isDeploymentElement(item) {
|
|
@@ -86,7 +88,7 @@ export function isIconId(item) {
|
|
|
86
88
|
return typeof item === "string" && /(aws|azure|gcp|tech):[-\w]*/.test(item);
|
|
87
89
|
}
|
|
88
90
|
export function isId(item) {
|
|
89
|
-
return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || isParticipant(item) || isSizeValue(item) || item === "element" || item === "model" || item === "group" || item === "node" || item === "deployment" || item === "instance" || typeof item === "string" && /[_]*[a-zA-Z][-\w]*/.test(item);
|
|
91
|
+
return isElementShape(item) || isThemeColor(item) || isArrowType(item) || isLineOptions(item) || isParticipant(item) || isSizeValue(item) || item === "element" || item === "model" || item === "group" || item === "node" || item === "deployment" || item === "instance" || typeof item === "string" && (/\b[a-fA-F0-9]{3,}\b/.test(item) || /[_]*[a-zA-Z][-\w]*/.test(item));
|
|
90
92
|
}
|
|
91
93
|
export const LikeC4View = "LikeC4View";
|
|
92
94
|
export function isLikeC4View(item) {
|
|
@@ -402,6 +404,10 @@ export const GlobalStyleId = "GlobalStyleId";
|
|
|
402
404
|
export function isGlobalStyleId(item) {
|
|
403
405
|
return reflection.isInstance(item, GlobalStyleId);
|
|
404
406
|
}
|
|
407
|
+
export const HexColor = "HexColor";
|
|
408
|
+
export function isHexColor(item) {
|
|
409
|
+
return reflection.isInstance(item, HexColor);
|
|
410
|
+
}
|
|
405
411
|
export const IconProperty = "IconProperty";
|
|
406
412
|
export function isIconProperty(item) {
|
|
407
413
|
return reflection.isInstance(item, IconProperty);
|
|
@@ -526,6 +532,10 @@ export const RelationStyleProperty = "RelationStyleProperty";
|
|
|
526
532
|
export function isRelationStyleProperty(item) {
|
|
527
533
|
return reflection.isInstance(item, RelationStyleProperty);
|
|
528
534
|
}
|
|
535
|
+
export const RGBAColor = "RGBAColor";
|
|
536
|
+
export function isRGBAColor(item) {
|
|
537
|
+
return reflection.isInstance(item, RGBAColor);
|
|
538
|
+
}
|
|
529
539
|
export const ShapeProperty = "ShapeProperty";
|
|
530
540
|
export function isShapeProperty(item) {
|
|
531
541
|
return reflection.isInstance(item, ShapeProperty);
|
|
@@ -664,7 +674,7 @@ export function isWildcardExpression(item) {
|
|
|
664
674
|
}
|
|
665
675
|
export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
666
676
|
getAllTypes() {
|
|
667
|
-
return [ArrowProperty, BorderProperty, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DeployedInstance, DeployedInstanceBody, DeploymentElement, DeploymentNode, DeploymentNodeBody, DeploymentNodeKind, DeploymentNodeOrElementKind, DeploymentRelation, DeploymentRelationBody, DeploymentView, DeploymentViewBody, DeploymentViewRule, DeploymentViewRulePredicate, DeploymentViewRuleStyle, DirectedRelationExpr, DynamicView, DynamicViewBody, DynamicViewGlobalPredicateRef, DynamicViewIncludePredicate, DynamicViewParallelSteps, DynamicViewRef, DynamicViewRule, DynamicViewStep, Element, ElementBody, ElementKind, ElementKindExpression, ElementProperty, ElementRef, ElementStringProperty, ElementStyleProperty, ElementTagExpression, ElementView, ElementViewBody, ElementViewRef, ExpressionV2, Expressions, ExtendDeployment, ExtendDeploymentBody, ExtendElement, ExtendElementBody, ExtendElementProperty, FqnExpr, FqnExprOrWhere, FqnExprOrWith, FqnExprWhere, FqnExprWith, FqnExpressions, FqnRef, FqnRefExpr, FqnReferenceable, GlobalDynamicPredicateGroup, GlobalPredicateGroup, GlobalStyle, GlobalStyleGroup, GlobalStyleId, Globals, IconProperty, Imported, ImportsFromPoject, InOutRelationExpr, IncomingRelationExpr, LibIcon, LikeC4Grammar, LikeC4Lib, LikeC4View, LineProperty, LinkProperty, MetadataAttribute, MetadataBody, MetadataProperty, Model, ModelDeployments, ModelReferenceable, ModelViews, MultipleProperty, NavigateToProperty, NotationProperty, NotesProperty, OpacityProperty, OutgoingRelationExpr, PaddingSizeProperty, Referenceable, Relation, RelationBody, RelationExpr, RelationExprOrWhere, RelationExprOrWith, RelationExprWhere, RelationExprWith, RelationKindDotRef, RelationNavigateToProperty, RelationProperty, RelationStringProperty, RelationStyleProperty, RelationshipKind, RelationshipStyleProperty, ShapeProperty, ShapeSizeProperty, SizeProperty, SpecificationColor, SpecificationDeploymentNodeKind, SpecificationElementKind, SpecificationElementStringProperty, SpecificationRelationshipKind, SpecificationRelationshipStringProperty, SpecificationRule, SpecificationTag, StrictFqnElementRef, StrictFqnRef, StringProperty, StyleProperty, Tag, TagRef, Tags, TextSizeProperty, ViewProperty, ViewRef, ViewRule, ViewRuleAutoLayout, ViewRuleGlobalPredicateRef, ViewRuleGlobalStyle, ViewRuleGroup, ViewRulePredicate, ViewRuleStyle, ViewRuleStyleOrGlobalRef, ViewStringProperty, WhereBinaryExpression, WhereElement, WhereElementExpression, WhereElementKind, WhereElementNegation, WhereElementTag, WhereExpression, WhereKindEqual, WhereRelation, WhereRelationExpression, WhereRelationKind, WhereRelationNegation, WhereRelationParticipantKind, WhereRelationParticipantTag, WhereRelationTag, WhereTagEqual, WildcardExpression];
|
|
677
|
+
return [ArrowProperty, BorderProperty, ColorLiteral, ColorProperty, CustomColor, CustomElementProperties, CustomRelationProperties, DeployedInstance, DeployedInstanceBody, DeploymentElement, DeploymentNode, DeploymentNodeBody, DeploymentNodeKind, DeploymentNodeOrElementKind, DeploymentRelation, DeploymentRelationBody, DeploymentView, DeploymentViewBody, DeploymentViewRule, DeploymentViewRulePredicate, DeploymentViewRuleStyle, DirectedRelationExpr, DynamicView, DynamicViewBody, DynamicViewGlobalPredicateRef, DynamicViewIncludePredicate, DynamicViewParallelSteps, DynamicViewRef, DynamicViewRule, DynamicViewStep, Element, ElementBody, ElementKind, ElementKindExpression, ElementProperty, ElementRef, ElementStringProperty, ElementStyleProperty, ElementTagExpression, ElementView, ElementViewBody, ElementViewRef, ExpressionV2, Expressions, ExtendDeployment, ExtendDeploymentBody, ExtendElement, ExtendElementBody, ExtendElementProperty, FqnExpr, FqnExprOrWhere, FqnExprOrWith, FqnExprWhere, FqnExprWith, FqnExpressions, FqnRef, FqnRefExpr, FqnReferenceable, GlobalDynamicPredicateGroup, GlobalPredicateGroup, GlobalStyle, GlobalStyleGroup, GlobalStyleId, Globals, HexColor, IconProperty, Imported, ImportsFromPoject, InOutRelationExpr, IncomingRelationExpr, LibIcon, LikeC4Grammar, LikeC4Lib, LikeC4View, LineProperty, LinkProperty, MetadataAttribute, MetadataBody, MetadataProperty, Model, ModelDeployments, ModelReferenceable, ModelViews, MultipleProperty, NavigateToProperty, NotationProperty, NotesProperty, OpacityProperty, OutgoingRelationExpr, PaddingSizeProperty, RGBAColor, Referenceable, Relation, RelationBody, RelationExpr, RelationExprOrWhere, RelationExprOrWith, RelationExprWhere, RelationExprWith, RelationKindDotRef, RelationNavigateToProperty, RelationProperty, RelationStringProperty, RelationStyleProperty, RelationshipKind, RelationshipStyleProperty, ShapeProperty, ShapeSizeProperty, SizeProperty, SpecificationColor, SpecificationDeploymentNodeKind, SpecificationElementKind, SpecificationElementStringProperty, SpecificationRelationshipKind, SpecificationRelationshipStringProperty, SpecificationRule, SpecificationTag, StrictFqnElementRef, StrictFqnRef, StringProperty, StyleProperty, Tag, TagRef, Tags, TextSizeProperty, ViewProperty, ViewRef, ViewRule, ViewRuleAutoLayout, ViewRuleGlobalPredicateRef, ViewRuleGlobalStyle, ViewRuleGroup, ViewRulePredicate, ViewRuleStyle, ViewRuleStyleOrGlobalRef, ViewStringProperty, WhereBinaryExpression, WhereElement, WhereElementExpression, WhereElementKind, WhereElementNegation, WhereElementTag, WhereExpression, WhereKindEqual, WhereRelation, WhereRelationExpression, WhereRelationKind, WhereRelationNegation, WhereRelationParticipantKind, WhereRelationParticipantTag, WhereRelationTag, WhereTagEqual, WildcardExpression];
|
|
668
678
|
}
|
|
669
679
|
computeIsSubtype(subtype, supertype) {
|
|
670
680
|
switch (subtype) {
|
|
@@ -740,6 +750,10 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
|
740
750
|
case RelationExprOrWith: {
|
|
741
751
|
return this.isSubtype(ExpressionV2, supertype);
|
|
742
752
|
}
|
|
753
|
+
case HexColor:
|
|
754
|
+
case RGBAColor: {
|
|
755
|
+
return this.isSubtype(ColorLiteral, supertype);
|
|
756
|
+
}
|
|
743
757
|
case IconProperty: {
|
|
744
758
|
return this.isSubtype(ElementProperty, supertype) || this.isSubtype(StyleProperty, supertype);
|
|
745
759
|
}
|
|
@@ -1005,6 +1019,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
|
1005
1019
|
name: DeploymentRelation,
|
|
1006
1020
|
properties: [
|
|
1007
1021
|
{ name: "body" },
|
|
1022
|
+
{ name: "description" },
|
|
1008
1023
|
{ name: "dotKind" },
|
|
1009
1024
|
{ name: "kind" },
|
|
1010
1025
|
{ name: "source" },
|
|
@@ -1385,6 +1400,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
|
1385
1400
|
]
|
|
1386
1401
|
};
|
|
1387
1402
|
}
|
|
1403
|
+
case HexColor: {
|
|
1404
|
+
return {
|
|
1405
|
+
name: HexColor,
|
|
1406
|
+
properties: [
|
|
1407
|
+
{ name: "hex" }
|
|
1408
|
+
]
|
|
1409
|
+
};
|
|
1410
|
+
}
|
|
1388
1411
|
case IconProperty: {
|
|
1389
1412
|
return {
|
|
1390
1413
|
name: IconProperty,
|
|
@@ -1593,6 +1616,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
|
1593
1616
|
name: Relation,
|
|
1594
1617
|
properties: [
|
|
1595
1618
|
{ name: "body" },
|
|
1619
|
+
{ name: "description" },
|
|
1596
1620
|
{ name: "dotKind" },
|
|
1597
1621
|
{ name: "kind" },
|
|
1598
1622
|
{ name: "source" },
|
|
@@ -1673,6 +1697,17 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
|
|
|
1673
1697
|
]
|
|
1674
1698
|
};
|
|
1675
1699
|
}
|
|
1700
|
+
case RGBAColor: {
|
|
1701
|
+
return {
|
|
1702
|
+
name: RGBAColor,
|
|
1703
|
+
properties: [
|
|
1704
|
+
{ name: "alpha" },
|
|
1705
|
+
{ name: "blue" },
|
|
1706
|
+
{ name: "green" },
|
|
1707
|
+
{ name: "red" }
|
|
1708
|
+
]
|
|
1709
|
+
};
|
|
1710
|
+
}
|
|
1676
1711
|
case ShapeProperty: {
|
|
1677
1712
|
return {
|
|
1678
1713
|
name: ShapeProperty,
|