@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.
Files changed (45) hide show
  1. package/dist/ast.d.ts +1 -0
  2. package/dist/ast.js +4 -1
  3. package/dist/bundled.mjs +2314 -2312
  4. package/dist/config/schema.d.ts +2 -2
  5. package/dist/config/schema.js +8 -11
  6. package/dist/formatting/LikeC4Formatter.js +2 -2
  7. package/dist/generated/ast.d.ts +30 -6
  8. package/dist/generated/ast.js +44 -9
  9. package/dist/generated/grammar.js +1 -1
  10. package/dist/mcp/LikeC4MCPServerFactory.d.ts +4 -0
  11. package/dist/mcp/LikeC4MCPServerFactory.js +6 -0
  12. package/dist/mcp/sseserver/MCPServer.d.ts +4 -2
  13. package/dist/mcp/sseserver/MCPServer.js +12 -6
  14. package/dist/mcp/sseserver/with-mcp-server.js +22 -6
  15. package/dist/model/model-builder.js +20 -19
  16. package/dist/model/model-parser.d.ts +9 -0
  17. package/dist/model/parser/Base.d.ts +1 -0
  18. package/dist/model/parser/Base.js +22 -0
  19. package/dist/model/parser/DeploymentModelParser.d.ts +1 -0
  20. package/dist/model/parser/DeploymentModelParser.js +7 -5
  21. package/dist/model/parser/DeploymentViewParser.d.ts +1 -0
  22. package/dist/model/parser/FqnRefParser.d.ts +1 -0
  23. package/dist/model/parser/GlobalsParser.d.ts +1 -0
  24. package/dist/model/parser/ImportsParser.d.ts +1 -0
  25. package/dist/model/parser/ModelParser.d.ts +1 -0
  26. package/dist/model/parser/ModelParser.js +7 -5
  27. package/dist/model/parser/PredicatesParser.d.ts +1 -0
  28. package/dist/model/parser/SpecificationParser.d.ts +1 -0
  29. package/dist/model/parser/SpecificationParser.js +4 -2
  30. package/dist/model/parser/ViewsParser.d.ts +1 -0
  31. package/dist/module.d.ts +2 -2
  32. package/dist/module.js +4 -4
  33. package/dist/utils/index.d.ts +5 -0
  34. package/dist/utils/index.js +19 -0
  35. package/dist/validation/index.d.ts +1 -1
  36. package/dist/validation/index.js +10 -3
  37. package/dist/validation/property-checks.d.ts +1 -0
  38. package/dist/validation/property-checks.js +62 -0
  39. package/dist/views/configurable-layouter.d.ts +2 -2
  40. package/dist/views/configurable-layouter.js +4 -2
  41. package/dist/views/likec4-views.d.ts +2 -3
  42. package/dist/views/likec4-views.js +29 -50
  43. package/dist/workspace/ProjectsManager.d.ts +0 -1
  44. package/dist/workspace/ProjectsManager.js +15 -4
  45. package/package.json +16 -16
@@ -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.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>]>, v.DescriptionAction<string, "Project name, must be unique in the workspace">]>;
4
- readonly contactPerson: v.OptionalSchema<v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>]>, v.DescriptionAction<string, "A person who has been involved in creating or maintaining this project">]>, undefined>;
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>;
@@ -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
- nonEmptyString,
7
- // TODO: check if this is needed
8
- // v.excludes('.', 'Project name cannot contain "."'),
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
- nonEmptyString,
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) => {
@@ -20,12 +20,13 @@ export declare const LikeC4Terminals: {
20
20
  Eq: RegExp;
21
21
  Percent: RegExp;
22
22
  String: RegExp;
23
- IdTerminal: RegExp;
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: CustomColorValue;
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?: CustomColorValue;
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;
@@ -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
- IdTerminal: /[_]*[a-zA-Z][-\w]*/,
18
+ String: /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/,
19
+ Float: /\b\d+\.\d+\b/,
20
20
  Number: /\b\d+\b/,
21
- Hex: /\b[a-zA-Z0-9]+\b/
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 function isCustomColorId(item) {
33
- return isElementShape(item) || isArrowType(item) || isLineOptions(item) || item === "element" || item === "model" || typeof item === "string" && /[_]*[a-zA-Z][-\w]*/.test(item);
33
+ export const ColorLiteral = "ColorLiteral";
34
+ export function isColorLiteral(item) {
35
+ return reflection.isInstance(item, ColorLiteral);
34
36
  }
35
- export function isCustomColorValue(item) {
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,