@likec4/language-server 1.31.0 → 1.32.1

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 (82) hide show
  1. package/dist/LikeC4LanguageServices.d.ts +2 -1
  2. package/dist/LikeC4LanguageServices.js +4 -3
  3. package/dist/Rpc.js +11 -4
  4. package/dist/ast.d.ts +12 -15
  5. package/dist/ast.js +4 -1
  6. package/dist/bundled.mjs +2545 -2476
  7. package/dist/formatting/LikeC4Formatter.js +7 -6
  8. package/dist/generated/ast.d.ts +60 -19
  9. package/dist/generated/ast.js +79 -24
  10. package/dist/generated/grammar.js +1 -1
  11. package/dist/lsp/CompletionProvider.js +1 -1
  12. package/dist/lsp/DocumentLinkProvider.js +4 -3
  13. package/dist/lsp/HoverProvider.js +9 -1
  14. package/dist/lsp/SemanticTokenProvider.js +18 -4
  15. package/dist/mcp/LikeC4MCPServerFactory.d.ts +5 -2
  16. package/dist/mcp/LikeC4MCPServerFactory.js +2 -72
  17. package/dist/mcp/LikeC4MCPTools.js +5 -3
  18. package/dist/mcp/sseserver/MCPServerFactory.d.ts +8 -0
  19. package/dist/mcp/sseserver/MCPServerFactory.js +78 -0
  20. package/dist/mcp/sseserver/with-mcp-server.d.ts +2 -0
  21. package/dist/mcp/sseserver/with-mcp-server.js +5 -1
  22. package/dist/mcp/utils.d.ts +5 -4
  23. package/dist/mcp/utils.js +2 -2
  24. package/dist/model/builder/MergedExtends.d.ts +4 -4
  25. package/dist/model/builder/MergedExtends.js +1 -1
  26. package/dist/model/builder/MergedSpecification.d.ts +4 -3
  27. package/dist/model/builder/MergedSpecification.js +9 -8
  28. package/dist/model/builder/assignTagColors.d.ts +7 -0
  29. package/dist/model/builder/assignTagColors.js +51 -0
  30. package/dist/model/builder/buildModel.d.ts +2 -2
  31. package/dist/model/builder/buildModel.js +40 -18
  32. package/dist/model/deployments-index.js +2 -2
  33. package/dist/model/fqn-index.d.ts +1 -1
  34. package/dist/model/fqn-index.js +6 -6
  35. package/dist/model/model-builder.d.ts +10 -4
  36. package/dist/model/model-builder.js +22 -19
  37. package/dist/model/model-locator.d.ts +10 -2
  38. package/dist/model/model-locator.js +65 -9
  39. package/dist/model/model-parser-where.d.ts +1 -1
  40. package/dist/model/model-parser-where.js +1 -1
  41. package/dist/model/model-parser.d.ts +19 -11
  42. package/dist/model/model-parser.js +11 -7
  43. package/dist/model/parser/Base.d.ts +1 -0
  44. package/dist/model/parser/Base.js +24 -3
  45. package/dist/model/parser/DeploymentModelParser.d.ts +2 -1
  46. package/dist/model/parser/DeploymentModelParser.js +7 -5
  47. package/dist/model/parser/DeploymentViewParser.d.ts +4 -3
  48. package/dist/model/parser/DeploymentViewParser.js +2 -1
  49. package/dist/model/parser/FqnRefParser.d.ts +2 -1
  50. package/dist/model/parser/FqnRefParser.js +2 -5
  51. package/dist/model/parser/GlobalsParser.d.ts +24 -24
  52. package/dist/model/parser/GlobalsParser.js +4 -4
  53. package/dist/model/parser/ImportsParser.d.ts +1 -0
  54. package/dist/model/parser/ModelParser.d.ts +2 -1
  55. package/dist/model/parser/ModelParser.js +1 -1
  56. package/dist/model/parser/PredicatesParser.d.ts +13 -12
  57. package/dist/model/parser/SpecificationParser.d.ts +6 -2
  58. package/dist/model/parser/SpecificationParser.js +21 -31
  59. package/dist/model/parser/ViewsParser.d.ts +24 -23
  60. package/dist/model/parser/ViewsParser.js +12 -19
  61. package/dist/model-change/changeElementStyle.d.ts +2 -2
  62. package/dist/model-change/changeElementStyle.js +6 -2
  63. package/dist/module.d.ts +1 -1
  64. package/dist/module.js +5 -2
  65. package/dist/protocol.d.ts +24 -3
  66. package/dist/protocol.js +4 -0
  67. package/dist/references/scope-computation.js +2 -3
  68. package/dist/test/testServices.d.ts +15 -0
  69. package/dist/test/testServices.js +1 -1
  70. package/dist/validation/index.d.ts +1 -1
  71. package/dist/validation/index.js +10 -3
  72. package/dist/validation/property-checks.d.ts +1 -0
  73. package/dist/validation/property-checks.js +62 -0
  74. package/dist/validation/relation.js +1 -1
  75. package/dist/validation/specification.js +1 -1
  76. package/dist/view-utils/assignNavigateTo.d.ts +1 -1
  77. package/dist/view-utils/assignNavigateTo.js +3 -3
  78. package/dist/views/likec4-views.d.ts +1 -3
  79. package/dist/views/likec4-views.js +68 -44
  80. package/package.json +23 -21
  81. /package/dist/mcp/sseserver/{SSELikeC4MCPServer.d.ts → MCPServer.d.ts} +0 -0
  82. /package/dist/mcp/sseserver/{SSELikeC4MCPServer.js → MCPServer.js} +0 -0
@@ -1,5 +1,7 @@
1
1
  import { nonexhaustive } from "@likec4/core";
2
- import { GrammarUtils } from "langium";
2
+ import {
3
+ GrammarUtils
4
+ } from "langium";
3
5
  import { AbstractFormatter, Formatting } from "langium/lsp";
4
6
  import { filter, isTruthy } from "remeda";
5
7
  import * as ast from "../generated/ast.js";
@@ -62,7 +64,8 @@ export class LikeC4Formatter extends AbstractFormatter {
62
64
  }
63
65
  formatTags(node) {
64
66
  this.on(node, ast.isTags, (n, f) => {
65
- f.cst(GrammarUtils.findNodesForProperty(n.$cstNode, "values").slice(1)).prepend(FormattingOptions.oneSpace);
67
+ const tags = GrammarUtils.findNodesForProperty(n.$cstNode, "values").filter((x) => x).slice(1);
68
+ f.cst(tags).prepend(FormattingOptions.oneSpace);
66
69
  f.keywords(",").prepend(FormattingOptions.noSpace).append(FormattingOptions.oneSpace);
67
70
  });
68
71
  }
@@ -102,8 +105,7 @@ export class LikeC4Formatter extends AbstractFormatter {
102
105
  );
103
106
  this.on(node, ast.isDynamicViewStep, (n, f) => {
104
107
  f.keywords("->", "<-").surround(FormattingOptions.oneSpace);
105
- const kind = f.property("kind");
106
- kind.nodes[0]?.text.startsWith(".") && kind.surround(FormattingOptions.oneSpace);
108
+ f.property("dotKind").prepend(FormattingOptions.oneSpace).append(FormattingOptions.oneSpace);
107
109
  f.keywords("]->").prepend(FormattingOptions.noSpace).append(FormattingOptions.oneSpace);
108
110
  f.keywords("-[").prepend(FormattingOptions.oneSpace).append(FormattingOptions.noSpace);
109
111
  f.properties("title").prepend(FormattingOptions.oneSpace);
@@ -369,8 +371,7 @@ export class LikeC4Formatter extends AbstractFormatter {
369
371
  f.keywords("->", "<->").prepend(FormattingOptions.oneSpace);
370
372
  f.keywords("-[").prepend(FormattingOptions.oneSpace).append(FormattingOptions.noSpace);
371
373
  f.keywords("]->").prepend(FormattingOptions.noSpace).append(FormattingOptions.oneSpace);
372
- const kind = f.property("kind");
373
- kind.nodes[0]?.text.startsWith(".") && kind.surround(FormattingOptions.oneSpace);
374
+ f.property("dotKind").prepend(FormattingOptions.oneSpace).append(FormattingOptions.oneSpace);
374
375
  });
375
376
  this.on(node, ast.isDirectedRelationExpr, (n, f) => {
376
377
  f.property("target").prepend(FormattingOptions.oneSpace);
@@ -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;
@@ -46,8 +48,6 @@ export declare function isDeploymentNodeOrElementKind(item: unknown): item is De
46
48
  export type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
47
49
  export declare const DeploymentViewRule = "DeploymentViewRule";
48
50
  export declare function isDeploymentViewRule(item: unknown): item is DeploymentViewRule;
49
- export type DotId = string;
50
- export declare function isDotId(item: unknown): item is DotId;
51
51
  export type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
52
52
  export declare const DynamicViewRule = "DynamicViewRule";
53
53
  export declare function isDynamicViewRule(item: unknown): item is DynamicViewRule;
@@ -120,8 +120,6 @@ export declare function isStringProperty(item: unknown): item is StringProperty;
120
120
  export type StyleProperty = BorderProperty | ColorProperty | IconProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
121
121
  export declare const StyleProperty = "StyleProperty";
122
122
  export declare function isStyleProperty(item: unknown): item is StyleProperty;
123
- export type TagId = string;
124
- export declare function isTagId(item: unknown): item is TagId;
125
123
  export type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
126
124
  export declare function isThemeColor(item: unknown): item is ThemeColor;
127
125
  export type Uri = string;
@@ -253,6 +251,7 @@ export interface DeploymentRelation extends langium.AstNode {
253
251
  readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
254
252
  readonly $type: 'DeploymentRelation';
255
253
  body?: DeploymentRelationBody;
254
+ dotKind?: RelationKindDotRef;
256
255
  kind?: langium.Reference<RelationshipKind>;
257
256
  source?: FqnRef;
258
257
  tags?: Tags;
@@ -361,6 +360,7 @@ export interface DynamicViewStep extends langium.AstNode {
361
360
  readonly $container: DynamicViewBody | DynamicViewParallelSteps;
362
361
  readonly $type: 'DynamicViewStep';
363
362
  custom?: CustomRelationProperties;
363
+ dotKind?: RelationKindDotRef;
364
364
  isBackward: boolean;
365
365
  kind?: langium.Reference<RelationshipKind>;
366
366
  source: ElementRef;
@@ -399,7 +399,7 @@ export interface ElementKindExpression extends langium.AstNode {
399
399
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
400
400
  readonly $type: 'ElementKindExpression';
401
401
  isEqual: boolean;
402
- kind?: langium.Reference<ElementKind>;
402
+ kind: langium.Reference<ElementKind>;
403
403
  }
404
404
  export declare const ElementKindExpression = "ElementKindExpression";
405
405
  export declare function isElementKindExpression(item: unknown): item is ElementKindExpression;
@@ -430,7 +430,7 @@ export interface ElementTagExpression extends langium.AstNode {
430
430
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
431
431
  readonly $type: 'ElementTagExpression';
432
432
  isEqual: boolean;
433
- tag?: langium.Reference<Tag>;
433
+ tag: TagRef;
434
434
  }
435
435
  export declare const ElementTagExpression = "ElementTagExpression";
436
436
  export declare function isElementTagExpression(item: unknown): item is ElementTagExpression;
@@ -591,6 +591,13 @@ export interface GlobalStyleId extends langium.AstNode {
591
591
  }
592
592
  export declare const GlobalStyleId = "GlobalStyleId";
593
593
  export declare function isGlobalStyleId(item: unknown): item is GlobalStyleId;
594
+ export interface HexColor extends langium.AstNode {
595
+ readonly $container: SpecificationColor | SpecificationTag;
596
+ readonly $type: 'HexColor';
597
+ hex: number | string;
598
+ }
599
+ export declare const HexColor = "HexColor";
600
+ export declare function isHexColor(item: unknown): item is HexColor;
594
601
  export interface IconProperty extends langium.AstNode {
595
602
  readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | DeploymentViewRuleStyle | ElementBody | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
596
603
  readonly $type: 'IconProperty';
@@ -756,6 +763,7 @@ export declare function isOpacityProperty(item: unknown): item is OpacityPropert
756
763
  export interface OutgoingRelationExpr extends langium.AstNode {
757
764
  readonly $container: DirectedRelationExpr | Expressions | RelationExprWhere | RelationExprWith;
758
765
  readonly $type: 'OutgoingRelationExpr';
766
+ dotKind?: RelationKindDotRef;
759
767
  from: FqnExpr;
760
768
  isBidirectional: boolean;
761
769
  kind?: langium.Reference<RelationshipKind>;
@@ -774,6 +782,7 @@ export interface Relation extends langium.AstNode {
774
782
  readonly $container: ElementBody | ExtendElementBody | Model;
775
783
  readonly $type: 'Relation';
776
784
  body?: RelationBody;
785
+ dotKind?: RelationKindDotRef;
777
786
  kind?: langium.Reference<RelationshipKind>;
778
787
  source?: FqnRef;
779
788
  tags?: Tags;
@@ -807,6 +816,13 @@ export interface RelationExprWith extends langium.AstNode {
807
816
  }
808
817
  export declare const RelationExprWith = "RelationExprWith";
809
818
  export declare function isRelationExprWith(item: unknown): item is RelationExprWith;
819
+ export interface RelationKindDotRef extends langium.AstNode {
820
+ readonly $container: DeploymentRelation | DynamicViewStep | OutgoingRelationExpr | Relation;
821
+ readonly $type: 'RelationKindDotRef';
822
+ kind: langium.Reference<RelationshipKind>;
823
+ }
824
+ export declare const RelationKindDotRef = "RelationKindDotRef";
825
+ export declare function isRelationKindDotRef(item: unknown): item is RelationKindDotRef;
810
826
  export interface RelationNavigateToProperty extends langium.AstNode {
811
827
  readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
812
828
  readonly $type: 'RelationNavigateToProperty';
@@ -838,6 +854,16 @@ export interface RelationStyleProperty extends langium.AstNode {
838
854
  }
839
855
  export declare const RelationStyleProperty = "RelationStyleProperty";
840
856
  export declare function isRelationStyleProperty(item: unknown): item is RelationStyleProperty;
857
+ export interface RGBAColor extends langium.AstNode {
858
+ readonly $container: SpecificationColor | SpecificationTag;
859
+ readonly $type: 'RGBAColor';
860
+ alpha?: number | string;
861
+ blue: number;
862
+ green: number;
863
+ red: number;
864
+ }
865
+ export declare const RGBAColor = "RGBAColor";
866
+ export declare function isRGBAColor(item: unknown): item is RGBAColor;
841
867
  export interface ShapeProperty extends langium.AstNode {
842
868
  readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
843
869
  readonly $type: 'ShapeProperty';
@@ -857,7 +883,7 @@ export declare function isShapeSizeProperty(item: unknown): item is ShapeSizePro
857
883
  export interface SpecificationColor extends langium.AstNode {
858
884
  readonly $container: SpecificationRule;
859
885
  readonly $type: 'SpecificationColor';
860
- color: CustomColorValue;
886
+ color: ColorLiteral;
861
887
  name: CustomColor;
862
888
  }
863
889
  export declare const SpecificationColor = "SpecificationColor";
@@ -867,6 +893,7 @@ export interface SpecificationDeploymentNodeKind extends langium.AstNode {
867
893
  readonly $type: 'SpecificationDeploymentNodeKind';
868
894
  kind: DeploymentNodeKind;
869
895
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
896
+ tags?: Tags;
870
897
  }
871
898
  export declare const SpecificationDeploymentNodeKind = "SpecificationDeploymentNodeKind";
872
899
  export declare function isSpecificationDeploymentNodeKind(item: unknown): item is SpecificationDeploymentNodeKind;
@@ -875,6 +902,7 @@ export interface SpecificationElementKind extends langium.AstNode {
875
902
  readonly $type: 'SpecificationElementKind';
876
903
  kind: ElementKind;
877
904
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
905
+ tags?: Tags;
878
906
  }
879
907
  export declare const SpecificationElementKind = "SpecificationElementKind";
880
908
  export declare function isSpecificationElementKind(item: unknown): item is SpecificationElementKind;
@@ -917,6 +945,7 @@ export declare function isSpecificationRule(item: unknown): item is Specificatio
917
945
  export interface SpecificationTag extends langium.AstNode {
918
946
  readonly $container: SpecificationRule;
919
947
  readonly $type: 'SpecificationTag';
948
+ color?: ColorLiteral;
920
949
  tag: Tag;
921
950
  }
922
951
  export declare const SpecificationTag = "SpecificationTag";
@@ -944,11 +973,18 @@ export interface Tag extends langium.AstNode {
944
973
  }
945
974
  export declare const Tag = "Tag";
946
975
  export declare function isTag(item: unknown): item is Tag;
976
+ export interface TagRef extends langium.AstNode {
977
+ readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
978
+ readonly $type: 'TagRef';
979
+ tag: langium.Reference<Tag>;
980
+ }
981
+ export declare const TagRef = "TagRef";
982
+ export declare function isTagRef(item: unknown): item is TagRef;
947
983
  export interface Tags extends langium.AstNode {
948
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | Tags;
984
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | Tags;
949
985
  readonly $type: 'Tags';
950
986
  prev?: Tags;
951
- values: Array<langium.Reference<Tag>>;
987
+ values: Array<TagRef>;
952
988
  }
953
989
  export declare const Tags = "Tags";
954
990
  export declare function isTags(item: unknown): item is Tags;
@@ -1037,7 +1073,7 @@ export interface WhereElementKind extends langium.AstNode {
1037
1073
  readonly $type: 'WhereElementKind';
1038
1074
  not: boolean;
1039
1075
  operator: 'is' | string;
1040
- value?: langium.Reference<DeploymentNodeOrElementKind>;
1076
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1041
1077
  }
1042
1078
  export declare const WhereElementKind = "WhereElementKind";
1043
1079
  export declare function isWhereElementKind(item: unknown): item is WhereElementKind;
@@ -1053,7 +1089,7 @@ export interface WhereElementTag extends langium.AstNode {
1053
1089
  readonly $type: 'WhereElementTag';
1054
1090
  not: boolean;
1055
1091
  operator: 'is' | string;
1056
- value?: langium.Reference<Tag>;
1092
+ value: TagRef;
1057
1093
  }
1058
1094
  export declare const WhereElementTag = "WhereElementTag";
1059
1095
  export declare function isWhereElementTag(item: unknown): item is WhereElementTag;
@@ -1062,7 +1098,7 @@ export interface WhereRelationKind extends langium.AstNode {
1062
1098
  readonly $type: 'WhereRelationKind';
1063
1099
  not: boolean;
1064
1100
  operator: 'is' | string;
1065
- value?: langium.Reference<RelationshipKind>;
1101
+ value: langium.Reference<RelationshipKind>;
1066
1102
  }
1067
1103
  export declare const WhereRelationKind = "WhereRelationKind";
1068
1104
  export declare function isWhereRelationKind(item: unknown): item is WhereRelationKind;
@@ -1079,7 +1115,7 @@ export interface WhereRelationParticipantKind extends langium.AstNode {
1079
1115
  not: boolean;
1080
1116
  operator: 'is' | string;
1081
1117
  participant: Participant;
1082
- value?: langium.Reference<DeploymentNodeOrElementKind>;
1118
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1083
1119
  }
1084
1120
  export declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
1085
1121
  export declare function isWhereRelationParticipantKind(item: unknown): item is WhereRelationParticipantKind;
@@ -1089,7 +1125,7 @@ export interface WhereRelationParticipantTag extends langium.AstNode {
1089
1125
  not: boolean;
1090
1126
  operator: 'is' | string;
1091
1127
  participant: Participant;
1092
- value?: langium.Reference<Tag>;
1128
+ value: TagRef;
1093
1129
  }
1094
1130
  export declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1095
1131
  export declare function isWhereRelationParticipantTag(item: unknown): item is WhereRelationParticipantTag;
@@ -1098,7 +1134,7 @@ export interface WhereRelationTag extends langium.AstNode {
1098
1134
  readonly $type: 'WhereRelationTag';
1099
1135
  not: boolean;
1100
1136
  operator: 'is' | string;
1101
- value?: langium.Reference<Tag>;
1137
+ value: TagRef;
1102
1138
  }
1103
1139
  export declare const WhereRelationTag = "WhereRelationTag";
1104
1140
  export declare function isWhereRelationTag(item: unknown): item is WhereRelationTag;
@@ -1112,6 +1148,7 @@ export declare function isWildcardExpression(item: unknown): item is WildcardExp
1112
1148
  export type LikeC4AstType = {
1113
1149
  ArrowProperty: ArrowProperty;
1114
1150
  BorderProperty: BorderProperty;
1151
+ ColorLiteral: ColorLiteral;
1115
1152
  ColorProperty: ColorProperty;
1116
1153
  CustomColor: CustomColor;
1117
1154
  CustomElementProperties: CustomElementProperties;
@@ -1173,6 +1210,7 @@ export type LikeC4AstType = {
1173
1210
  GlobalStyleGroup: GlobalStyleGroup;
1174
1211
  GlobalStyleId: GlobalStyleId;
1175
1212
  Globals: Globals;
1213
+ HexColor: HexColor;
1176
1214
  IconProperty: IconProperty;
1177
1215
  Imported: Imported;
1178
1216
  ImportsFromPoject: ImportsFromPoject;
@@ -1198,6 +1236,7 @@ export type LikeC4AstType = {
1198
1236
  OpacityProperty: OpacityProperty;
1199
1237
  OutgoingRelationExpr: OutgoingRelationExpr;
1200
1238
  PaddingSizeProperty: PaddingSizeProperty;
1239
+ RGBAColor: RGBAColor;
1201
1240
  Referenceable: Referenceable;
1202
1241
  Relation: Relation;
1203
1242
  RelationBody: RelationBody;
@@ -1206,6 +1245,7 @@ export type LikeC4AstType = {
1206
1245
  RelationExprOrWith: RelationExprOrWith;
1207
1246
  RelationExprWhere: RelationExprWhere;
1208
1247
  RelationExprWith: RelationExprWith;
1248
+ RelationKindDotRef: RelationKindDotRef;
1209
1249
  RelationNavigateToProperty: RelationNavigateToProperty;
1210
1250
  RelationProperty: RelationProperty;
1211
1251
  RelationStringProperty: RelationStringProperty;
@@ -1228,6 +1268,7 @@ export type LikeC4AstType = {
1228
1268
  StringProperty: StringProperty;
1229
1269
  StyleProperty: StyleProperty;
1230
1270
  Tag: Tag;
1271
+ TagRef: TagRef;
1231
1272
  Tags: Tags;
1232
1273
  TextSizeProperty: TextSizeProperty;
1233
1274
  ViewProperty: ViewProperty;
@@ -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) {
@@ -47,9 +49,6 @@ export const DeploymentViewRule = "DeploymentViewRule";
47
49
  export function isDeploymentViewRule(item) {
48
50
  return reflection.isInstance(item, DeploymentViewRule);
49
51
  }
50
- export function isDotId(item) {
51
- return typeof item === "string";
52
- }
53
52
  export const DynamicViewRule = "DynamicViewRule";
54
53
  export function isDynamicViewRule(item) {
55
54
  return reflection.isInstance(item, DynamicViewRule);
@@ -89,7 +88,7 @@ export function isIconId(item) {
89
88
  return typeof item === "string" && /(aws|azure|gcp|tech):[-\w]*/.test(item);
90
89
  }
91
90
  export function isId(item) {
92
- 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));
93
92
  }
94
93
  export const LikeC4View = "LikeC4View";
95
94
  export function isLikeC4View(item) {
@@ -148,9 +147,6 @@ export const StyleProperty = "StyleProperty";
148
147
  export function isStyleProperty(item) {
149
148
  return reflection.isInstance(item, StyleProperty);
150
149
  }
151
- export function isTagId(item) {
152
- return typeof item === "string";
153
- }
154
150
  export function isThemeColor(item) {
155
151
  return item === "primary" || item === "secondary" || item === "muted" || item === "slate" || item === "blue" || item === "indigo" || item === "sky" || item === "red" || item === "gray" || item === "green" || item === "amber";
156
152
  }
@@ -408,6 +404,10 @@ export const GlobalStyleId = "GlobalStyleId";
408
404
  export function isGlobalStyleId(item) {
409
405
  return reflection.isInstance(item, GlobalStyleId);
410
406
  }
407
+ export const HexColor = "HexColor";
408
+ export function isHexColor(item) {
409
+ return reflection.isInstance(item, HexColor);
410
+ }
411
411
  export const IconProperty = "IconProperty";
412
412
  export function isIconProperty(item) {
413
413
  return reflection.isInstance(item, IconProperty);
@@ -512,6 +512,10 @@ export const RelationExprWith = "RelationExprWith";
512
512
  export function isRelationExprWith(item) {
513
513
  return reflection.isInstance(item, RelationExprWith);
514
514
  }
515
+ export const RelationKindDotRef = "RelationKindDotRef";
516
+ export function isRelationKindDotRef(item) {
517
+ return reflection.isInstance(item, RelationKindDotRef);
518
+ }
515
519
  export const RelationNavigateToProperty = "RelationNavigateToProperty";
516
520
  export function isRelationNavigateToProperty(item) {
517
521
  return reflection.isInstance(item, RelationNavigateToProperty);
@@ -528,6 +532,10 @@ export const RelationStyleProperty = "RelationStyleProperty";
528
532
  export function isRelationStyleProperty(item) {
529
533
  return reflection.isInstance(item, RelationStyleProperty);
530
534
  }
535
+ export const RGBAColor = "RGBAColor";
536
+ export function isRGBAColor(item) {
537
+ return reflection.isInstance(item, RGBAColor);
538
+ }
531
539
  export const ShapeProperty = "ShapeProperty";
532
540
  export function isShapeProperty(item) {
533
541
  return reflection.isInstance(item, ShapeProperty);
@@ -580,6 +588,10 @@ export const Tag = "Tag";
580
588
  export function isTag(item) {
581
589
  return reflection.isInstance(item, Tag);
582
590
  }
591
+ export const TagRef = "TagRef";
592
+ export function isTagRef(item) {
593
+ return reflection.isInstance(item, TagRef);
594
+ }
583
595
  export const Tags = "Tags";
584
596
  export function isTags(item) {
585
597
  return reflection.isInstance(item, Tags);
@@ -662,7 +674,7 @@ export function isWildcardExpression(item) {
662
674
  }
663
675
  export class LikeC4AstReflection extends langium.AbstractAstReflection {
664
676
  getAllTypes() {
665
- 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, RelationNavigateToProperty, RelationProperty, RelationStringProperty, RelationStyleProperty, RelationshipKind, RelationshipStyleProperty, ShapeProperty, ShapeSizeProperty, SizeProperty, SpecificationColor, SpecificationDeploymentNodeKind, SpecificationElementKind, SpecificationElementStringProperty, SpecificationRelationshipKind, SpecificationRelationshipStringProperty, SpecificationRule, SpecificationTag, StrictFqnElementRef, StrictFqnRef, StringProperty, StyleProperty, Tag, 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];
666
678
  }
667
679
  computeIsSubtype(subtype, supertype) {
668
680
  switch (subtype) {
@@ -738,6 +750,10 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
738
750
  case RelationExprOrWith: {
739
751
  return this.isSubtype(ExpressionV2, supertype);
740
752
  }
753
+ case HexColor:
754
+ case RGBAColor: {
755
+ return this.isSubtype(ColorLiteral, supertype);
756
+ }
741
757
  case IconProperty: {
742
758
  return this.isSubtype(ElementProperty, supertype) || this.isSubtype(StyleProperty, supertype);
743
759
  }
@@ -845,6 +861,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
845
861
  case "DynamicViewStep:kind":
846
862
  case "OutgoingRelationExpr:kind":
847
863
  case "Relation:kind":
864
+ case "RelationKindDotRef:kind":
848
865
  case "WhereRelationKind:value": {
849
866
  return RelationshipKind;
850
867
  }
@@ -858,13 +875,6 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
858
875
  case "ElementKindExpression:kind": {
859
876
  return ElementKind;
860
877
  }
861
- case "ElementTagExpression:tag":
862
- case "Tags:values":
863
- case "WhereElementTag:value":
864
- case "WhereRelationParticipantTag:value":
865
- case "WhereRelationTag:value": {
866
- return Tag;
867
- }
868
878
  case "ElementViewRef:view": {
869
879
  return ElementView;
870
880
  }
@@ -879,6 +889,9 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
879
889
  case "StrictFqnElementRef:el": {
880
890
  return Element;
881
891
  }
892
+ case "TagRef:tag": {
893
+ return Tag;
894
+ }
882
895
  case "ViewRef:view": {
883
896
  return LikeC4View;
884
897
  }
@@ -1006,6 +1019,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1006
1019
  name: DeploymentRelation,
1007
1020
  properties: [
1008
1021
  { name: "body" },
1022
+ { name: "dotKind" },
1009
1023
  { name: "kind" },
1010
1024
  { name: "source" },
1011
1025
  { name: "tags" },
@@ -1127,6 +1141,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1127
1141
  name: DynamicViewStep,
1128
1142
  properties: [
1129
1143
  { name: "custom" },
1144
+ { name: "dotKind" },
1130
1145
  { name: "isBackward", defaultValue: false },
1131
1146
  { name: "kind" },
1132
1147
  { name: "source" },
@@ -1384,6 +1399,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1384
1399
  ]
1385
1400
  };
1386
1401
  }
1402
+ case HexColor: {
1403
+ return {
1404
+ name: HexColor,
1405
+ properties: [
1406
+ { name: "hex" }
1407
+ ]
1408
+ };
1409
+ }
1387
1410
  case IconProperty: {
1388
1411
  return {
1389
1412
  name: IconProperty,
@@ -1571,6 +1594,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1571
1594
  return {
1572
1595
  name: OutgoingRelationExpr,
1573
1596
  properties: [
1597
+ { name: "dotKind" },
1574
1598
  { name: "from" },
1575
1599
  { name: "isBidirectional", defaultValue: false },
1576
1600
  { name: "kind" }
@@ -1591,6 +1615,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1591
1615
  name: Relation,
1592
1616
  properties: [
1593
1617
  { name: "body" },
1618
+ { name: "dotKind" },
1594
1619
  { name: "kind" },
1595
1620
  { name: "source" },
1596
1621
  { name: "tags" },
@@ -1627,6 +1652,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1627
1652
  ]
1628
1653
  };
1629
1654
  }
1655
+ case RelationKindDotRef: {
1656
+ return {
1657
+ name: RelationKindDotRef,
1658
+ properties: [
1659
+ { name: "kind" }
1660
+ ]
1661
+ };
1662
+ }
1630
1663
  case RelationNavigateToProperty: {
1631
1664
  return {
1632
1665
  name: RelationNavigateToProperty,
@@ -1662,6 +1695,17 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1662
1695
  ]
1663
1696
  };
1664
1697
  }
1698
+ case RGBAColor: {
1699
+ return {
1700
+ name: RGBAColor,
1701
+ properties: [
1702
+ { name: "alpha" },
1703
+ { name: "blue" },
1704
+ { name: "green" },
1705
+ { name: "red" }
1706
+ ]
1707
+ };
1708
+ }
1665
1709
  case ShapeProperty: {
1666
1710
  return {
1667
1711
  name: ShapeProperty,
@@ -1694,7 +1738,8 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1694
1738
  name: SpecificationDeploymentNodeKind,
1695
1739
  properties: [
1696
1740
  { name: "kind" },
1697
- { name: "props", defaultValue: [] }
1741
+ { name: "props", defaultValue: [] },
1742
+ { name: "tags" }
1698
1743
  ]
1699
1744
  };
1700
1745
  }
@@ -1703,7 +1748,8 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1703
1748
  name: SpecificationElementKind,
1704
1749
  properties: [
1705
1750
  { name: "kind" },
1706
- { name: "props", defaultValue: [] }
1751
+ { name: "props", defaultValue: [] },
1752
+ { name: "tags" }
1707
1753
  ]
1708
1754
  };
1709
1755
  }
@@ -1751,6 +1797,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1751
1797
  return {
1752
1798
  name: SpecificationTag,
1753
1799
  properties: [
1800
+ { name: "color" },
1754
1801
  { name: "tag" }
1755
1802
  ]
1756
1803
  };
@@ -1781,6 +1828,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1781
1828
  ]
1782
1829
  };
1783
1830
  }
1831
+ case TagRef: {
1832
+ return {
1833
+ name: TagRef,
1834
+ properties: [
1835
+ { name: "tag" }
1836
+ ]
1837
+ };
1838
+ }
1784
1839
  case Tags: {
1785
1840
  return {
1786
1841
  name: Tags,