@likec4/language-server 1.31.0 → 1.32.0

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 (75) 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 +11 -15
  5. package/dist/bundled.mjs +2539 -2476
  6. package/dist/formatting/LikeC4Formatter.js +7 -6
  7. package/dist/generated/ast.d.ts +33 -14
  8. package/dist/generated/ast.js +38 -16
  9. package/dist/generated/grammar.js +1 -1
  10. package/dist/lsp/CompletionProvider.js +1 -1
  11. package/dist/lsp/DocumentLinkProvider.js +4 -3
  12. package/dist/lsp/HoverProvider.js +9 -1
  13. package/dist/lsp/SemanticTokenProvider.js +18 -4
  14. package/dist/mcp/LikeC4MCPServerFactory.d.ts +5 -2
  15. package/dist/mcp/LikeC4MCPServerFactory.js +2 -72
  16. package/dist/mcp/LikeC4MCPTools.js +5 -3
  17. package/dist/mcp/sseserver/MCPServerFactory.d.ts +8 -0
  18. package/dist/mcp/sseserver/MCPServerFactory.js +78 -0
  19. package/dist/mcp/sseserver/with-mcp-server.d.ts +2 -0
  20. package/dist/mcp/sseserver/with-mcp-server.js +5 -1
  21. package/dist/mcp/utils.d.ts +5 -4
  22. package/dist/mcp/utils.js +2 -2
  23. package/dist/model/builder/MergedExtends.d.ts +4 -4
  24. package/dist/model/builder/MergedExtends.js +1 -1
  25. package/dist/model/builder/MergedSpecification.d.ts +4 -3
  26. package/dist/model/builder/MergedSpecification.js +9 -8
  27. package/dist/model/builder/assignTagColors.d.ts +7 -0
  28. package/dist/model/builder/assignTagColors.js +51 -0
  29. package/dist/model/builder/buildModel.d.ts +2 -2
  30. package/dist/model/builder/buildModel.js +40 -18
  31. package/dist/model/deployments-index.js +2 -2
  32. package/dist/model/fqn-index.d.ts +1 -1
  33. package/dist/model/fqn-index.js +6 -6
  34. package/dist/model/model-builder.d.ts +10 -4
  35. package/dist/model/model-builder.js +22 -19
  36. package/dist/model/model-locator.d.ts +10 -2
  37. package/dist/model/model-locator.js +65 -9
  38. package/dist/model/model-parser-where.d.ts +1 -1
  39. package/dist/model/model-parser-where.js +1 -1
  40. package/dist/model/model-parser.d.ts +10 -11
  41. package/dist/model/model-parser.js +11 -7
  42. package/dist/model/parser/Base.js +2 -3
  43. package/dist/model/parser/DeploymentModelParser.d.ts +1 -1
  44. package/dist/model/parser/DeploymentModelParser.js +7 -5
  45. package/dist/model/parser/DeploymentViewParser.d.ts +3 -3
  46. package/dist/model/parser/DeploymentViewParser.js +2 -1
  47. package/dist/model/parser/FqnRefParser.d.ts +1 -1
  48. package/dist/model/parser/FqnRefParser.js +2 -5
  49. package/dist/model/parser/GlobalsParser.d.ts +23 -24
  50. package/dist/model/parser/GlobalsParser.js +4 -4
  51. package/dist/model/parser/ModelParser.d.ts +1 -1
  52. package/dist/model/parser/ModelParser.js +1 -1
  53. package/dist/model/parser/PredicatesParser.d.ts +12 -12
  54. package/dist/model/parser/SpecificationParser.d.ts +5 -2
  55. package/dist/model/parser/SpecificationParser.js +18 -30
  56. package/dist/model/parser/ViewsParser.d.ts +23 -23
  57. package/dist/model/parser/ViewsParser.js +12 -19
  58. package/dist/model-change/changeElementStyle.d.ts +2 -2
  59. package/dist/model-change/changeElementStyle.js +6 -2
  60. package/dist/module.d.ts +1 -1
  61. package/dist/module.js +5 -2
  62. package/dist/protocol.d.ts +24 -3
  63. package/dist/protocol.js +4 -0
  64. package/dist/references/scope-computation.js +2 -3
  65. package/dist/test/testServices.d.ts +15 -0
  66. package/dist/test/testServices.js +1 -1
  67. package/dist/validation/relation.js +1 -1
  68. package/dist/validation/specification.js +1 -1
  69. package/dist/view-utils/assignNavigateTo.d.ts +1 -1
  70. package/dist/view-utils/assignNavigateTo.js +3 -3
  71. package/dist/views/likec4-views.d.ts +1 -3
  72. package/dist/views/likec4-views.js +68 -44
  73. package/package.json +21 -19
  74. /package/dist/mcp/sseserver/{SSELikeC4MCPServer.d.ts → MCPServer.d.ts} +0 -0
  75. /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);
@@ -46,8 +46,6 @@ export declare function isDeploymentNodeOrElementKind(item: unknown): item is De
46
46
  export type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
47
47
  export declare const DeploymentViewRule = "DeploymentViewRule";
48
48
  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
49
  export type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
52
50
  export declare const DynamicViewRule = "DynamicViewRule";
53
51
  export declare function isDynamicViewRule(item: unknown): item is DynamicViewRule;
@@ -120,8 +118,6 @@ export declare function isStringProperty(item: unknown): item is StringProperty;
120
118
  export type StyleProperty = BorderProperty | ColorProperty | IconProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
121
119
  export declare const StyleProperty = "StyleProperty";
122
120
  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
121
  export type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
126
122
  export declare function isThemeColor(item: unknown): item is ThemeColor;
127
123
  export type Uri = string;
@@ -253,6 +249,7 @@ export interface DeploymentRelation extends langium.AstNode {
253
249
  readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
254
250
  readonly $type: 'DeploymentRelation';
255
251
  body?: DeploymentRelationBody;
252
+ dotKind?: RelationKindDotRef;
256
253
  kind?: langium.Reference<RelationshipKind>;
257
254
  source?: FqnRef;
258
255
  tags?: Tags;
@@ -361,6 +358,7 @@ export interface DynamicViewStep extends langium.AstNode {
361
358
  readonly $container: DynamicViewBody | DynamicViewParallelSteps;
362
359
  readonly $type: 'DynamicViewStep';
363
360
  custom?: CustomRelationProperties;
361
+ dotKind?: RelationKindDotRef;
364
362
  isBackward: boolean;
365
363
  kind?: langium.Reference<RelationshipKind>;
366
364
  source: ElementRef;
@@ -399,7 +397,7 @@ export interface ElementKindExpression extends langium.AstNode {
399
397
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
400
398
  readonly $type: 'ElementKindExpression';
401
399
  isEqual: boolean;
402
- kind?: langium.Reference<ElementKind>;
400
+ kind: langium.Reference<ElementKind>;
403
401
  }
404
402
  export declare const ElementKindExpression = "ElementKindExpression";
405
403
  export declare function isElementKindExpression(item: unknown): item is ElementKindExpression;
@@ -430,7 +428,7 @@ export interface ElementTagExpression extends langium.AstNode {
430
428
  readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
431
429
  readonly $type: 'ElementTagExpression';
432
430
  isEqual: boolean;
433
- tag?: langium.Reference<Tag>;
431
+ tag: TagRef;
434
432
  }
435
433
  export declare const ElementTagExpression = "ElementTagExpression";
436
434
  export declare function isElementTagExpression(item: unknown): item is ElementTagExpression;
@@ -756,6 +754,7 @@ export declare function isOpacityProperty(item: unknown): item is OpacityPropert
756
754
  export interface OutgoingRelationExpr extends langium.AstNode {
757
755
  readonly $container: DirectedRelationExpr | Expressions | RelationExprWhere | RelationExprWith;
758
756
  readonly $type: 'OutgoingRelationExpr';
757
+ dotKind?: RelationKindDotRef;
759
758
  from: FqnExpr;
760
759
  isBidirectional: boolean;
761
760
  kind?: langium.Reference<RelationshipKind>;
@@ -774,6 +773,7 @@ export interface Relation extends langium.AstNode {
774
773
  readonly $container: ElementBody | ExtendElementBody | Model;
775
774
  readonly $type: 'Relation';
776
775
  body?: RelationBody;
776
+ dotKind?: RelationKindDotRef;
777
777
  kind?: langium.Reference<RelationshipKind>;
778
778
  source?: FqnRef;
779
779
  tags?: Tags;
@@ -807,6 +807,13 @@ export interface RelationExprWith extends langium.AstNode {
807
807
  }
808
808
  export declare const RelationExprWith = "RelationExprWith";
809
809
  export declare function isRelationExprWith(item: unknown): item is RelationExprWith;
810
+ export interface RelationKindDotRef extends langium.AstNode {
811
+ readonly $container: DeploymentRelation | DynamicViewStep | OutgoingRelationExpr | Relation;
812
+ readonly $type: 'RelationKindDotRef';
813
+ kind: langium.Reference<RelationshipKind>;
814
+ }
815
+ export declare const RelationKindDotRef = "RelationKindDotRef";
816
+ export declare function isRelationKindDotRef(item: unknown): item is RelationKindDotRef;
810
817
  export interface RelationNavigateToProperty extends langium.AstNode {
811
818
  readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
812
819
  readonly $type: 'RelationNavigateToProperty';
@@ -867,6 +874,7 @@ export interface SpecificationDeploymentNodeKind extends langium.AstNode {
867
874
  readonly $type: 'SpecificationDeploymentNodeKind';
868
875
  kind: DeploymentNodeKind;
869
876
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
877
+ tags?: Tags;
870
878
  }
871
879
  export declare const SpecificationDeploymentNodeKind = "SpecificationDeploymentNodeKind";
872
880
  export declare function isSpecificationDeploymentNodeKind(item: unknown): item is SpecificationDeploymentNodeKind;
@@ -875,6 +883,7 @@ export interface SpecificationElementKind extends langium.AstNode {
875
883
  readonly $type: 'SpecificationElementKind';
876
884
  kind: ElementKind;
877
885
  props: Array<ElementStyleProperty | SpecificationElementStringProperty>;
886
+ tags?: Tags;
878
887
  }
879
888
  export declare const SpecificationElementKind = "SpecificationElementKind";
880
889
  export declare function isSpecificationElementKind(item: unknown): item is SpecificationElementKind;
@@ -917,6 +926,7 @@ export declare function isSpecificationRule(item: unknown): item is Specificatio
917
926
  export interface SpecificationTag extends langium.AstNode {
918
927
  readonly $container: SpecificationRule;
919
928
  readonly $type: 'SpecificationTag';
929
+ color?: CustomColorValue;
920
930
  tag: Tag;
921
931
  }
922
932
  export declare const SpecificationTag = "SpecificationTag";
@@ -944,11 +954,18 @@ export interface Tag extends langium.AstNode {
944
954
  }
945
955
  export declare const Tag = "Tag";
946
956
  export declare function isTag(item: unknown): item is Tag;
957
+ export interface TagRef extends langium.AstNode {
958
+ readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
959
+ readonly $type: 'TagRef';
960
+ tag: langium.Reference<Tag>;
961
+ }
962
+ export declare const TagRef = "TagRef";
963
+ export declare function isTagRef(item: unknown): item is TagRef;
947
964
  export interface Tags extends langium.AstNode {
948
- readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | Tags;
965
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | Tags;
949
966
  readonly $type: 'Tags';
950
967
  prev?: Tags;
951
- values: Array<langium.Reference<Tag>>;
968
+ values: Array<TagRef>;
952
969
  }
953
970
  export declare const Tags = "Tags";
954
971
  export declare function isTags(item: unknown): item is Tags;
@@ -1037,7 +1054,7 @@ export interface WhereElementKind extends langium.AstNode {
1037
1054
  readonly $type: 'WhereElementKind';
1038
1055
  not: boolean;
1039
1056
  operator: 'is' | string;
1040
- value?: langium.Reference<DeploymentNodeOrElementKind>;
1057
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1041
1058
  }
1042
1059
  export declare const WhereElementKind = "WhereElementKind";
1043
1060
  export declare function isWhereElementKind(item: unknown): item is WhereElementKind;
@@ -1053,7 +1070,7 @@ export interface WhereElementTag extends langium.AstNode {
1053
1070
  readonly $type: 'WhereElementTag';
1054
1071
  not: boolean;
1055
1072
  operator: 'is' | string;
1056
- value?: langium.Reference<Tag>;
1073
+ value: TagRef;
1057
1074
  }
1058
1075
  export declare const WhereElementTag = "WhereElementTag";
1059
1076
  export declare function isWhereElementTag(item: unknown): item is WhereElementTag;
@@ -1062,7 +1079,7 @@ export interface WhereRelationKind extends langium.AstNode {
1062
1079
  readonly $type: 'WhereRelationKind';
1063
1080
  not: boolean;
1064
1081
  operator: 'is' | string;
1065
- value?: langium.Reference<RelationshipKind>;
1082
+ value: langium.Reference<RelationshipKind>;
1066
1083
  }
1067
1084
  export declare const WhereRelationKind = "WhereRelationKind";
1068
1085
  export declare function isWhereRelationKind(item: unknown): item is WhereRelationKind;
@@ -1079,7 +1096,7 @@ export interface WhereRelationParticipantKind extends langium.AstNode {
1079
1096
  not: boolean;
1080
1097
  operator: 'is' | string;
1081
1098
  participant: Participant;
1082
- value?: langium.Reference<DeploymentNodeOrElementKind>;
1099
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1083
1100
  }
1084
1101
  export declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
1085
1102
  export declare function isWhereRelationParticipantKind(item: unknown): item is WhereRelationParticipantKind;
@@ -1089,7 +1106,7 @@ export interface WhereRelationParticipantTag extends langium.AstNode {
1089
1106
  not: boolean;
1090
1107
  operator: 'is' | string;
1091
1108
  participant: Participant;
1092
- value?: langium.Reference<Tag>;
1109
+ value: TagRef;
1093
1110
  }
1094
1111
  export declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1095
1112
  export declare function isWhereRelationParticipantTag(item: unknown): item is WhereRelationParticipantTag;
@@ -1098,7 +1115,7 @@ export interface WhereRelationTag extends langium.AstNode {
1098
1115
  readonly $type: 'WhereRelationTag';
1099
1116
  not: boolean;
1100
1117
  operator: 'is' | string;
1101
- value?: langium.Reference<Tag>;
1118
+ value: TagRef;
1102
1119
  }
1103
1120
  export declare const WhereRelationTag = "WhereRelationTag";
1104
1121
  export declare function isWhereRelationTag(item: unknown): item is WhereRelationTag;
@@ -1206,6 +1223,7 @@ export type LikeC4AstType = {
1206
1223
  RelationExprOrWith: RelationExprOrWith;
1207
1224
  RelationExprWhere: RelationExprWhere;
1208
1225
  RelationExprWith: RelationExprWith;
1226
+ RelationKindDotRef: RelationKindDotRef;
1209
1227
  RelationNavigateToProperty: RelationNavigateToProperty;
1210
1228
  RelationProperty: RelationProperty;
1211
1229
  RelationStringProperty: RelationStringProperty;
@@ -1228,6 +1246,7 @@ export type LikeC4AstType = {
1228
1246
  StringProperty: StringProperty;
1229
1247
  StyleProperty: StyleProperty;
1230
1248
  Tag: Tag;
1249
+ TagRef: TagRef;
1231
1250
  Tags: Tags;
1232
1251
  TextSizeProperty: TextSizeProperty;
1233
1252
  ViewProperty: ViewProperty;
@@ -47,9 +47,6 @@ export const DeploymentViewRule = "DeploymentViewRule";
47
47
  export function isDeploymentViewRule(item) {
48
48
  return reflection.isInstance(item, DeploymentViewRule);
49
49
  }
50
- export function isDotId(item) {
51
- return typeof item === "string";
52
- }
53
50
  export const DynamicViewRule = "DynamicViewRule";
54
51
  export function isDynamicViewRule(item) {
55
52
  return reflection.isInstance(item, DynamicViewRule);
@@ -148,9 +145,6 @@ export const StyleProperty = "StyleProperty";
148
145
  export function isStyleProperty(item) {
149
146
  return reflection.isInstance(item, StyleProperty);
150
147
  }
151
- export function isTagId(item) {
152
- return typeof item === "string";
153
- }
154
148
  export function isThemeColor(item) {
155
149
  return item === "primary" || item === "secondary" || item === "muted" || item === "slate" || item === "blue" || item === "indigo" || item === "sky" || item === "red" || item === "gray" || item === "green" || item === "amber";
156
150
  }
@@ -512,6 +506,10 @@ export const RelationExprWith = "RelationExprWith";
512
506
  export function isRelationExprWith(item) {
513
507
  return reflection.isInstance(item, RelationExprWith);
514
508
  }
509
+ export const RelationKindDotRef = "RelationKindDotRef";
510
+ export function isRelationKindDotRef(item) {
511
+ return reflection.isInstance(item, RelationKindDotRef);
512
+ }
515
513
  export const RelationNavigateToProperty = "RelationNavigateToProperty";
516
514
  export function isRelationNavigateToProperty(item) {
517
515
  return reflection.isInstance(item, RelationNavigateToProperty);
@@ -580,6 +578,10 @@ export const Tag = "Tag";
580
578
  export function isTag(item) {
581
579
  return reflection.isInstance(item, Tag);
582
580
  }
581
+ export const TagRef = "TagRef";
582
+ export function isTagRef(item) {
583
+ return reflection.isInstance(item, TagRef);
584
+ }
583
585
  export const Tags = "Tags";
584
586
  export function isTags(item) {
585
587
  return reflection.isInstance(item, Tags);
@@ -662,7 +664,7 @@ export function isWildcardExpression(item) {
662
664
  }
663
665
  export class LikeC4AstReflection extends langium.AbstractAstReflection {
664
666
  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];
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];
666
668
  }
667
669
  computeIsSubtype(subtype, supertype) {
668
670
  switch (subtype) {
@@ -845,6 +847,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
845
847
  case "DynamicViewStep:kind":
846
848
  case "OutgoingRelationExpr:kind":
847
849
  case "Relation:kind":
850
+ case "RelationKindDotRef:kind":
848
851
  case "WhereRelationKind:value": {
849
852
  return RelationshipKind;
850
853
  }
@@ -858,13 +861,6 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
858
861
  case "ElementKindExpression:kind": {
859
862
  return ElementKind;
860
863
  }
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
864
  case "ElementViewRef:view": {
869
865
  return ElementView;
870
866
  }
@@ -879,6 +875,9 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
879
875
  case "StrictFqnElementRef:el": {
880
876
  return Element;
881
877
  }
878
+ case "TagRef:tag": {
879
+ return Tag;
880
+ }
882
881
  case "ViewRef:view": {
883
882
  return LikeC4View;
884
883
  }
@@ -1006,6 +1005,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1006
1005
  name: DeploymentRelation,
1007
1006
  properties: [
1008
1007
  { name: "body" },
1008
+ { name: "dotKind" },
1009
1009
  { name: "kind" },
1010
1010
  { name: "source" },
1011
1011
  { name: "tags" },
@@ -1127,6 +1127,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1127
1127
  name: DynamicViewStep,
1128
1128
  properties: [
1129
1129
  { name: "custom" },
1130
+ { name: "dotKind" },
1130
1131
  { name: "isBackward", defaultValue: false },
1131
1132
  { name: "kind" },
1132
1133
  { name: "source" },
@@ -1571,6 +1572,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1571
1572
  return {
1572
1573
  name: OutgoingRelationExpr,
1573
1574
  properties: [
1575
+ { name: "dotKind" },
1574
1576
  { name: "from" },
1575
1577
  { name: "isBidirectional", defaultValue: false },
1576
1578
  { name: "kind" }
@@ -1591,6 +1593,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1591
1593
  name: Relation,
1592
1594
  properties: [
1593
1595
  { name: "body" },
1596
+ { name: "dotKind" },
1594
1597
  { name: "kind" },
1595
1598
  { name: "source" },
1596
1599
  { name: "tags" },
@@ -1627,6 +1630,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1627
1630
  ]
1628
1631
  };
1629
1632
  }
1633
+ case RelationKindDotRef: {
1634
+ return {
1635
+ name: RelationKindDotRef,
1636
+ properties: [
1637
+ { name: "kind" }
1638
+ ]
1639
+ };
1640
+ }
1630
1641
  case RelationNavigateToProperty: {
1631
1642
  return {
1632
1643
  name: RelationNavigateToProperty,
@@ -1694,7 +1705,8 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1694
1705
  name: SpecificationDeploymentNodeKind,
1695
1706
  properties: [
1696
1707
  { name: "kind" },
1697
- { name: "props", defaultValue: [] }
1708
+ { name: "props", defaultValue: [] },
1709
+ { name: "tags" }
1698
1710
  ]
1699
1711
  };
1700
1712
  }
@@ -1703,7 +1715,8 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1703
1715
  name: SpecificationElementKind,
1704
1716
  properties: [
1705
1717
  { name: "kind" },
1706
- { name: "props", defaultValue: [] }
1718
+ { name: "props", defaultValue: [] },
1719
+ { name: "tags" }
1707
1720
  ]
1708
1721
  };
1709
1722
  }
@@ -1751,6 +1764,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1751
1764
  return {
1752
1765
  name: SpecificationTag,
1753
1766
  properties: [
1767
+ { name: "color" },
1754
1768
  { name: "tag" }
1755
1769
  ]
1756
1770
  };
@@ -1781,6 +1795,14 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1781
1795
  ]
1782
1796
  };
1783
1797
  }
1798
+ case TagRef: {
1799
+ return {
1800
+ name: TagRef,
1801
+ properties: [
1802
+ { name: "tag" }
1803
+ ]
1804
+ };
1805
+ }
1784
1806
  case Tags: {
1785
1807
  return {
1786
1808
  name: Tags,