@likec4/language-server 1.32.1 → 1.33.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 (51) hide show
  1. package/dist/ast.d.ts +6 -5
  2. package/dist/ast.js +3 -0
  3. package/dist/bundled.mjs +3347 -2559
  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 +22 -11
  8. package/dist/generated/ast.js +19 -5
  9. package/dist/generated/grammar.js +1 -1
  10. package/dist/lsp/SemanticTokenProvider.js +1 -1
  11. package/dist/mcp/LikeC4MCPServerFactory.d.ts +4 -0
  12. package/dist/mcp/LikeC4MCPServerFactory.js +6 -0
  13. package/dist/mcp/LikeC4MCPTools.js +5 -2
  14. package/dist/mcp/sseserver/MCPServer.d.ts +4 -2
  15. package/dist/mcp/sseserver/MCPServer.js +12 -6
  16. package/dist/mcp/sseserver/with-mcp-server.js +22 -6
  17. package/dist/model/builder/MergedSpecification.js +8 -4
  18. package/dist/model/index.d.ts +1 -0
  19. package/dist/model/index.js +1 -0
  20. package/dist/model/model-builder.js +20 -19
  21. package/dist/model/model-parser.d.ts +126 -0
  22. package/dist/model/parser/Base.d.ts +30 -2
  23. package/dist/model/parser/Base.js +54 -3
  24. package/dist/model/parser/DeploymentModelParser.d.ts +14 -0
  25. package/dist/model/parser/DeploymentModelParser.js +28 -23
  26. package/dist/model/parser/DeploymentViewParser.d.ts +14 -0
  27. package/dist/model/parser/DeploymentViewParser.js +15 -6
  28. package/dist/model/parser/FqnRefParser.d.ts +14 -0
  29. package/dist/model/parser/FqnRefParser.js +8 -6
  30. package/dist/model/parser/GlobalsParser.d.ts +14 -0
  31. package/dist/model/parser/ImportsParser.d.ts +14 -0
  32. package/dist/model/parser/ModelParser.d.ts +14 -0
  33. package/dist/model/parser/ModelParser.js +27 -17
  34. package/dist/model/parser/PredicatesParser.d.ts +14 -0
  35. package/dist/model/parser/SpecificationParser.d.ts +14 -0
  36. package/dist/model/parser/SpecificationParser.js +16 -11
  37. package/dist/model/parser/ValueConverter.d.ts +4 -0
  38. package/dist/model/parser/ValueConverter.js +12 -0
  39. package/dist/model/parser/ViewsParser.d.ts +14 -0
  40. package/dist/model/parser/ViewsParser.js +21 -7
  41. package/dist/module.d.ts +6 -3
  42. package/dist/module.js +9 -5
  43. package/dist/utils/index.d.ts +5 -0
  44. package/dist/utils/index.js +19 -0
  45. package/dist/views/configurable-layouter.d.ts +2 -2
  46. package/dist/views/configurable-layouter.js +23 -27
  47. package/dist/views/likec4-views.d.ts +2 -3
  48. package/dist/views/likec4-views.js +28 -50
  49. package/dist/workspace/ProjectsManager.d.ts +0 -1
  50. package/dist/workspace/ProjectsManager.js +15 -4
  51. package/package.json +24 -23
@@ -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) => {
@@ -8,6 +8,7 @@ export declare const LikeC4Terminals: {
8
8
  LINE_COMMENT: RegExp;
9
9
  WS: RegExp;
10
10
  NL: RegExp;
11
+ BOOLEAN: RegExp;
11
12
  LIB_ICON: RegExp;
12
13
  URI_WITH_SCHEMA: RegExp;
13
14
  URI_RELATIVE: RegExp;
@@ -19,6 +20,7 @@ export declare const LikeC4Terminals: {
19
20
  NotEqual: RegExp;
20
21
  Eq: RegExp;
21
22
  Percent: RegExp;
23
+ MarkdownString: RegExp;
22
24
  String: RegExp;
23
25
  Float: RegExp;
24
26
  Number: RegExp;
@@ -26,12 +28,10 @@ export declare const LikeC4Terminals: {
26
28
  IdTerminal: RegExp;
27
29
  };
28
30
  export type LikeC4TerminalNames = keyof typeof LikeC4Terminals;
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" | "{" | "}";
31
+ 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" | "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" | "vee" | "view" | "views" | "where" | "with" | "xl" | "xlarge" | "xs" | "xsmall" | "{" | "}";
30
32
  export type LikeC4TokenNames = LikeC4TerminalNames | LikeC4KeywordNames;
31
33
  export type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
32
34
  export declare function isArrowType(item: unknown): item is ArrowType;
33
- export type Boolean = boolean;
34
- export declare function isBoolean(item: unknown): item is Boolean;
35
35
  export type BorderStyleValue = 'none' | LineOptions;
36
36
  export declare function isBorderStyleValue(item: unknown): item is BorderStyleValue;
37
37
  export type ColorLiteral = HexColor | RGBAColor;
@@ -251,6 +251,7 @@ export interface DeploymentRelation extends langium.AstNode {
251
251
  readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
252
252
  readonly $type: 'DeploymentRelation';
253
253
  body?: DeploymentRelationBody;
254
+ description?: string;
254
255
  dotKind?: RelationKindDotRef;
255
256
  kind?: langium.Reference<RelationshipKind>;
256
257
  source?: FqnRef;
@@ -414,7 +415,7 @@ export interface ElementStringProperty extends langium.AstNode {
414
415
  readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | ElementBody;
415
416
  readonly $type: 'ElementStringProperty';
416
417
  key: 'description' | 'technology' | 'title';
417
- value: string;
418
+ value: MarkdownOrString;
418
419
  }
419
420
  export declare const ElementStringProperty = "ElementStringProperty";
420
421
  export declare function isElementStringProperty(item: unknown): item is ElementStringProperty;
@@ -680,11 +681,19 @@ export interface LinkProperty extends langium.AstNode {
680
681
  }
681
682
  export declare const LinkProperty = "LinkProperty";
682
683
  export declare function isLinkProperty(item: unknown): item is LinkProperty;
684
+ export interface MarkdownOrString extends langium.AstNode {
685
+ readonly $container: ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
686
+ readonly $type: 'MarkdownOrString';
687
+ markdown?: string;
688
+ text?: string;
689
+ }
690
+ export declare const MarkdownOrString = "MarkdownOrString";
691
+ export declare function isMarkdownOrString(item: unknown): item is MarkdownOrString;
683
692
  export interface MetadataAttribute extends langium.AstNode {
684
693
  readonly $container: MetadataBody;
685
694
  readonly $type: 'MetadataAttribute';
686
695
  key: string;
687
- value: string;
696
+ value: MarkdownOrString;
688
697
  }
689
698
  export declare const MetadataAttribute = "MetadataAttribute";
690
699
  export declare function isMetadataAttribute(item: unknown): item is MetadataAttribute;
@@ -724,7 +733,7 @@ export interface MultipleProperty extends langium.AstNode {
724
733
  readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
725
734
  readonly $type: 'MultipleProperty';
726
735
  key: 'multiple';
727
- value: Boolean;
736
+ value: boolean;
728
737
  }
729
738
  export declare const MultipleProperty = "MultipleProperty";
730
739
  export declare function isMultipleProperty(item: unknown): item is MultipleProperty;
@@ -740,7 +749,7 @@ export interface NotationProperty extends langium.AstNode {
740
749
  readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | GlobalStyle | ViewRuleStyle;
741
750
  readonly $type: 'NotationProperty';
742
751
  key: 'notation';
743
- value: string;
752
+ value: MarkdownOrString;
744
753
  }
745
754
  export declare const NotationProperty = "NotationProperty";
746
755
  export declare function isNotationProperty(item: unknown): item is NotationProperty;
@@ -748,7 +757,7 @@ export interface NotesProperty extends langium.AstNode {
748
757
  readonly $container: CustomRelationProperties;
749
758
  readonly $type: 'NotesProperty';
750
759
  key: 'notes';
751
- value: string;
760
+ value: MarkdownOrString;
752
761
  }
753
762
  export declare const NotesProperty = "NotesProperty";
754
763
  export declare function isNotesProperty(item: unknown): item is NotesProperty;
@@ -782,6 +791,7 @@ export interface Relation extends langium.AstNode {
782
791
  readonly $container: ElementBody | ExtendElementBody | Model;
783
792
  readonly $type: 'Relation';
784
793
  body?: RelationBody;
794
+ description?: string;
785
795
  dotKind?: RelationKindDotRef;
786
796
  kind?: langium.Reference<RelationshipKind>;
787
797
  source?: FqnRef;
@@ -842,7 +852,7 @@ export interface RelationStringProperty extends langium.AstNode {
842
852
  readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
843
853
  readonly $type: 'RelationStringProperty';
844
854
  key: 'description' | 'technology' | 'title';
845
- value: string;
855
+ value: MarkdownOrString;
846
856
  }
847
857
  export declare const RelationStringProperty = "RelationStringProperty";
848
858
  export declare function isRelationStringProperty(item: unknown): item is RelationStringProperty;
@@ -926,7 +936,7 @@ export interface SpecificationRelationshipStringProperty extends langium.AstNode
926
936
  readonly $container: SpecificationRelationshipKind;
927
937
  readonly $type: 'SpecificationRelationshipStringProperty';
928
938
  key: 'notation' | 'technology';
929
- value: string;
939
+ value: MarkdownOrString;
930
940
  }
931
941
  export declare const SpecificationRelationshipStringProperty = "SpecificationRelationshipStringProperty";
932
942
  export declare function isSpecificationRelationshipStringProperty(item: unknown): item is SpecificationRelationshipStringProperty;
@@ -1055,7 +1065,7 @@ export interface ViewStringProperty extends langium.AstNode {
1055
1065
  readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1056
1066
  readonly $type: 'ViewStringProperty';
1057
1067
  key: 'description' | 'title';
1058
- value: string;
1068
+ value: MarkdownOrString;
1059
1069
  }
1060
1070
  export declare const ViewStringProperty = "ViewStringProperty";
1061
1071
  export declare function isViewStringProperty(item: unknown): item is ViewStringProperty;
@@ -1222,6 +1232,7 @@ export type LikeC4AstType = {
1222
1232
  LikeC4View: LikeC4View;
1223
1233
  LineProperty: LineProperty;
1224
1234
  LinkProperty: LinkProperty;
1235
+ MarkdownOrString: MarkdownOrString;
1225
1236
  MetadataAttribute: MetadataAttribute;
1226
1237
  MetadataBody: MetadataBody;
1227
1238
  MetadataProperty: MetadataProperty;
@@ -4,6 +4,7 @@ export const LikeC4Terminals = {
4
4
  LINE_COMMENT: /\/\/[^\n\r]*/,
5
5
  WS: /[\t ]+/,
6
6
  NL: /[\r\n]+/,
7
+ BOOLEAN: /true|false/,
7
8
  LIB_ICON: /(aws|azure|gcp|tech):[-\w]*/,
8
9
  URI_WITH_SCHEMA: /\w+:\/{2}\S+/,
9
10
  URI_RELATIVE: /\.{0,2}\/[^\/]\S+/,
@@ -15,6 +16,7 @@ export const LikeC4Terminals = {
15
16
  NotEqual: /\!\={1,2}/,
16
17
  Eq: /\={1,2}/,
17
18
  Percent: /\b\d+%/,
19
+ MarkdownString: /(('''([\s\S]*?'''))|("""([\s\S]*?""")))/,
18
20
  String: /"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/,
19
21
  Float: /\b\d+\.\d+\b/,
20
22
  Number: /\b\d+\b/,
@@ -24,9 +26,6 @@ export const LikeC4Terminals = {
24
26
  export function isArrowType(item) {
25
27
  return item === "none" || item === "normal" || item === "onormal" || item === "dot" || item === "odot" || item === "diamond" || item === "odiamond" || item === "crow" || item === "open" || item === "vee";
26
28
  }
27
- export function isBoolean(item) {
28
- return typeof item === "boolean";
29
- }
30
29
  export function isBorderStyleValue(item) {
31
30
  return isLineOptions(item) || item === "none";
32
31
  }
@@ -448,6 +447,10 @@ export const LinkProperty = "LinkProperty";
448
447
  export function isLinkProperty(item) {
449
448
  return reflection.isInstance(item, LinkProperty);
450
449
  }
450
+ export const MarkdownOrString = "MarkdownOrString";
451
+ export function isMarkdownOrString(item) {
452
+ return reflection.isInstance(item, MarkdownOrString);
453
+ }
451
454
  export const MetadataAttribute = "MetadataAttribute";
452
455
  export function isMetadataAttribute(item) {
453
456
  return reflection.isInstance(item, MetadataAttribute);
@@ -674,7 +677,7 @@ export function isWildcardExpression(item) {
674
677
  }
675
678
  export class LikeC4AstReflection extends langium.AbstractAstReflection {
676
679
  getAllTypes() {
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];
680
+ 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, MarkdownOrString, 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];
678
681
  }
679
682
  computeIsSubtype(subtype, supertype) {
680
683
  switch (subtype) {
@@ -1019,6 +1022,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1019
1022
  name: DeploymentRelation,
1020
1023
  properties: [
1021
1024
  { name: "body" },
1025
+ { name: "description" },
1022
1026
  { name: "dotKind" },
1023
1027
  { name: "kind" },
1024
1028
  { name: "source" },
@@ -1500,6 +1504,15 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1500
1504
  ]
1501
1505
  };
1502
1506
  }
1507
+ case MarkdownOrString: {
1508
+ return {
1509
+ name: MarkdownOrString,
1510
+ properties: [
1511
+ { name: "markdown" },
1512
+ { name: "text" }
1513
+ ]
1514
+ };
1515
+ }
1503
1516
  case MetadataAttribute: {
1504
1517
  return {
1505
1518
  name: MetadataAttribute,
@@ -1550,7 +1563,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1550
1563
  name: MultipleProperty,
1551
1564
  properties: [
1552
1565
  { name: "key" },
1553
- { name: "value" }
1566
+ { name: "value", defaultValue: false }
1554
1567
  ]
1555
1568
  };
1556
1569
  }
@@ -1615,6 +1628,7 @@ export class LikeC4AstReflection extends langium.AbstractAstReflection {
1615
1628
  name: Relation,
1616
1629
  properties: [
1617
1630
  { name: "body" },
1631
+ { name: "description" },
1618
1632
  { name: "dotKind" },
1619
1633
  { name: "kind" },
1620
1634
  { name: "source" },