@likec4/language-server 1.48.0 → 1.49.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 (78) hide show
  1. package/browser/package.json +2 -2
  2. package/browser-worker/package.json +2 -2
  3. package/dist/THIRD-PARTY-LICENSES.md +178 -0
  4. package/dist/_chunks/ConfigurableLayouter.mjs +1 -1956
  5. package/dist/_chunks/LikeC4FileSystem.mjs +3 -0
  6. package/dist/_chunks/LikeC4Views.mjs +34 -0
  7. package/dist/_chunks/ProjectsManager.mjs +1 -0
  8. package/dist/_chunks/WithMCPServer.mjs +481 -0
  9. package/dist/_chunks/icons.mjs +2 -5211
  10. package/dist/_chunks/{LikeC4LanguageServices.d.mts → index.d.mts} +1836 -707
  11. package/dist/_chunks/libs/@msgpack/msgpack.mjs +1 -805
  12. package/dist/_chunks/libs/eventemitter3.mjs +1 -243
  13. package/dist/_chunks/libs/fast-equals.mjs +1 -446
  14. package/dist/_chunks/libs/p-queue.mjs +1 -449
  15. package/dist/_chunks/libs/parse-ms.mjs +1 -36
  16. package/dist/_chunks/libs/picomatch.mjs +1 -1673
  17. package/dist/_chunks/libs/pretty-ms.mjs +1 -80
  18. package/dist/_chunks/libs/remeda.mjs +1 -482
  19. package/dist/_chunks/libs/strip-indent.mjs +1 -15
  20. package/dist/_chunks/libs/ufo.mjs +1 -166
  21. package/dist/_chunks/logger.mjs +1 -0
  22. package/dist/_chunks/rolldown-runtime.mjs +1 -42
  23. package/dist/_chunks/utils.mjs +1 -0
  24. package/dist/browser/index.d.mts +10 -0
  25. package/dist/browser/index.mjs +1 -0
  26. package/dist/browser/worker.mjs +1 -0
  27. package/dist/bundled.d.mts +2 -3
  28. package/dist/bundled.mjs +1 -51
  29. package/dist/filesystem/index.d.mts +2 -4
  30. package/dist/filesystem/index.mjs +1 -3
  31. package/dist/index.d.mts +38 -3
  32. package/dist/index.mjs +1 -48
  33. package/dist/likec4lib.d.mts +10 -3
  34. package/dist/likec4lib.mjs +1 -4
  35. package/dist/mcp/index.d.mts +2 -4
  36. package/dist/mcp/index.mjs +1 -3
  37. package/dist/module.d.mts +126 -4
  38. package/dist/module.mjs +1 -3
  39. package/dist/protocol.d.mts +314 -1
  40. package/dist/protocol.mjs +1 -3
  41. package/filesystem/package.json +4 -0
  42. package/mcp/package.json +4 -0
  43. package/module/package.json +4 -0
  44. package/package.json +79 -56
  45. package/LICENSE +0 -21
  46. package/dist/LikeC4LanguageServices.d.mts +0 -4
  47. package/dist/LikeC4LanguageServices.mjs +0 -3
  48. package/dist/_chunks/LikeC4LanguageServices.mjs +0 -725
  49. package/dist/_chunks/ast.d.mts +0 -1444
  50. package/dist/_chunks/ast.mjs +0 -2375
  51. package/dist/_chunks/ast2.mjs +0 -176
  52. package/dist/_chunks/common-exports.mjs +0 -0
  53. package/dist/_chunks/filesystem.mjs +0 -58
  54. package/dist/_chunks/grammar.mjs +0 -8
  55. package/dist/_chunks/libs/@hono/node-server.mjs +0 -436
  56. package/dist/_chunks/libs/hono.mjs +0 -1829
  57. package/dist/_chunks/likec4lib.mjs +0 -9
  58. package/dist/_chunks/mcp.mjs +0 -33
  59. package/dist/_chunks/module.mjs +0 -28
  60. package/dist/_chunks/module2.mjs +0 -6576
  61. package/dist/_chunks/protocol.d.mts +0 -311
  62. package/dist/_chunks/protocol.mjs +0 -78
  63. package/dist/ast.d.mts +0 -4
  64. package/dist/ast.mjs +0 -4
  65. package/dist/browser-worker.mjs +0 -6
  66. package/dist/browser.d.mts +0 -11
  67. package/dist/browser.mjs +0 -27
  68. package/dist/common-exports.d.mts +0 -4
  69. package/dist/common-exports.mjs +0 -5
  70. package/dist/generated/ast.d.mts +0 -2
  71. package/dist/generated/ast.mjs +0 -3
  72. package/dist/generated/grammar.d.mts +0 -6
  73. package/dist/generated/grammar.mjs +0 -3
  74. package/dist/generated/module.d.mts +0 -14
  75. package/dist/generated/module.mjs +0 -3
  76. package/dist/generated-lib/icons.d.mts +0 -4
  77. package/dist/generated-lib/icons.mjs +0 -3
  78. /package/dist/{browser-worker.d.mts → browser/worker.d.mts} +0 -0
@@ -1,28 +1,29 @@
1
- import { $n as ViewLayoutDirection, $t as MetadataBody, A as DynamicView, An as RelationshipStyleProperty, At as IconProperty, B as DynamicViewStep, Bn as SpecificationRelationshipStringProperty, Bt as LikeC4Grammar, Cn as RelationExprWith, D as DirectedRelationExpr, Dn as RelationStringProperty, E as DeploymentViewRuleStyle, Et as IconColorProperty, F as DynamicViewIncludePredicate, Fn as SpecificationColor, Ft as InOutRelationExpr, G as ElementProperty, H as ElementBody, Hn as SpecificationTag, Ht as LikeC4Lib, I as DynamicViewParallelSteps, In as SpecificationDeploymentNodeKind, It as IncomingRelationExpr, J as ElementStringProperty, Jt as LineProperty, K as ElementRef, Kn as StyleProperty, Kt as LikeC4View, Ln as SpecificationElementKind, Lt as LibIcon, M as DynamicViewDisplayVariantProperty, Mn as ShapeSizeProperty, Nt as Imported, O as DynamicStepChain, Or as WildcardExpression, Ot as IconPositionProperty, P as DynamicViewGlobalPredicateRef, Pn as SizeValue, Pt as ImportsFromPoject, Qt as MetadataAttribute, Rn as SpecificationElementStringProperty, S as DeploymentView, Sn as RelationExprWhere, St as GlobalStyleGroup, T as DeploymentViewRulePredicate, Tt as HexColor, V as Element, Vn as SpecificationRule, W as ElementKindExpression, Wn as StrictFqnRef, X as ElementTagExpression, Xn as TextSizeProperty, Xt as MarkdownOrString, Y as ElementStyleProperty, Yn as Tags, Yt as LinkProperty, Z as ElementView, _ as DeploymentNodeBody, _n as Relation, _t as FqnRefExpr, a as BorderProperty, an as ModelViews, ar as ViewRuleGlobalStyle, at as ExtendElementBody, b as DeploymentRelation, bn as RelationExprOrWhere, bt as GlobalPredicateGroup, c as ColorProperty, cn as NotationProperty, cr as ViewRuleRank, dn as OutgoingRelationExpr, dr as ViewStringProperty, dt as FqnExprOrWhere, en as MetadataProperty, et as ExpressionV2, f as CustomRelationProperties, fn as PaddingSizeProperty, ft as FqnExprOrWith, g as DeploymentNode, gn as Referenceable, gt as FqnRef$2, h as DeploymentElement, ht as FqnExpressions, ir as ViewRuleGlobalPredicateRef, it as ExtendElement, jn as ShapeProperty, jt as IconSizeProperty, k as DynamicStepSingle, kt as IconPositionValue, ln as NotesProperty, lr as ViewRuleStyle, m as DeployedInstanceBody, mn as RGBAColor, mt as FqnExprWith, nn as Model, nr as ViewRule, nt as ExtendDeployment, on as MultipleProperty, or as ViewRuleGroup, p as DeployedInstance, pt as FqnExprWhere, r as ArrowProperty, rn as ModelDeployments, rr as ViewRuleAutoLayout, rt as ExtendDeploymentBody, s as ColorLiteral, sn as NavigateToProperty, sr as ViewRulePredicate, st as ExtendRelation, t as AbstractDynamicStep, un as OpacityProperty, ur as ViewRuleStyleOrGlobalRef, ut as FqnExpr$2, vt as FqnReferenceable, w as DeploymentViewRule, wt as Globals, xn as RelationExprOrWith, xt as GlobalStyle, yn as RelationExpr$1, yt as GlobalDynamicPredicateGroup, z as DynamicViewRule, zn as SpecificationRelationshipKind, zt as LikeC4AstType } from "./ast.mjs";
2
- import { h as Locate, n as ChangeView, o as DidRequestOpenViewNotification } from "./protocol.mjs";
3
- import { AbstractFormatter, AbstractSemanticTokenProvider, AstNodeHoverProvider, CodeActionProvider, CodeLensProvider, CompletionAcceptor, CompletionContext, DefaultCompletionProvider, DefaultDocumentHighlightProvider, DefaultSharedModuleContext, DefaultWorkspaceSymbolProvider, DocumentLinkProvider, DocumentSymbolProvider, FormattingRegion, LangiumServices, LangiumSharedServices, NextFeature, NodeKindProvider, PartialLangiumServices, SemanticTokenAcceptor } from "langium/lsp";
4
- import * as langium0 from "langium";
5
- import { AstNode, AstNodeDescription, AsyncDisposable, BuildOptions, Cancellation, CstNode, DefaultAstNodeDescriptionProvider, DefaultDocumentValidator, DefaultIndexManager, DefaultLangiumDocuments, DefaultNameProvider, DefaultScopeComputation, DefaultScopeProvider, DefaultValueConverter, DefaultWorkspaceManager, DiagnosticInfo, Disposable, DocumentationProvider, FileSelector, FileSystemNode, FileSystemProvider, GrammarAST, LangiumDocument, LangiumDocumentFactory, MaybePromise, Module, PrecomputedScopes, ReferenceDescription, ReferenceInfo, Scope, Stream, URI, ValidationOptions, ValueType, WorkspaceCache } from "langium";
1
+ import { ChangeView, DidRequestOpenViewNotification, Locate } from "../protocol.mjs";
2
+ import { LikeC4Services, LikeC4SharedServices } from "../module.mjs";
3
+ import * as langium from "langium";
4
+ import { AstNode, AstNodeDescription, AsyncDisposable, BuildOptions, Cancellation, CstNode, DefaultAstNodeDescriptionProvider, DefaultDocumentValidator, DefaultIndexManager, DefaultLangiumDocuments, DefaultNameProvider, DefaultScopeComputation, DefaultScopeProvider, DefaultValueConverter, DefaultWorkspaceManager, DiagnosticInfo, Disposable, FileSelector, FileSystemNode, FileSystemProvider, GrammarAST, JSDocDocumentationProvider, LangiumDocument, LangiumDocumentFactory, MaybePromise, PrecomputedScopes, Reference, ReferenceDescription, ReferenceInfo, Scope, SimpleCache, Stream, URI, ValidationOptions, ValueType, WorkspaceCache } from "langium";
6
5
  import { DefaultWeakMap, MultiMap as MultiMap$1 } from "@likec4/core/utils";
7
6
  import { CompletionItemKind, Diagnostic, DocumentSymbol, FormattingOptions, Hover, Location, Range, SemanticTokens, SemanticTokensDelta, SymbolKind, TextEdit } from "vscode-languageserver-types";
8
- import { IncludeConfig, LikeC4ProjectConfig, LikeC4ProjectConfigInput } from "@likec4/config";
9
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
- import { LikeC4Model } from "@likec4/core/model";
11
- import { URI as URI$2 } from "vscode-uri";
12
- import * as c4 from "@likec4/core";
13
- import { ComputedView, DiagramView, LayoutType, LayoutedView, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange, ViewId } from "@likec4/core";
14
- import { CancellationToken, CodeLens, CodeLensParams, Connection, DocumentHighlight, DocumentLink, DocumentLinkParams, DocumentSymbolParams, WorkspaceFolder } from "vscode-languageserver";
7
+ import { AbstractFormatter, AbstractSemanticTokenProvider, AstNodeHoverProvider, CodeActionProvider, CodeLensProvider, CompletionAcceptor, CompletionContext, DefaultCompletionProvider, DefaultDocumentHighlightProvider, DefaultWorkspaceSymbolProvider, DocumentLinkProvider, DocumentSymbolProvider, FormattingRegion, LangiumSharedServices, NextFeature, NodeKindProvider, SemanticTokenAcceptor } from "langium/lsp";
15
8
  import { GraphvizLayouter, QueueGraphvizLayoter } from "@likec4/layouts";
9
+ import * as c4 from "@likec4/core";
10
+ import { ComputedView, DiagramView, LayoutType, LayoutedView, NonEmptyArray, NonEmptyReadonlyArray, ProjectId, Tag, UnknownComputed, UnknownLayouted, UnknownParsed, ViewChange, ViewId } from "@likec4/core";
16
11
  import { AdhocViewPredicate, LayoutedProjectsView as LayoutedProjectsView$1 } from "@likec4/core/compute-view";
12
+ import { ElementModel, LikeC4Model } from "@likec4/core/model";
13
+ import { IncludeConfig, LikeC4ProjectConfig, LikeC4ProjectConfigInput } from "@likec4/config";
14
+ import { URI as URI$2 } from "vscode-uri";
15
+ import { LikeC4Styles } from "@likec4/core/styles";
16
+ import { CancellationToken, CodeLens, CodeLensParams, DocumentHighlight, DocumentLink, DocumentLinkParams, DocumentSymbolParams, WorkspaceFolder } from "vscode-languageserver";
17
17
  import { CancellationToken as CancellationToken$1, CodeAction, CodeActionParams, Command, SemanticTokensDeltaParams, SemanticTokensParams, SemanticTokensRangeParams } from "vscode-languageserver-protocol";
18
- import { Fqn as Fqn$1, LayoutedView as LayoutedView$1, ProjectId as ProjectId$1, ViewId as ViewId$1 } from "@likec4/core/types";
18
+ import { Fqn as Fqn$1, GuardedBy, LayoutedView as LayoutedView$1, ProjectId as ProjectId$1, ViewId as ViewId$1 } from "@likec4/core/types";
19
19
  import { CancellationToken as CancellationToken$2 } from "vscode-jsonrpc";
20
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
20
21
  import * as type_fest0 from "type-fest";
21
22
  import { ConditionalPick, MergeExclusive, Simplify, Tagged, ValueOf, Writable } from "type-fest";
22
23
  import { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js";
23
24
 
24
25
  //#region src/documentation/documentation-provider.d.ts
25
- declare class LikeC4DocumentationProvider implements DocumentationProvider {
26
+ declare class LikeC4DocumentationProvider extends JSDocDocumentationProvider {
26
27
  private parser;
27
28
  private locator;
28
29
  constructor(services: LikeC4Services);
@@ -30,16 +31,23 @@ declare class LikeC4DocumentationProvider implements DocumentationProvider {
30
31
  }
31
32
  //#endregion
32
33
  //#region src/workspace/ProjectsManager.d.ts
34
+ type DocOrUri = LangiumDocument | string | URI;
33
35
  /**
34
36
  * A tagged string that represents a project folder URI
35
37
  * Always has trailing slash.
36
38
  */
37
39
  type ProjectFolder = Tagged<string, 'ProjectFolder'>;
38
40
  declare function ProjectFolder(folder: URI | string): ProjectFolder;
39
- interface ProjectData {
41
+ interface Project {
40
42
  id: ProjectId$1;
43
+ folderUri: URI;
41
44
  config: LikeC4ProjectConfig;
45
+ }
46
+ interface ProjectData extends Project {
47
+ id: ProjectId$1;
42
48
  folder: ProjectFolder;
49
+ config: LikeC4ProjectConfig;
50
+ configUri: URI;
43
51
  folderUri: URI;
44
52
  exclude?: {
45
53
  (test: string): boolean;
@@ -57,15 +65,13 @@ interface ProjectData {
57
65
  */
58
66
  includeConfig: IncludeConfig;
59
67
  }
60
- interface Project {
61
- id: ProjectId$1;
62
- folderUri: URI;
63
- config: LikeC4ProjectConfig;
64
- /**
65
- * Resolved include paths as URIs (if configured).
66
- */
67
- includePaths?: NonEmptyReadonlyArray<URI>;
68
- }
68
+ type RegisterProjectOptions = {
69
+ config: LikeC4ProjectConfig | LikeC4ProjectConfigInput;
70
+ } & ({
71
+ configUri: URI | string;
72
+ } | {
73
+ folderUri: URI | string;
74
+ });
69
75
  declare class ProjectsManager {
70
76
  #private;
71
77
  protected services: LikeC4SharedServices;
@@ -86,11 +92,11 @@ declare class ProjectsManager {
86
92
  set defaultProjectId(id: string | ProjectId$1 | undefined);
87
93
  get default(): ProjectData;
88
94
  get all(): NonEmptyReadonlyArray<ProjectId$1>;
89
- getProject(arg: ProjectId$1 | LangiumDocument): Project;
95
+ getProject(arg: ProjectId$1 | LangiumDocument): ProjectData;
90
96
  /**
91
- * Returns all projects that include the specified folder, or inside the folder.
97
+ * Returns all projects that overlap with the specified folder (is parent or child)
92
98
  */
93
- findAllProjectsByFolder(folder: URI | string): ProjectData[];
99
+ findOverlaped(folder: URI | string): ProjectData[];
94
100
  /**
95
101
  * Validates and ensures the project ID.
96
102
  * If no project ID is specified, returns default project ID
@@ -100,53 +106,38 @@ declare class ProjectsManager {
100
106
  /**
101
107
  * Validates and ensures the project.
102
108
  */
103
- ensureProject(projectId?: ProjectId$1 | undefined): Project;
109
+ ensureProject(projectId?: ProjectId$1 | undefined): ProjectData;
104
110
  hasMultipleProjects(): boolean;
105
111
  /**
106
112
  * Checks if the specified document should be excluded from processing.
107
113
  */
108
- isExcluded(document: LangiumDocument | URI | string): boolean;
114
+ isExcluded(document: DocOrUri): boolean;
115
+ isExcluded(projectId: ProjectId$1, document: DocOrUri): boolean;
109
116
  /**
110
117
  * Checks if the specified document is included by the project:
111
118
  * - if the document belongs to the project and is not excluded
112
119
  * - if the document is included by the project
113
120
  */
114
121
  isIncluded(projectId: ProjectId$1, document: LangiumDocument | URI | string): boolean;
115
- /**
116
- * Checks if it is a config file and it is not excluded by default exclude pattern
117
- *
118
- * @param entry The file system entry to check
119
- */
120
- isConfigFile(entry: URI): boolean;
121
122
  /**
122
123
  * Registers likec4 project by config file.
123
124
  */
124
- registerConfigFile(configFile: URI, cancelToken?: Cancellation.CancellationToken): Promise<ProjectData>;
125
+ registerConfigFile(configUri: URI, cancelToken?: Cancellation.CancellationToken): Promise<ProjectData>;
125
126
  /**
126
127
  * Registers (or reloads) likec4 project by config file or config object.
127
128
  * If there is some project registered at same folder, it will be reloaded.
128
129
  */
129
- registerProject(opts: {
130
- config: LikeC4ProjectConfig | LikeC4ProjectConfigInput;
131
- folderUri: URI | string;
132
- }, cancelToken?: Cancellation.CancellationToken): Promise<ProjectData>;
130
+ registerProject(opts: RegisterProjectOptions, cancelToken?: Cancellation.CancellationToken): Promise<ProjectData>;
133
131
  /**
134
132
  * Determines which project the given document belongs to.
135
133
  * If the document does not belong to any project, returns the default project ID.
136
134
  */
137
- belongsTo(document: LangiumDocument | URI | string): ProjectId$1;
135
+ ownerProjectId(document: LangiumDocument | URI | string): ProjectId$1;
138
136
  reloadProjects(cancelToken?: Cancellation.CancellationToken): Promise<void>;
139
137
  protected _reloadProjects(cancelToken?: Cancellation.CancellationToken): Promise<void>;
140
138
  protected uniqueProjectId(name: string): ProjectId$1;
141
- protected reset(): void;
142
- rebuidProject(projectId: ProjectId$1, cancelToken?: Cancellation.CancellationToken): Promise<void>;
143
- protected findProjectForDocument(documentUri: string): ProjectData;
144
- protected get mappingsToProject(): WorkspaceCache<string, ProjectData>;
145
- /**
146
- * The mapping between documents and projects they belong to.
147
- * Lazy-created due to initialization order of the LanguageServer
148
- */
149
- protected get documentBelongsTo(): WorkspaceCache<LangiumDocument, ProjectData>;
139
+ protected resetCaches(): void;
140
+ rebuildProject(projectId: ProjectId$1, cancelToken?: Cancellation.CancellationToken): Promise<void>;
150
141
  /**
151
142
  * Returns all include paths from all projects.
152
143
  * Used by WorkspaceManager to scan additional directories for C4 files.
@@ -163,6 +154,7 @@ declare class ProjectsManager {
163
154
  onProjectsUpdate(callback: () => void): Disposable;
164
155
  private getWorkspaceFolder;
165
156
  private notifyListeners;
157
+ private updateIncludesExcludes;
166
158
  }
167
159
  //#endregion
168
160
  //#region src/filesystem/types.d.ts
@@ -179,6 +171,7 @@ interface FileSystemProvider$1 extends FileSystemProvider {
179
171
  /**
180
172
  * Loads the project config from the given file.
181
173
  * @returns The project config.
174
+ * @throws Error if the file does not exist or is not a valid project config.
182
175
  */
183
176
  loadProjectConfig(filepath: URI): Promise<LikeC4ProjectConfig>;
184
177
  /**
@@ -221,8 +214,12 @@ interface FileSystemWatcher extends AsyncDisposable {
221
214
  interface LikeC4ManualLayoutsModuleContext {
222
215
  manualLayouts: (services: LikeC4SharedServices) => LikeC4ManualLayouts;
223
216
  }
217
+ type ManualLayoutsSnapshot = {
218
+ hash: string;
219
+ views: Record<ViewId$1, LayoutedView$1>;
220
+ };
224
221
  interface LikeC4ManualLayouts {
225
- read(project: Project): Promise<Record<ViewId$1, LayoutedView$1> | null>;
222
+ read(project: Project): Promise<ManualLayoutsSnapshot | null>;
226
223
  write(project: Project, layouted: LayoutedView$1): Promise<Location>;
227
224
  remove(project: Project, view: ViewId$1): Promise<Location | null>;
228
225
  clearCaches(): void;
@@ -233,6 +230,15 @@ declare const NoFileSystemWatcher: FileSystemWatcherModuleContext;
233
230
  declare const NoFileSystem: FileSystemModuleContext;
234
231
  declare const NoLikeC4ManualLayouts: LikeC4ManualLayoutsModuleContext;
235
232
  //#endregion
233
+ //#region src/filesystem/LikeC4FileSystem.d.ts
234
+ declare const WithFileSystem: (ehableWatcher?: boolean) => FileSystemModuleContext;
235
+ //#endregion
236
+ //#region src/filesystem/ChokidarWatcher.d.ts
237
+ declare const WithChokidarWatcher: FileSystemWatcherModuleContext;
238
+ //#endregion
239
+ //#region src/filesystem/LikeC4ManualLayouts.d.ts
240
+ declare const WithLikeC4ManualLayouts: LikeC4ManualLayoutsModuleContext;
241
+ //#endregion
236
242
  //#region src/formatting/LikeC4Formatter.d.ts
237
243
  type QuoteStyle = 'single' | 'double' | 'ignore' | 'auto';
238
244
  interface LikeC4FormatterOptions {
@@ -289,523 +295,1269 @@ declare class LikeC4Formatter extends AbstractFormatter {
289
295
  private onConfigurationUpdate;
290
296
  }
291
297
  //#endregion
292
- //#region src/lsp/CodeLensProvider.d.ts
293
- declare class LikeC4CodeLensProvider implements CodeLensProvider {
294
- private services;
295
- constructor(services: LikeC4Services);
296
- provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken): Promise<CodeLens[] | undefined>;
297
- }
298
- //#endregion
299
- //#region src/lsp/CompletionProvider.d.ts
300
- declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
301
- protected services: LikeC4Services;
302
- constructor(services: LikeC4Services);
303
- readonly completionOptions: {
304
- triggerCharacters: string[];
305
- };
306
- protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
307
- protected completionForKeyword(context: CompletionContext, keyword: GrammarAST.Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
308
- protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
298
+ //#region src/mcp/types.d.ts
299
+ interface LikeC4MCPServer {
300
+ readonly mcp: McpServer;
301
+ readonly isStarted: boolean;
302
+ readonly port: number;
303
+ start(port?: number): Promise<void>;
304
+ stop(): Promise<void>;
309
305
  }
310
- //#endregion
311
- //#region src/lsp/DocumentHighlightProvider.d.ts
312
- declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
313
- /**
314
- * Override this method to determine the highlight kind of the given reference.
315
- */
316
- protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
306
+ interface LikeC4MCPServerFactory {
307
+ create(options?: ServerOptions): McpServer;
317
308
  }
318
- //#endregion
319
- //#region src/lsp/DocumentLinkProvider.d.ts
320
- declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
321
- private services;
322
- constructor(services: LikeC4Services);
323
- getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken): Promise<DocumentLink[]>;
324
- resolveLink(doc: LangiumDocument, link: string): string;
325
- relativeLink(doc: LangiumDocument, link: string): string | null;
309
+ interface LikeC4MCPServerModuleContext {
310
+ mcpServer: (services: LikeC4Services) => LikeC4MCPServer;
311
+ mcpServerFactory: (services: LikeC4Services) => LikeC4MCPServerFactory;
326
312
  }
327
313
  //#endregion
328
- //#region src/references/name-provider.d.ts
329
- declare class LikeC4NameProvider extends DefaultNameProvider {
330
- protected services: LikeC4Services;
331
- constructor(services: LikeC4Services);
332
- getNameStrict(node: AstNode): string;
333
- getName(node: AstNode): string | undefined;
334
- getNameNode(node: AstNode): CstNode | undefined;
314
+ //#region src/generated/ast.d.ts
315
+ type AnyProperty = DynamicViewProperty | ElementProperty | RelationProperty | StringProperty | ViewProperty;
316
+ declare const AnyProperty = "AnyProperty";
317
+ type ArrowType = 'crow' | 'diamond' | 'dot' | 'none' | 'normal' | 'odiamond' | 'odot' | 'onormal' | 'open' | 'vee';
318
+ type BorderStyleValue = 'none' | LineOptions;
319
+ type ColorLiteral$1 = HexColor | RGBAColor;
320
+ declare const ColorLiteral$1 = "ColorLiteral";
321
+ type CustomColorId = 'element' | 'model' | ArrowType | ElementShape | LineOptions | Participant | string;
322
+ type DeploymentElement = DeployedInstance | DeploymentNode;
323
+ declare const DeploymentElement = "DeploymentElement";
324
+ type DeploymentNodeOrElementKind = DeploymentNodeKind | ElementKind;
325
+ declare const DeploymentNodeOrElementKind = "DeploymentNodeOrElementKind";
326
+ type DeploymentViewRule = DeploymentViewRulePredicate | DeploymentViewRuleStyle | ViewRuleAutoLayout;
327
+ declare const DeploymentViewRule = "DeploymentViewRule";
328
+ type DynamicViewDisplayVariantValue = 'diagram' | 'sequence';
329
+ type DynamicViewProperty = DynamicViewDisplayVariantProperty | ViewProperty;
330
+ declare const DynamicViewProperty = "DynamicViewProperty";
331
+ type DynamicViewRule = DynamicViewGlobalPredicateRef | DynamicViewIncludePredicate | ViewRuleAutoLayout | ViewRuleStyleOrGlobalRef;
332
+ declare const DynamicViewRule = "DynamicViewRule";
333
+ type DynamicViewStep = DynamicStepChain | DynamicStepSingle;
334
+ declare const DynamicViewStep = "DynamicViewStep";
335
+ type ElementProperty = ElementStringProperty | ElementStyleProperty | IconProperty | LinkProperty | MetadataProperty;
336
+ declare const ElementProperty = "ElementProperty";
337
+ type ElementShape = 'browser' | 'bucket' | 'component' | 'cylinder' | 'document' | 'mobile' | 'person' | 'queue' | 'rectangle' | 'storage';
338
+ type ExpressionV2 = FqnExprOrWith | RelationExprOrWith;
339
+ declare const ExpressionV2 = "ExpressionV2";
340
+ type ExtendElementProperty = LinkProperty | MetadataProperty;
341
+ declare const ExtendElementProperty = "ExtendElementProperty";
342
+ type ExtendRelationProperty = LinkProperty | MetadataProperty;
343
+ declare const ExtendRelationProperty = "ExtendRelationProperty";
344
+ type FqnExpr$2 = ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression;
345
+ declare const FqnExpr$2 = "FqnExpr";
346
+ type FqnExprOrWhere = FqnExpr$2 | FqnExprWhere;
347
+ declare const FqnExprOrWhere = "FqnExprOrWhere";
348
+ type FqnExprOrWith = FqnExprOrWhere | FqnExprWith;
349
+ declare const FqnExprOrWith = "FqnExprOrWith";
350
+ type FqnReferenceable = Element | ExtendDeployment | ExtendElement | Referenceable;
351
+ declare const FqnReferenceable = "FqnReferenceable";
352
+ type IconId = string;
353
+ type IconPositionValue = 'bottom' | 'left' | 'right' | 'top';
354
+ type Id = 'deployment' | 'element' | 'group' | 'instance' | 'model' | 'node' | ArrowType | DynamicViewDisplayVariantValue | ElementShape | IconPositionValue | LineOptions | Participant | RankValue | SizeValue | ThemeColor | string;
355
+ type LikeC4View = DeploymentView | DynamicView | ElementView;
356
+ declare const LikeC4View = "LikeC4View";
357
+ type LineOptions = 'dashed' | 'dotted' | 'solid';
358
+ type MetadataProperty = MetadataBody;
359
+ declare const MetadataProperty = "MetadataProperty";
360
+ type MetadataValue = MarkdownOrString | MetadataArray;
361
+ declare const MetadataValue = "MetadataValue";
362
+ type ModelReferenceable = Element | Imported;
363
+ declare const ModelReferenceable = "ModelReferenceable";
364
+ type Participant = 'source' | 'target';
365
+ type RankValue = 'max' | 'min' | 'same' | 'sink' | 'source';
366
+ type Referenceable = DeployedInstance | DeploymentNode | Element | Imported;
367
+ declare const Referenceable = "Referenceable";
368
+ type RelationExpr$1 = DirectedRelationExpr | InOutRelationExpr | IncomingRelationExpr | OutgoingRelationExpr;
369
+ declare const RelationExpr$1 = "RelationExpr";
370
+ type RelationExprOrWhere = RelationExpr$1 | RelationExprWhere;
371
+ declare const RelationExprOrWhere = "RelationExprOrWhere";
372
+ type RelationExprOrWith = RelationExprOrWhere | RelationExprWith;
373
+ declare const RelationExprOrWith = "RelationExprOrWith";
374
+ type RelationProperty = LinkProperty | MetadataProperty | RelationNavigateToProperty | RelationStringProperty | RelationStyleProperty;
375
+ declare const RelationProperty = "RelationProperty";
376
+ type RelationshipStyleProperty = ArrowProperty | ColorProperty | LineProperty;
377
+ declare const RelationshipStyleProperty = "RelationshipStyleProperty";
378
+ type SizeProperty = IconSizeProperty | PaddingSizeProperty | ShapeSizeProperty | TextSizeProperty;
379
+ declare const SizeProperty = "SizeProperty";
380
+ type SizeValue = 'large' | 'lg' | 'md' | 'medium' | 'sm' | 'small' | 'xl' | 'xlarge' | 'xs' | 'xsmall';
381
+ type StringProperty = ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
382
+ declare const StringProperty = "StringProperty";
383
+ type StyleProperty = BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty;
384
+ declare const StyleProperty = "StyleProperty";
385
+ type ThemeColor = 'amber' | 'blue' | 'gray' | 'green' | 'indigo' | 'muted' | 'primary' | 'red' | 'secondary' | 'sky' | 'slate';
386
+ type Uri = string;
387
+ type ViewLayoutDirection = 'BottomTop' | 'LeftRight' | 'RightLeft' | 'TopBottom';
388
+ type ViewProperty = LinkProperty | ViewStringProperty;
389
+ declare const ViewProperty = "ViewProperty";
390
+ type ViewRule = ViewRuleAutoLayout | ViewRuleGlobalPredicateRef | ViewRuleGroup | ViewRulePredicate | ViewRuleRank | ViewRuleStyleOrGlobalRef;
391
+ declare const ViewRule = "ViewRule";
392
+ type ViewRuleStyleOrGlobalRef = ViewRuleGlobalStyle | ViewRuleStyle;
393
+ declare const ViewRuleStyleOrGlobalRef = "ViewRuleStyleOrGlobalRef";
394
+ type WhereElement = WhereElementKind | WhereElementTag;
395
+ declare const WhereElement = "WhereElement";
396
+ type WhereElementExpression = WhereBinaryExpression | WhereElement | WhereElementNegation;
397
+ declare const WhereElementExpression = "WhereElementExpression";
398
+ type WhereExpression = WhereElementExpression | WhereRelationExpression;
399
+ declare const WhereExpression = "WhereExpression";
400
+ type WhereKindEqual = WhereElementKind | WhereRelationKind | WhereRelationParticipantKind;
401
+ declare const WhereKindEqual = "WhereKindEqual";
402
+ type WhereRelation = WhereRelationKind | WhereRelationParticipantKind | WhereRelationParticipantTag | WhereRelationTag;
403
+ declare const WhereRelation = "WhereRelation";
404
+ type WhereRelationExpression = WhereBinaryExpression | WhereRelation | WhereRelationNegation;
405
+ declare const WhereRelationExpression = "WhereRelationExpression";
406
+ type WhereTagEqual = WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
407
+ declare const WhereTagEqual = "WhereTagEqual";
408
+ interface AbstractDynamicStep extends langium.AstNode {
409
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
410
+ readonly $type: 'AbstractDynamicStep' | 'DynamicStepChain' | 'DynamicStepSingle';
411
+ custom?: CustomRelationProperties;
412
+ dotKind?: RelationKindDotRef;
413
+ kind?: langium.Reference<RelationshipKind>;
414
+ target: ElementRef;
415
+ title?: string;
416
+ }
417
+ declare const AbstractDynamicStep = "AbstractDynamicStep";
418
+ interface ArrowProperty extends langium.AstNode {
419
+ readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
420
+ readonly $type: 'ArrowProperty';
421
+ key: 'head' | 'tail';
422
+ value: ArrowType;
423
+ }
424
+ declare const ArrowProperty = "ArrowProperty";
425
+ interface BorderProperty extends langium.AstNode {
426
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
427
+ readonly $type: 'BorderProperty';
428
+ key: 'border';
429
+ value: BorderStyleValue;
430
+ }
431
+ declare const BorderProperty = "BorderProperty";
432
+ interface ColorProperty extends langium.AstNode {
433
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | RelationStyleProperty | SpecificationRelationshipKind | ViewRuleGroup | ViewRuleStyle;
434
+ readonly $type: 'ColorProperty';
435
+ customColor?: langium.Reference<CustomColor>;
436
+ key: 'color';
437
+ themeColor?: ThemeColor;
438
+ }
439
+ declare const ColorProperty = "ColorProperty";
440
+ interface CustomColor extends langium.AstNode {
441
+ readonly $container: SpecificationColor;
442
+ readonly $type: 'CustomColor';
443
+ name: CustomColorId;
444
+ }
445
+ declare const CustomColor = "CustomColor";
446
+ interface CustomElementProperties extends langium.AstNode {
447
+ readonly $container: FqnExprWith;
448
+ readonly $type: 'CustomElementProperties';
449
+ props: Array<ElementStringProperty | NavigateToProperty | NotationProperty | NotesProperty | StyleProperty>;
450
+ }
451
+ declare const CustomElementProperties = "CustomElementProperties";
452
+ interface CustomRelationProperties extends langium.AstNode {
453
+ readonly $container: AbstractDynamicStep | RelationExprWith;
454
+ readonly $type: 'CustomRelationProperties';
455
+ props: Array<NotationProperty | NotesProperty | RelationNavigateToProperty | RelationStringProperty | RelationshipStyleProperty>;
456
+ }
457
+ declare const CustomRelationProperties = "CustomRelationProperties";
458
+ interface DeployedInstance extends langium.AstNode {
459
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody;
460
+ readonly $type: 'DeployedInstance';
461
+ body?: DeployedInstanceBody;
462
+ name?: Id;
463
+ summary?: string;
464
+ target: ElementRef;
465
+ title?: string;
466
+ }
467
+ declare const DeployedInstance = "DeployedInstance";
468
+ interface DeployedInstanceBody extends langium.AstNode {
469
+ readonly $container: DeployedInstance;
470
+ readonly $type: 'DeployedInstanceBody';
471
+ elements: Array<DeploymentRelation>;
472
+ props: Array<ElementProperty>;
473
+ tags?: Tags;
474
+ }
475
+ declare const DeployedInstanceBody = "DeployedInstanceBody";
476
+ interface DeploymentNode extends langium.AstNode {
477
+ readonly $container: DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
478
+ readonly $type: 'DeploymentNode';
479
+ body?: DeploymentNodeBody;
480
+ kind: langium.Reference<DeploymentNodeKind>;
481
+ name: Id;
482
+ summary?: string;
483
+ title?: string;
484
+ }
485
+ declare const DeploymentNode = "DeploymentNode";
486
+ interface DeploymentNodeBody extends langium.AstNode {
487
+ readonly $container: DeploymentNode;
488
+ readonly $type: 'DeploymentNodeBody';
489
+ elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
490
+ props: Array<ElementProperty>;
491
+ tags?: Tags;
492
+ }
493
+ declare const DeploymentNodeBody = "DeploymentNodeBody";
494
+ interface DeploymentNodeKind extends langium.AstNode {
495
+ readonly $container: SpecificationDeploymentNodeKind;
496
+ readonly $type: 'DeploymentNodeKind';
497
+ name: Id;
498
+ }
499
+ declare const DeploymentNodeKind = "DeploymentNodeKind";
500
+ interface DeploymentRelation extends langium.AstNode {
501
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | ExtendDeploymentBody | ModelDeployments;
502
+ readonly $type: 'DeploymentRelation';
503
+ body?: DeploymentRelationBody;
504
+ description?: string;
505
+ dotKind?: RelationKindDotRef;
506
+ kind?: langium.Reference<RelationshipKind>;
507
+ source?: FqnRef$2;
508
+ tags?: Tags;
509
+ target: FqnRef$2;
510
+ technology?: string;
511
+ title?: string;
512
+ }
513
+ declare const DeploymentRelation = "DeploymentRelation";
514
+ interface DeploymentRelationBody extends langium.AstNode {
515
+ readonly $container: DeploymentRelation;
516
+ readonly $type: 'DeploymentRelationBody';
517
+ props: Array<RelationProperty>;
518
+ tags?: Tags;
519
+ }
520
+ declare const DeploymentRelationBody = "DeploymentRelationBody";
521
+ interface DeploymentView extends langium.AstNode {
522
+ readonly $container: ModelViews;
523
+ readonly $type: 'DeploymentView';
524
+ body?: DeploymentViewBody;
525
+ name: Id;
526
+ }
527
+ declare const DeploymentView = "DeploymentView";
528
+ interface DeploymentViewBody extends langium.AstNode {
529
+ readonly $container: DeploymentView;
530
+ readonly $type: 'DeploymentViewBody';
531
+ props: Array<ViewProperty>;
532
+ rules: Array<DeploymentViewRule>;
533
+ tags?: Tags;
534
+ }
535
+ declare const DeploymentViewBody = "DeploymentViewBody";
536
+ interface DeploymentViewRulePredicate extends langium.AstNode {
537
+ readonly $container: DeploymentViewBody;
538
+ readonly $type: 'DeploymentViewRulePredicate';
539
+ expr: Expressions;
540
+ isInclude: boolean;
541
+ }
542
+ declare const DeploymentViewRulePredicate = "DeploymentViewRulePredicate";
543
+ interface DeploymentViewRuleStyle extends langium.AstNode {
544
+ readonly $container: DeploymentViewBody;
545
+ readonly $type: 'DeploymentViewRuleStyle';
546
+ props: Array<NotationProperty | StyleProperty>;
547
+ targets: FqnExpressions;
548
+ }
549
+ declare const DeploymentViewRuleStyle = "DeploymentViewRuleStyle";
550
+ interface DirectedRelationExpr extends langium.AstNode {
551
+ readonly $container: Expressions | RelationExprWhere | RelationExprWith;
552
+ readonly $type: 'DirectedRelationExpr';
553
+ source: OutgoingRelationExpr;
554
+ target: FqnExpr$2;
555
+ }
556
+ declare const DirectedRelationExpr = "DirectedRelationExpr";
557
+ interface DynamicView extends langium.AstNode {
558
+ readonly $container: ModelViews;
559
+ readonly $type: 'DynamicView';
560
+ body?: DynamicViewBody;
561
+ name: Id;
562
+ }
563
+ declare const DynamicView = "DynamicView";
564
+ interface DynamicViewBody extends langium.AstNode {
565
+ readonly $container: DynamicView;
566
+ readonly $type: 'DynamicViewBody';
567
+ props: Array<DynamicViewProperty>;
568
+ rules: Array<DynamicViewRule>;
569
+ steps: Array<DynamicViewParallelSteps | DynamicViewStep>;
570
+ tags?: Tags;
571
+ }
572
+ declare const DynamicViewBody = "DynamicViewBody";
573
+ interface DynamicViewDisplayVariantProperty extends langium.AstNode {
574
+ readonly $container: DynamicViewBody;
575
+ readonly $type: 'DynamicViewDisplayVariantProperty';
576
+ key: 'variant';
577
+ value: DynamicViewDisplayVariantValue;
578
+ }
579
+ declare const DynamicViewDisplayVariantProperty = "DynamicViewDisplayVariantProperty";
580
+ interface DynamicViewGlobalPredicateRef extends langium.AstNode {
581
+ readonly $container: DynamicViewBody;
582
+ readonly $type: 'DynamicViewGlobalPredicateRef';
583
+ predicate: langium.Reference<GlobalDynamicPredicateGroup>;
584
+ }
585
+ declare const DynamicViewGlobalPredicateRef = "DynamicViewGlobalPredicateRef";
586
+ interface DynamicViewIncludePredicate extends langium.AstNode {
587
+ readonly $container: DynamicViewBody | GlobalDynamicPredicateGroup;
588
+ readonly $type: 'DynamicViewIncludePredicate';
589
+ exprs: Expressions;
590
+ }
591
+ declare const DynamicViewIncludePredicate = "DynamicViewIncludePredicate";
592
+ interface DynamicViewParallelSteps extends langium.AstNode {
593
+ readonly $container: DynamicViewBody;
594
+ readonly $type: 'DynamicViewParallelSteps';
595
+ steps: Array<DynamicViewStep>;
596
+ }
597
+ declare const DynamicViewParallelSteps = "DynamicViewParallelSteps";
598
+ interface DynamicViewRef extends langium.AstNode {
599
+ readonly $container: RelationNavigateToProperty;
600
+ readonly $type: 'DynamicViewRef';
601
+ view: langium.Reference<DynamicView>;
602
+ }
603
+ declare const DynamicViewRef = "DynamicViewRef";
604
+ interface Element extends langium.AstNode {
605
+ readonly $container: ElementBody | ExtendElementBody | Model;
606
+ readonly $type: 'Element';
607
+ body?: ElementBody;
608
+ kind: langium.Reference<ElementKind>;
609
+ name: Id;
610
+ props: Array<string>;
611
+ }
612
+ declare const Element = "Element";
613
+ interface ElementBody extends langium.AstNode {
614
+ readonly $container: Element;
615
+ readonly $type: 'ElementBody';
616
+ elements: Array<Element | Relation>;
617
+ props: Array<ElementProperty>;
618
+ tags?: Tags;
619
+ }
620
+ declare const ElementBody = "ElementBody";
621
+ interface ElementKind extends langium.AstNode {
622
+ readonly $container: SpecificationElementKind;
623
+ readonly $type: 'ElementKind';
624
+ name: Id;
625
+ }
626
+ declare const ElementKind = "ElementKind";
627
+ interface ElementKindExpression extends langium.AstNode {
628
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
629
+ readonly $type: 'ElementKindExpression';
630
+ isEqual: boolean;
631
+ kind: langium.Reference<ElementKind>;
632
+ }
633
+ declare const ElementKindExpression = "ElementKindExpression";
634
+ interface ElementRef extends langium.AstNode {
635
+ readonly $container: AbstractDynamicStep | DeployedInstance | DynamicStepSingle | ElementView;
636
+ readonly $type: 'ElementRef';
637
+ modelElement: FqnRef$2;
638
+ }
639
+ declare const ElementRef = "ElementRef";
640
+ interface ElementStringProperty extends langium.AstNode {
641
+ readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | ElementBody;
642
+ readonly $type: 'ElementStringProperty';
643
+ key: 'description' | 'summary' | 'technology' | 'title';
644
+ value: MarkdownOrString;
645
+ }
646
+ declare const ElementStringProperty = "ElementStringProperty";
647
+ interface ElementStyleProperty extends langium.AstNode {
648
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | ElementBody | SpecificationDeploymentNodeKind | SpecificationElementKind;
649
+ readonly $type: 'ElementStyleProperty';
650
+ key: 'style';
651
+ props: Array<StyleProperty>;
652
+ }
653
+ declare const ElementStyleProperty = "ElementStyleProperty";
654
+ interface ElementTagExpression extends langium.AstNode {
655
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
656
+ readonly $type: 'ElementTagExpression';
657
+ isEqual: boolean;
658
+ tag: TagRef;
659
+ }
660
+ declare const ElementTagExpression = "ElementTagExpression";
661
+ interface ElementView extends langium.AstNode {
662
+ readonly $container: ModelViews;
663
+ readonly $type: 'ElementView';
664
+ body?: ElementViewBody;
665
+ extends?: ElementViewRef;
666
+ name?: Id;
667
+ viewOf?: ElementRef;
668
+ }
669
+ declare const ElementView = "ElementView";
670
+ interface ElementViewBody extends langium.AstNode {
671
+ readonly $container: ElementView;
672
+ readonly $type: 'ElementViewBody';
673
+ props: Array<ViewProperty>;
674
+ rules: Array<ViewRule>;
675
+ tags?: Tags;
676
+ }
677
+ declare const ElementViewBody = "ElementViewBody";
678
+ interface ElementViewRef extends langium.AstNode {
679
+ readonly $container: ElementView;
680
+ readonly $type: 'ElementViewRef';
681
+ view: langium.Reference<ElementView>;
682
+ }
683
+ declare const ElementViewRef = "ElementViewRef";
684
+ interface Expressions extends langium.AstNode {
685
+ readonly $container: DeploymentViewRulePredicate | DynamicViewIncludePredicate | Expressions | ViewRulePredicate;
686
+ readonly $type: 'Expressions';
687
+ prev?: Expressions;
688
+ value: ExpressionV2;
689
+ }
690
+ declare const Expressions = "Expressions";
691
+ interface ExtendDeployment extends langium.AstNode {
692
+ readonly $container: ModelDeployments;
693
+ readonly $type: 'ExtendDeployment';
694
+ body: ExtendDeploymentBody;
695
+ deploymentNode: StrictFqnRef;
696
+ }
697
+ declare const ExtendDeployment = "ExtendDeployment";
698
+ interface ExtendDeploymentBody extends langium.AstNode {
699
+ readonly $container: ExtendDeployment;
700
+ readonly $type: 'ExtendDeploymentBody';
701
+ elements: Array<DeployedInstance | DeploymentNode | DeploymentRelation>;
702
+ props: Array<ExtendElementProperty>;
703
+ tags?: Tags;
704
+ }
705
+ declare const ExtendDeploymentBody = "ExtendDeploymentBody";
706
+ interface ExtendElement extends langium.AstNode {
707
+ readonly $container: Model;
708
+ readonly $type: 'ExtendElement';
709
+ body: ExtendElementBody;
710
+ element: StrictFqnElementRef;
711
+ }
712
+ declare const ExtendElement = "ExtendElement";
713
+ interface ExtendElementBody extends langium.AstNode {
714
+ readonly $container: ExtendElement;
715
+ readonly $type: 'ExtendElementBody';
716
+ elements: Array<Element | Relation>;
717
+ props: Array<ExtendElementProperty>;
718
+ tags?: Tags;
719
+ }
720
+ declare const ExtendElementBody = "ExtendElementBody";
721
+ interface ExtendRelation extends langium.AstNode {
722
+ readonly $container: Model;
723
+ readonly $type: 'ExtendRelation';
724
+ body: ExtendRelationBody;
725
+ dotKind?: RelationKindDotRef;
726
+ kind?: langium.Reference<RelationshipKind>;
727
+ source: FqnRef$2;
728
+ target: FqnRef$2;
729
+ title?: string;
730
+ }
731
+ declare const ExtendRelation = "ExtendRelation";
732
+ interface ExtendRelationBody extends langium.AstNode {
733
+ readonly $container: ExtendRelation;
734
+ readonly $type: 'ExtendRelationBody';
735
+ props: Array<ExtendRelationProperty>;
736
+ tags?: Tags;
737
+ }
738
+ declare const ExtendRelationBody = "ExtendRelationBody";
739
+ interface FqnExpressions extends langium.AstNode {
740
+ readonly $container: DeploymentViewRuleStyle | FqnExpressions | GlobalStyle | ViewRuleRank | ViewRuleStyle;
741
+ readonly $type: 'FqnExpressions';
742
+ prev?: FqnExpressions;
743
+ value: FqnExpr$2;
744
+ }
745
+ declare const FqnExpressions = "FqnExpressions";
746
+ interface FqnExprWhere extends langium.AstNode {
747
+ readonly $container: Expressions | FqnExprWith;
748
+ readonly $type: 'FqnExprWhere';
749
+ subject: FqnExpr$2;
750
+ where?: WhereElementExpression;
751
+ }
752
+ declare const FqnExprWhere = "FqnExprWhere";
753
+ interface FqnExprWith extends langium.AstNode {
754
+ readonly $container: Expressions;
755
+ readonly $type: 'FqnExprWith';
756
+ custom?: CustomElementProperties;
757
+ subject: FqnExprOrWhere;
758
+ }
759
+ declare const FqnExprWith = "FqnExprWith";
760
+ interface FqnRef$2 extends langium.AstNode {
761
+ readonly $container: DeploymentRelation | ElementRef | ExtendRelation | FqnRef$2 | FqnRefExpr | Relation;
762
+ readonly $type: 'FqnRef';
763
+ parent?: FqnRef$2;
764
+ value: langium.Reference<Referenceable>;
765
+ }
766
+ declare const FqnRef$2 = "FqnRef";
767
+ interface FqnRefExpr extends langium.AstNode {
768
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
769
+ readonly $type: 'FqnRefExpr';
770
+ ref: FqnRef$2;
771
+ selector?: string;
772
+ }
773
+ declare const FqnRefExpr = "FqnRefExpr";
774
+ interface GlobalDynamicPredicateGroup extends langium.AstNode {
775
+ readonly $container: Globals;
776
+ readonly $type: 'GlobalDynamicPredicateGroup';
777
+ name: string;
778
+ predicates: Array<DynamicViewIncludePredicate>;
779
+ }
780
+ declare const GlobalDynamicPredicateGroup = "GlobalDynamicPredicateGroup";
781
+ interface GlobalPredicateGroup extends langium.AstNode {
782
+ readonly $container: Globals;
783
+ readonly $type: 'GlobalPredicateGroup';
784
+ name: string;
785
+ predicates: Array<ViewRulePredicate>;
786
+ }
787
+ declare const GlobalPredicateGroup = "GlobalPredicateGroup";
788
+ interface Globals extends langium.AstNode {
789
+ readonly $container: LikeC4Grammar;
790
+ readonly $type: 'Globals';
791
+ name: 'global';
792
+ predicates: Array<GlobalDynamicPredicateGroup | GlobalPredicateGroup>;
793
+ styles: Array<GlobalStyle | GlobalStyleGroup>;
794
+ }
795
+ declare const Globals = "Globals";
796
+ interface GlobalStyle extends langium.AstNode {
797
+ readonly $container: Globals;
798
+ readonly $type: 'GlobalStyle';
799
+ id: GlobalStyleId;
800
+ props: Array<NotationProperty | StyleProperty>;
801
+ targets: FqnExpressions;
802
+ }
803
+ declare const GlobalStyle = "GlobalStyle";
804
+ interface GlobalStyleGroup extends langium.AstNode {
805
+ readonly $container: Globals;
806
+ readonly $type: 'GlobalStyleGroup';
807
+ id: GlobalStyleId;
808
+ styles: Array<ViewRuleStyle>;
809
+ }
810
+ declare const GlobalStyleGroup = "GlobalStyleGroup";
811
+ interface GlobalStyleId extends langium.AstNode {
812
+ readonly $container: GlobalStyle | GlobalStyleGroup;
813
+ readonly $type: 'GlobalStyleId';
814
+ name: string;
815
+ }
816
+ declare const GlobalStyleId = "GlobalStyleId";
817
+ interface HexColor extends langium.AstNode {
818
+ readonly $container: SpecificationColor | SpecificationTag;
819
+ readonly $type: 'HexColor';
820
+ hex: number | string;
821
+ }
822
+ declare const HexColor = "HexColor";
823
+ interface IconColorProperty extends langium.AstNode {
824
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
825
+ readonly $type: 'IconColorProperty';
826
+ customColor?: langium.Reference<CustomColor>;
827
+ key: 'iconColor';
828
+ themeColor?: ThemeColor;
829
+ }
830
+ declare const IconColorProperty = "IconColorProperty";
831
+ interface IconPositionProperty extends langium.AstNode {
832
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
833
+ readonly $type: 'IconPositionProperty';
834
+ key: 'iconPosition';
835
+ value: IconPositionValue;
335
836
  }
336
- //#endregion
337
- //#region src/references/scope-computation.d.ts
338
- type ElementsContainer = Model | ElementBody | ExtendElementBody;
339
- type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
340
- declare class LikeC4ScopeComputation extends DefaultScopeComputation {
341
- constructor(services: LikeC4Services);
342
- computeExports(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken): Promise<AstNodeDescription[]>;
343
- private exportViews;
344
- private exportGlobals;
345
- private exportModel;
346
- private exportLibrary;
347
- private exportSpecification;
348
- private exportDeployments;
349
- computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken): Promise<PrecomputedScopes>;
350
- protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
351
- protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
837
+ declare const IconPositionProperty = "IconPositionProperty";
838
+ interface IconProperty extends langium.AstNode {
839
+ readonly $container: CustomElementProperties | DeployedInstanceBody | DeploymentNodeBody | DeploymentViewRuleStyle | ElementBody | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
840
+ readonly $type: 'IconProperty';
841
+ key: 'icon';
842
+ libicon?: langium.Reference<LibIcon>;
843
+ value?: 'none' | Uri;
844
+ }
845
+ declare const IconProperty = "IconProperty";
846
+ interface IconSizeProperty extends langium.AstNode {
847
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
848
+ readonly $type: 'IconSizeProperty';
849
+ key: 'iconSize';
850
+ value: SizeValue;
352
851
  }
353
- //#endregion
354
- //#region src/workspace/IndexManager.d.ts
355
- declare class IndexManager extends DefaultIndexManager {
356
- protected services: LikeC4SharedServices;
357
- constructor(services: LikeC4SharedServices);
358
- updateContent(document: LangiumDocument, cancelToken?: CancellationToken): Promise<void>;
359
- projectElements(projectId: ProjectId, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
852
+ declare const IconSizeProperty = "IconSizeProperty";
853
+ interface Imported extends langium.AstNode {
854
+ readonly $container: Imported | ImportsFromPoject;
855
+ readonly $type: 'Imported';
856
+ imported: langium.Reference<Element>;
857
+ prev?: Imported;
858
+ }
859
+ declare const Imported = "Imported";
860
+ interface ImportsFromPoject extends langium.AstNode {
861
+ readonly $container: LikeC4Grammar;
862
+ readonly $type: 'ImportsFromPoject';
863
+ imports: Imported;
864
+ project: string;
865
+ }
866
+ declare const ImportsFromPoject = "ImportsFromPoject";
867
+ interface IncomingRelationExpr extends langium.AstNode {
868
+ readonly $container: Expressions | InOutRelationExpr | RelationExprWhere | RelationExprWith;
869
+ readonly $type: 'IncomingRelationExpr';
870
+ to: FqnExpr$2;
871
+ }
872
+ declare const IncomingRelationExpr = "IncomingRelationExpr";
873
+ interface InOutRelationExpr extends langium.AstNode {
874
+ readonly $container: Expressions | RelationExprWhere | RelationExprWith;
875
+ readonly $type: 'InOutRelationExpr';
876
+ inout: IncomingRelationExpr;
877
+ }
878
+ declare const InOutRelationExpr = "InOutRelationExpr";
879
+ interface LibIcon extends langium.AstNode {
880
+ readonly $container: LikeC4Lib;
881
+ readonly $type: 'LibIcon';
882
+ name: IconId;
883
+ }
884
+ declare const LibIcon = "LibIcon";
885
+ interface LikeC4Grammar extends langium.AstNode {
886
+ readonly $type: 'LikeC4Grammar';
887
+ deployments: Array<ModelDeployments>;
888
+ globals: Array<Globals>;
889
+ imports: Array<ImportsFromPoject>;
890
+ likec4lib: Array<LikeC4Lib>;
891
+ models: Array<Model>;
892
+ specifications: Array<SpecificationRule>;
893
+ views: Array<ModelViews>;
894
+ }
895
+ declare const LikeC4Grammar = "LikeC4Grammar";
896
+ interface LikeC4Lib extends langium.AstNode {
897
+ readonly $container: LikeC4Grammar;
898
+ readonly $type: 'LikeC4Lib';
899
+ icons: Array<LibIcon>;
900
+ }
901
+ declare const LikeC4Lib = "LikeC4Lib";
902
+ interface LineProperty extends langium.AstNode {
903
+ readonly $container: CustomRelationProperties | RelationStyleProperty | SpecificationRelationshipKind;
904
+ readonly $type: 'LineProperty';
905
+ key: 'line';
906
+ value: LineOptions;
907
+ }
908
+ declare const LineProperty = "LineProperty";
909
+ interface LinkProperty extends langium.AstNode {
910
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind;
911
+ readonly $type: 'LinkProperty';
912
+ key: 'link';
913
+ title?: string;
914
+ value: Uri;
915
+ }
916
+ declare const LinkProperty = "LinkProperty";
917
+ interface MarkdownOrString extends langium.AstNode {
918
+ readonly $container: ElementStringProperty | MetadataArray | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | ViewStringProperty;
919
+ readonly $type: 'MarkdownOrString';
920
+ markdown?: string;
921
+ text?: string;
922
+ }
923
+ declare const MarkdownOrString = "MarkdownOrString";
924
+ interface MetadataArray extends langium.AstNode {
925
+ readonly $container: MetadataAttribute;
926
+ readonly $type: 'MetadataArray';
927
+ values: Array<MarkdownOrString>;
928
+ }
929
+ declare const MetadataArray = "MetadataArray";
930
+ interface MetadataAttribute extends langium.AstNode {
931
+ readonly $container: MetadataBody;
932
+ readonly $type: 'MetadataAttribute';
933
+ key: string;
934
+ value: MetadataValue;
935
+ }
936
+ declare const MetadataAttribute = "MetadataAttribute";
937
+ interface MetadataBody extends langium.AstNode {
938
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelationBody | ElementBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | RelationBody;
939
+ readonly $type: 'MetadataBody';
940
+ props: Array<MetadataAttribute>;
941
+ }
942
+ declare const MetadataBody = "MetadataBody";
943
+ interface Model extends langium.AstNode {
944
+ readonly $container: LikeC4Grammar;
945
+ readonly $type: 'Model';
946
+ elements: Array<Element | ExtendElement | ExtendRelation | Relation>;
947
+ name: 'model';
948
+ }
949
+ declare const Model = "Model";
950
+ interface ModelDeployments extends langium.AstNode {
951
+ readonly $container: LikeC4Grammar;
952
+ readonly $type: 'ModelDeployments';
953
+ elements: Array<DeploymentNode | DeploymentRelation | ExtendDeployment>;
954
+ name: 'deployment';
955
+ }
956
+ declare const ModelDeployments = "ModelDeployments";
957
+ interface ModelViews extends langium.AstNode {
958
+ readonly $container: LikeC4Grammar;
959
+ readonly $type: 'ModelViews';
960
+ folder?: string;
961
+ name: 'views';
962
+ styles: Array<ViewRuleStyleOrGlobalRef>;
963
+ views: Array<LikeC4View>;
964
+ }
965
+ declare const ModelViews = "ModelViews";
966
+ interface MultipleProperty extends langium.AstNode {
967
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
968
+ readonly $type: 'MultipleProperty';
969
+ key: 'multiple';
970
+ value: boolean;
971
+ }
972
+ declare const MultipleProperty = "MultipleProperty";
973
+ interface NavigateToProperty extends langium.AstNode {
974
+ readonly $container: CustomElementProperties;
975
+ readonly $type: 'NavigateToProperty';
976
+ key: 'navigateTo';
977
+ value: ViewRef;
978
+ }
979
+ declare const NavigateToProperty = "NavigateToProperty";
980
+ interface NotationProperty extends langium.AstNode {
981
+ readonly $container: CustomElementProperties | CustomRelationProperties | DeploymentViewRuleStyle | GlobalStyle | ViewRuleStyle;
982
+ readonly $type: 'NotationProperty';
983
+ key: 'notation';
984
+ value: MarkdownOrString;
985
+ }
986
+ declare const NotationProperty = "NotationProperty";
987
+ interface NotesProperty extends langium.AstNode {
988
+ readonly $container: CustomElementProperties | CustomRelationProperties;
989
+ readonly $type: 'NotesProperty';
990
+ key: 'notes';
991
+ value: MarkdownOrString;
992
+ }
993
+ declare const NotesProperty = "NotesProperty";
994
+ interface OpacityProperty extends langium.AstNode {
995
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleGroup | ViewRuleStyle;
996
+ readonly $type: 'OpacityProperty';
997
+ key: 'opacity';
998
+ value: string;
999
+ }
1000
+ declare const OpacityProperty = "OpacityProperty";
1001
+ interface OutgoingRelationExpr extends langium.AstNode {
1002
+ readonly $container: DirectedRelationExpr | Expressions | RelationExprWhere | RelationExprWith;
1003
+ readonly $type: 'OutgoingRelationExpr';
1004
+ dotKind?: RelationKindDotRef;
1005
+ from: FqnExpr$2;
1006
+ isBidirectional: boolean;
1007
+ kind?: langium.Reference<RelationshipKind>;
1008
+ }
1009
+ declare const OutgoingRelationExpr = "OutgoingRelationExpr";
1010
+ interface PaddingSizeProperty extends langium.AstNode {
1011
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1012
+ readonly $type: 'PaddingSizeProperty';
1013
+ key: 'padding';
1014
+ value: SizeValue;
360
1015
  }
361
- //#endregion
362
- //#region src/workspace/LangiumDocuments.d.ts
363
- declare class LangiumDocuments extends DefaultLangiumDocuments {
364
- protected services: LikeC4SharedServices;
365
- constructor(services: LikeC4SharedServices);
366
- addDocument(document: LangiumDocument): void;
367
- getDocument(uri: URI): LikeC4LangiumDocument | undefined;
368
- /**
369
- * Returns all known documents, without any filtering.
370
- */
371
- get allKnownDocuments(): Stream<LangiumDocument>;
372
- get all(): Stream<LikeC4LangiumDocument>;
373
- /**
374
- * Returns all documents, excluding built-in documents and documents excluded by ProjectsManager.
375
- */
376
- get allExcludingBuiltin(): Stream<LikeC4LangiumDocument>;
377
- /**
378
- * Returns all documents for a project, including both project documents and documents included by the project.
379
- */
380
- projectDocuments(projectId: ProjectId): Stream<LikeC4LangiumDocument>;
381
- groupedByProject(): Record<ProjectId, NonEmptyArray<LikeC4LangiumDocument>>;
382
- /**
383
- * Reset the project IDs of all documents.
384
- */
385
- resetProjectIds(): void;
1016
+ declare const PaddingSizeProperty = "PaddingSizeProperty";
1017
+ interface Relation extends langium.AstNode {
1018
+ readonly $container: ElementBody | ExtendElementBody | Model;
1019
+ readonly $type: 'Relation';
1020
+ body?: RelationBody;
1021
+ description?: string;
1022
+ dotKind?: RelationKindDotRef;
1023
+ kind?: langium.Reference<RelationshipKind>;
1024
+ source?: FqnRef$2;
1025
+ tags?: Tags;
1026
+ target: FqnRef$2;
1027
+ technology?: string;
1028
+ title?: string;
1029
+ }
1030
+ declare const Relation = "Relation";
1031
+ interface RelationBody extends langium.AstNode {
1032
+ readonly $container: Relation;
1033
+ readonly $type: 'RelationBody';
1034
+ props: Array<RelationProperty>;
1035
+ tags?: Tags;
1036
+ }
1037
+ declare const RelationBody = "RelationBody";
1038
+ interface RelationExprWhere extends langium.AstNode {
1039
+ readonly $container: Expressions | RelationExprWith;
1040
+ readonly $type: 'RelationExprWhere';
1041
+ subject: RelationExpr$1;
1042
+ where?: WhereRelationExpression;
1043
+ }
1044
+ declare const RelationExprWhere = "RelationExprWhere";
1045
+ interface RelationExprWith extends langium.AstNode {
1046
+ readonly $container: Expressions;
1047
+ readonly $type: 'RelationExprWith';
1048
+ custom?: CustomRelationProperties;
1049
+ subject: RelationExprOrWhere;
1050
+ }
1051
+ declare const RelationExprWith = "RelationExprWith";
1052
+ interface RelationKindDotRef extends langium.AstNode {
1053
+ readonly $container: AbstractDynamicStep | DeploymentRelation | ExtendRelation | OutgoingRelationExpr | Relation;
1054
+ readonly $type: 'RelationKindDotRef';
1055
+ kind: langium.Reference<RelationshipKind>;
1056
+ }
1057
+ declare const RelationKindDotRef = "RelationKindDotRef";
1058
+ interface RelationNavigateToProperty extends langium.AstNode {
1059
+ readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
1060
+ readonly $type: 'RelationNavigateToProperty';
1061
+ key: 'navigateTo';
1062
+ value: DynamicViewRef;
1063
+ }
1064
+ declare const RelationNavigateToProperty = "RelationNavigateToProperty";
1065
+ interface RelationshipKind extends langium.AstNode {
1066
+ readonly $container: SpecificationRelationshipKind;
1067
+ readonly $type: 'RelationshipKind';
1068
+ name: Id;
1069
+ }
1070
+ declare const RelationshipKind = "RelationshipKind";
1071
+ interface RelationStringProperty extends langium.AstNode {
1072
+ readonly $container: CustomRelationProperties | DeploymentRelationBody | RelationBody;
1073
+ readonly $type: 'RelationStringProperty';
1074
+ key: 'description' | 'technology' | 'title';
1075
+ value: MarkdownOrString;
1076
+ }
1077
+ declare const RelationStringProperty = "RelationStringProperty";
1078
+ interface RelationStyleProperty extends langium.AstNode {
1079
+ readonly $container: DeploymentRelationBody | RelationBody;
1080
+ readonly $type: 'RelationStyleProperty';
1081
+ key: 'style';
1082
+ props: Array<RelationshipStyleProperty>;
1083
+ }
1084
+ declare const RelationStyleProperty = "RelationStyleProperty";
1085
+ interface RGBAColor extends langium.AstNode {
1086
+ readonly $container: SpecificationColor | SpecificationTag;
1087
+ readonly $type: 'RGBAColor';
1088
+ alpha?: number | string;
1089
+ blue: number;
1090
+ green: number;
1091
+ red: number;
1092
+ }
1093
+ declare const RGBAColor = "RGBAColor";
1094
+ interface ShapeProperty extends langium.AstNode {
1095
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1096
+ readonly $type: 'ShapeProperty';
1097
+ key: 'shape';
1098
+ value: ElementShape;
1099
+ }
1100
+ declare const ShapeProperty = "ShapeProperty";
1101
+ interface ShapeSizeProperty extends langium.AstNode {
1102
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1103
+ readonly $type: 'ShapeSizeProperty';
1104
+ key: 'size';
1105
+ value: SizeValue;
386
1106
  }
387
- //#endregion
388
- //#region src/workspace/WorkspaceManager.d.ts
389
- declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
390
- private services;
391
- protected readonly documentFactory: LangiumDocumentFactory;
392
- protected readonly fileSystemProvider: FileSystemProvider$1;
393
- initialBuildOptions: BuildOptions;
394
- constructor(services: LikeC4SharedServices);
395
- /**
396
- * First load all project config files, then load all documents in the workspace.
397
- */
398
- protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
399
- /**
400
- * Load all additional documents that shall be visible in the context of the given workspace
401
- * folders and add them to the collector. This can be used to include built-in libraries of
402
- * your language, which can be either loaded from provided files or constructed in memory.
403
- */
404
- protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
405
- /**
406
- * Determine whether the given folder entry shall be included while indexing the workspace.
407
- */
408
- protected includeEntry(_workspaceFolder: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
409
- workspace(): WorkspaceFolder | null;
410
- rebuildAll(cancelToken?: Cancellation.CancellationToken): Promise<void>;
411
- get workspaceUri(): URI$2;
412
- get workspaceURL(): URL;
1107
+ declare const ShapeSizeProperty = "ShapeSizeProperty";
1108
+ interface SpecificationColor extends langium.AstNode {
1109
+ readonly $container: SpecificationRule;
1110
+ readonly $type: 'SpecificationColor';
1111
+ color: ColorLiteral$1;
1112
+ name: CustomColor;
1113
+ }
1114
+ declare const SpecificationColor = "SpecificationColor";
1115
+ interface SpecificationDeploymentNodeKind extends langium.AstNode {
1116
+ readonly $container: SpecificationRule;
1117
+ readonly $type: 'SpecificationDeploymentNodeKind';
1118
+ kind: DeploymentNodeKind;
1119
+ props: Array<ElementStyleProperty | LinkProperty | SpecificationElementStringProperty>;
1120
+ tags?: Tags;
1121
+ }
1122
+ declare const SpecificationDeploymentNodeKind = "SpecificationDeploymentNodeKind";
1123
+ interface SpecificationElementKind extends langium.AstNode {
1124
+ readonly $container: SpecificationRule;
1125
+ readonly $type: 'SpecificationElementKind';
1126
+ kind: ElementKind;
1127
+ props: Array<ElementStyleProperty | LinkProperty | SpecificationElementStringProperty>;
1128
+ tags?: Tags;
1129
+ }
1130
+ declare const SpecificationElementKind = "SpecificationElementKind";
1131
+ interface SpecificationElementStringProperty extends langium.AstNode {
1132
+ readonly $container: SpecificationDeploymentNodeKind | SpecificationElementKind;
1133
+ readonly $type: 'SpecificationElementStringProperty';
1134
+ key: 'description' | 'notation' | 'summary' | 'technology' | 'title';
1135
+ value: MarkdownOrString;
1136
+ }
1137
+ declare const SpecificationElementStringProperty = "SpecificationElementStringProperty";
1138
+ interface SpecificationRelationshipKind extends langium.AstNode {
1139
+ readonly $container: SpecificationRule;
1140
+ readonly $type: 'SpecificationRelationshipKind';
1141
+ kind: RelationshipKind;
1142
+ props: Array<RelationshipStyleProperty | SpecificationRelationshipStringProperty>;
1143
+ }
1144
+ declare const SpecificationRelationshipKind = "SpecificationRelationshipKind";
1145
+ interface SpecificationRelationshipStringProperty extends langium.AstNode {
1146
+ readonly $container: SpecificationRelationshipKind;
1147
+ readonly $type: 'SpecificationRelationshipStringProperty';
1148
+ key: 'notation' | 'technology';
1149
+ value: MarkdownOrString;
1150
+ }
1151
+ declare const SpecificationRelationshipStringProperty = "SpecificationRelationshipStringProperty";
1152
+ interface SpecificationRule extends langium.AstNode {
1153
+ readonly $container: LikeC4Grammar;
1154
+ readonly $type: 'SpecificationRule';
1155
+ colors: Array<SpecificationColor>;
1156
+ deploymentNodes: Array<SpecificationDeploymentNodeKind>;
1157
+ elements: Array<SpecificationElementKind>;
1158
+ name: 'specification';
1159
+ relationships: Array<SpecificationRelationshipKind>;
1160
+ tags: Array<SpecificationTag>;
1161
+ }
1162
+ declare const SpecificationRule = "SpecificationRule";
1163
+ interface SpecificationTag extends langium.AstNode {
1164
+ readonly $container: SpecificationRule;
1165
+ readonly $type: 'SpecificationTag';
1166
+ color?: ColorLiteral$1;
1167
+ tag: Tag$1;
1168
+ }
1169
+ declare const SpecificationTag = "SpecificationTag";
1170
+ interface StrictFqnElementRef extends langium.AstNode {
1171
+ readonly $container: ExtendElement | StrictFqnElementRef;
1172
+ readonly $type: 'StrictFqnElementRef';
1173
+ el: langium.Reference<Element>;
1174
+ parent?: StrictFqnElementRef;
1175
+ }
1176
+ declare const StrictFqnElementRef = "StrictFqnElementRef";
1177
+ interface StrictFqnRef extends langium.AstNode {
1178
+ readonly $container: ExtendDeployment | StrictFqnRef;
1179
+ readonly $type: 'StrictFqnRef';
1180
+ parent?: StrictFqnRef;
1181
+ value: langium.Reference<Referenceable>;
1182
+ }
1183
+ declare const StrictFqnRef = "StrictFqnRef";
1184
+ interface Tag$1 extends langium.AstNode {
1185
+ readonly $container: SpecificationTag;
1186
+ readonly $type: 'Tag';
1187
+ name: Id;
1188
+ }
1189
+ declare const Tag$1 = "Tag";
1190
+ interface TagRef extends langium.AstNode {
1191
+ readonly $container: ElementTagExpression | Tags | WhereElementTag | WhereRelationParticipantTag | WhereRelationTag;
1192
+ readonly $type: 'TagRef';
1193
+ tag: langium.Reference<Tag$1>;
1194
+ }
1195
+ declare const TagRef = "TagRef";
1196
+ interface Tags extends langium.AstNode {
1197
+ readonly $container: DeployedInstanceBody | DeploymentNodeBody | DeploymentRelation | DeploymentRelationBody | DeploymentViewBody | DynamicViewBody | ElementBody | ElementViewBody | ExtendDeploymentBody | ExtendElementBody | ExtendRelationBody | Relation | RelationBody | SpecificationDeploymentNodeKind | SpecificationElementKind | Tags;
1198
+ readonly $type: 'Tags';
1199
+ prev?: Tags;
1200
+ values: Array<TagRef>;
1201
+ }
1202
+ declare const Tags = "Tags";
1203
+ interface TextSizeProperty extends langium.AstNode {
1204
+ readonly $container: CustomElementProperties | DeploymentViewRuleStyle | ElementStyleProperty | GlobalStyle | ViewRuleStyle;
1205
+ readonly $type: 'TextSizeProperty';
1206
+ key: 'textSize';
1207
+ value: SizeValue;
413
1208
  }
1209
+ declare const TextSizeProperty = "TextSizeProperty";
1210
+ interface ViewRef extends langium.AstNode {
1211
+ readonly $container: NavigateToProperty;
1212
+ readonly $type: 'ViewRef';
1213
+ view: langium.Reference<LikeC4View>;
1214
+ }
1215
+ declare const ViewRef = "ViewRef";
1216
+ interface ViewRuleAutoLayout extends langium.AstNode {
1217
+ readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1218
+ readonly $type: 'ViewRuleAutoLayout';
1219
+ direction: ViewLayoutDirection;
1220
+ nodeSep?: number;
1221
+ rankSep?: number;
1222
+ }
1223
+ declare const ViewRuleAutoLayout = "ViewRuleAutoLayout";
1224
+ interface ViewRuleGlobalPredicateRef extends langium.AstNode {
1225
+ readonly $container: ElementViewBody;
1226
+ readonly $type: 'ViewRuleGlobalPredicateRef';
1227
+ predicate: langium.Reference<GlobalPredicateGroup>;
1228
+ }
1229
+ declare const ViewRuleGlobalPredicateRef = "ViewRuleGlobalPredicateRef";
1230
+ interface ViewRuleGlobalStyle extends langium.AstNode {
1231
+ readonly $container: DynamicViewBody | ElementViewBody | ModelViews;
1232
+ readonly $type: 'ViewRuleGlobalStyle';
1233
+ style: langium.Reference<GlobalStyleId>;
1234
+ }
1235
+ declare const ViewRuleGlobalStyle = "ViewRuleGlobalStyle";
1236
+ interface ViewRuleGroup extends langium.AstNode {
1237
+ readonly $container: ElementViewBody | ViewRuleGroup;
1238
+ readonly $type: 'ViewRuleGroup';
1239
+ groupRules: Array<ViewRuleGroup | ViewRulePredicate>;
1240
+ props: Array<BorderProperty | ColorProperty | OpacityProperty>;
1241
+ title?: string;
1242
+ }
1243
+ declare const ViewRuleGroup = "ViewRuleGroup";
1244
+ interface ViewRulePredicate extends langium.AstNode {
1245
+ readonly $container: ElementViewBody | GlobalPredicateGroup | ViewRuleGroup;
1246
+ readonly $type: 'ViewRulePredicate';
1247
+ exprs: Expressions;
1248
+ isInclude: boolean;
1249
+ }
1250
+ declare const ViewRulePredicate = "ViewRulePredicate";
1251
+ interface ViewRuleRank extends langium.AstNode {
1252
+ readonly $container: ElementViewBody;
1253
+ readonly $type: 'ViewRuleRank';
1254
+ targets: FqnExpressions;
1255
+ value?: RankValue;
1256
+ }
1257
+ declare const ViewRuleRank = "ViewRuleRank";
1258
+ interface ViewRuleStyle extends langium.AstNode {
1259
+ readonly $container: DynamicViewBody | ElementViewBody | GlobalStyleGroup | ModelViews;
1260
+ readonly $type: 'ViewRuleStyle';
1261
+ props: Array<NotationProperty | StyleProperty>;
1262
+ targets: FqnExpressions;
1263
+ }
1264
+ declare const ViewRuleStyle = "ViewRuleStyle";
1265
+ interface ViewStringProperty extends langium.AstNode {
1266
+ readonly $container: DeploymentViewBody | DynamicViewBody | ElementViewBody;
1267
+ readonly $type: 'ViewStringProperty';
1268
+ key: 'description' | 'title';
1269
+ value: MarkdownOrString;
1270
+ }
1271
+ declare const ViewStringProperty = "ViewStringProperty";
1272
+ interface WhereBinaryExpression extends langium.AstNode {
1273
+ readonly $container: FqnExprWhere | RelationExprWhere | WhereBinaryExpression | WhereElementNegation | WhereRelationNegation;
1274
+ readonly $type: 'WhereBinaryExpression';
1275
+ left: WhereElementExpression | WhereRelationExpression;
1276
+ operator: 'and' | 'or';
1277
+ right: WhereElementExpression | WhereRelationExpression;
1278
+ }
1279
+ declare const WhereBinaryExpression = "WhereBinaryExpression";
1280
+ interface WhereElementKind extends langium.AstNode {
1281
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1282
+ readonly $type: 'WhereElementKind';
1283
+ not: boolean;
1284
+ operator: 'is' | string;
1285
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1286
+ }
1287
+ declare const WhereElementKind = "WhereElementKind";
1288
+ interface WhereElementNegation extends langium.AstNode {
1289
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1290
+ readonly $type: 'WhereElementNegation';
1291
+ value: WhereElementExpression;
1292
+ }
1293
+ declare const WhereElementNegation = "WhereElementNegation";
1294
+ interface WhereElementTag extends langium.AstNode {
1295
+ readonly $container: FqnExprWhere | WhereBinaryExpression | WhereElementNegation;
1296
+ readonly $type: 'WhereElementTag';
1297
+ not: boolean;
1298
+ operator: 'is' | string;
1299
+ value: TagRef;
1300
+ }
1301
+ declare const WhereElementTag = "WhereElementTag";
1302
+ interface WhereRelationKind extends langium.AstNode {
1303
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1304
+ readonly $type: 'WhereRelationKind';
1305
+ not: boolean;
1306
+ operator: 'is' | string;
1307
+ value: langium.Reference<RelationshipKind>;
1308
+ }
1309
+ declare const WhereRelationKind = "WhereRelationKind";
1310
+ interface WhereRelationNegation extends langium.AstNode {
1311
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1312
+ readonly $type: 'WhereRelationNegation';
1313
+ value: WhereRelationExpression;
1314
+ }
1315
+ declare const WhereRelationNegation = "WhereRelationNegation";
1316
+ interface WhereRelationParticipantKind extends langium.AstNode {
1317
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1318
+ readonly $type: 'WhereRelationParticipantKind';
1319
+ not: boolean;
1320
+ operator: 'is' | string;
1321
+ participant: Participant;
1322
+ value: langium.Reference<DeploymentNodeOrElementKind>;
1323
+ }
1324
+ declare const WhereRelationParticipantKind = "WhereRelationParticipantKind";
1325
+ interface WhereRelationParticipantTag extends langium.AstNode {
1326
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1327
+ readonly $type: 'WhereRelationParticipantTag';
1328
+ not: boolean;
1329
+ operator: 'is' | string;
1330
+ participant: Participant;
1331
+ value: TagRef;
1332
+ }
1333
+ declare const WhereRelationParticipantTag = "WhereRelationParticipantTag";
1334
+ interface WhereRelationTag extends langium.AstNode {
1335
+ readonly $container: RelationExprWhere | WhereBinaryExpression | WhereRelationNegation;
1336
+ readonly $type: 'WhereRelationTag';
1337
+ not: boolean;
1338
+ operator: 'is' | string;
1339
+ value: TagRef;
1340
+ }
1341
+ declare const WhereRelationTag = "WhereRelationTag";
1342
+ interface WildcardExpression extends langium.AstNode {
1343
+ readonly $container: DirectedRelationExpr | Expressions | FqnExprWhere | FqnExprWith | FqnExpressions | IncomingRelationExpr | OutgoingRelationExpr;
1344
+ readonly $type: 'WildcardExpression';
1345
+ isWildcard: boolean;
1346
+ }
1347
+ declare const WildcardExpression = "WildcardExpression";
1348
+ interface DynamicStepChain extends AbstractDynamicStep {
1349
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1350
+ readonly $type: 'DynamicStepChain';
1351
+ source: DynamicStepChain | DynamicStepSingle;
1352
+ }
1353
+ declare const DynamicStepChain = "DynamicStepChain";
1354
+ interface DynamicStepSingle extends AbstractDynamicStep {
1355
+ readonly $container: DynamicStepChain | DynamicViewBody | DynamicViewParallelSteps;
1356
+ readonly $type: 'DynamicStepSingle';
1357
+ isBackward: boolean;
1358
+ source: ElementRef;
1359
+ }
1360
+ declare const DynamicStepSingle = "DynamicStepSingle";
1361
+ type LikeC4AstType = {
1362
+ AbstractDynamicStep: AbstractDynamicStep;
1363
+ AnyProperty: AnyProperty;
1364
+ ArrowProperty: ArrowProperty;
1365
+ BorderProperty: BorderProperty;
1366
+ ColorLiteral: ColorLiteral$1;
1367
+ ColorProperty: ColorProperty;
1368
+ CustomColor: CustomColor;
1369
+ CustomElementProperties: CustomElementProperties;
1370
+ CustomRelationProperties: CustomRelationProperties;
1371
+ DeployedInstance: DeployedInstance;
1372
+ DeployedInstanceBody: DeployedInstanceBody;
1373
+ DeploymentElement: DeploymentElement;
1374
+ DeploymentNode: DeploymentNode;
1375
+ DeploymentNodeBody: DeploymentNodeBody;
1376
+ DeploymentNodeKind: DeploymentNodeKind;
1377
+ DeploymentNodeOrElementKind: DeploymentNodeOrElementKind;
1378
+ DeploymentRelation: DeploymentRelation;
1379
+ DeploymentRelationBody: DeploymentRelationBody;
1380
+ DeploymentView: DeploymentView;
1381
+ DeploymentViewBody: DeploymentViewBody;
1382
+ DeploymentViewRule: DeploymentViewRule;
1383
+ DeploymentViewRulePredicate: DeploymentViewRulePredicate;
1384
+ DeploymentViewRuleStyle: DeploymentViewRuleStyle;
1385
+ DirectedRelationExpr: DirectedRelationExpr;
1386
+ DynamicStepChain: DynamicStepChain;
1387
+ DynamicStepSingle: DynamicStepSingle;
1388
+ DynamicView: DynamicView;
1389
+ DynamicViewBody: DynamicViewBody;
1390
+ DynamicViewDisplayVariantProperty: DynamicViewDisplayVariantProperty;
1391
+ DynamicViewGlobalPredicateRef: DynamicViewGlobalPredicateRef;
1392
+ DynamicViewIncludePredicate: DynamicViewIncludePredicate;
1393
+ DynamicViewParallelSteps: DynamicViewParallelSteps;
1394
+ DynamicViewProperty: DynamicViewProperty;
1395
+ DynamicViewRef: DynamicViewRef;
1396
+ DynamicViewRule: DynamicViewRule;
1397
+ DynamicViewStep: DynamicViewStep;
1398
+ Element: Element;
1399
+ ElementBody: ElementBody;
1400
+ ElementKind: ElementKind;
1401
+ ElementKindExpression: ElementKindExpression;
1402
+ ElementProperty: ElementProperty;
1403
+ ElementRef: ElementRef;
1404
+ ElementStringProperty: ElementStringProperty;
1405
+ ElementStyleProperty: ElementStyleProperty;
1406
+ ElementTagExpression: ElementTagExpression;
1407
+ ElementView: ElementView;
1408
+ ElementViewBody: ElementViewBody;
1409
+ ElementViewRef: ElementViewRef;
1410
+ ExpressionV2: ExpressionV2;
1411
+ Expressions: Expressions;
1412
+ ExtendDeployment: ExtendDeployment;
1413
+ ExtendDeploymentBody: ExtendDeploymentBody;
1414
+ ExtendElement: ExtendElement;
1415
+ ExtendElementBody: ExtendElementBody;
1416
+ ExtendElementProperty: ExtendElementProperty;
1417
+ ExtendRelation: ExtendRelation;
1418
+ ExtendRelationBody: ExtendRelationBody;
1419
+ ExtendRelationProperty: ExtendRelationProperty;
1420
+ FqnExpr: FqnExpr$2;
1421
+ FqnExprOrWhere: FqnExprOrWhere;
1422
+ FqnExprOrWith: FqnExprOrWith;
1423
+ FqnExprWhere: FqnExprWhere;
1424
+ FqnExprWith: FqnExprWith;
1425
+ FqnExpressions: FqnExpressions;
1426
+ FqnRef: FqnRef$2;
1427
+ FqnRefExpr: FqnRefExpr;
1428
+ FqnReferenceable: FqnReferenceable;
1429
+ GlobalDynamicPredicateGroup: GlobalDynamicPredicateGroup;
1430
+ GlobalPredicateGroup: GlobalPredicateGroup;
1431
+ GlobalStyle: GlobalStyle;
1432
+ GlobalStyleGroup: GlobalStyleGroup;
1433
+ GlobalStyleId: GlobalStyleId;
1434
+ Globals: Globals;
1435
+ HexColor: HexColor;
1436
+ IconColorProperty: IconColorProperty;
1437
+ IconPositionProperty: IconPositionProperty;
1438
+ IconProperty: IconProperty;
1439
+ IconSizeProperty: IconSizeProperty;
1440
+ Imported: Imported;
1441
+ ImportsFromPoject: ImportsFromPoject;
1442
+ InOutRelationExpr: InOutRelationExpr;
1443
+ IncomingRelationExpr: IncomingRelationExpr;
1444
+ LibIcon: LibIcon;
1445
+ LikeC4Grammar: LikeC4Grammar;
1446
+ LikeC4Lib: LikeC4Lib;
1447
+ LikeC4View: LikeC4View;
1448
+ LineProperty: LineProperty;
1449
+ LinkProperty: LinkProperty;
1450
+ MarkdownOrString: MarkdownOrString;
1451
+ MetadataArray: MetadataArray;
1452
+ MetadataAttribute: MetadataAttribute;
1453
+ MetadataBody: MetadataBody;
1454
+ MetadataProperty: MetadataProperty;
1455
+ MetadataValue: MetadataValue;
1456
+ Model: Model;
1457
+ ModelDeployments: ModelDeployments;
1458
+ ModelReferenceable: ModelReferenceable;
1459
+ ModelViews: ModelViews;
1460
+ MultipleProperty: MultipleProperty;
1461
+ NavigateToProperty: NavigateToProperty;
1462
+ NotationProperty: NotationProperty;
1463
+ NotesProperty: NotesProperty;
1464
+ OpacityProperty: OpacityProperty;
1465
+ OutgoingRelationExpr: OutgoingRelationExpr;
1466
+ PaddingSizeProperty: PaddingSizeProperty;
1467
+ RGBAColor: RGBAColor;
1468
+ Referenceable: Referenceable;
1469
+ Relation: Relation;
1470
+ RelationBody: RelationBody;
1471
+ RelationExpr: RelationExpr$1;
1472
+ RelationExprOrWhere: RelationExprOrWhere;
1473
+ RelationExprOrWith: RelationExprOrWith;
1474
+ RelationExprWhere: RelationExprWhere;
1475
+ RelationExprWith: RelationExprWith;
1476
+ RelationKindDotRef: RelationKindDotRef;
1477
+ RelationNavigateToProperty: RelationNavigateToProperty;
1478
+ RelationProperty: RelationProperty;
1479
+ RelationStringProperty: RelationStringProperty;
1480
+ RelationStyleProperty: RelationStyleProperty;
1481
+ RelationshipKind: RelationshipKind;
1482
+ RelationshipStyleProperty: RelationshipStyleProperty;
1483
+ ShapeProperty: ShapeProperty;
1484
+ ShapeSizeProperty: ShapeSizeProperty;
1485
+ SizeProperty: SizeProperty;
1486
+ SpecificationColor: SpecificationColor;
1487
+ SpecificationDeploymentNodeKind: SpecificationDeploymentNodeKind;
1488
+ SpecificationElementKind: SpecificationElementKind;
1489
+ SpecificationElementStringProperty: SpecificationElementStringProperty;
1490
+ SpecificationRelationshipKind: SpecificationRelationshipKind;
1491
+ SpecificationRelationshipStringProperty: SpecificationRelationshipStringProperty;
1492
+ SpecificationRule: SpecificationRule;
1493
+ SpecificationTag: SpecificationTag;
1494
+ StrictFqnElementRef: StrictFqnElementRef;
1495
+ StrictFqnRef: StrictFqnRef;
1496
+ StringProperty: StringProperty;
1497
+ StyleProperty: StyleProperty;
1498
+ Tag: Tag$1;
1499
+ TagRef: TagRef;
1500
+ Tags: Tags;
1501
+ TextSizeProperty: TextSizeProperty;
1502
+ ViewProperty: ViewProperty;
1503
+ ViewRef: ViewRef;
1504
+ ViewRule: ViewRule;
1505
+ ViewRuleAutoLayout: ViewRuleAutoLayout;
1506
+ ViewRuleGlobalPredicateRef: ViewRuleGlobalPredicateRef;
1507
+ ViewRuleGlobalStyle: ViewRuleGlobalStyle;
1508
+ ViewRuleGroup: ViewRuleGroup;
1509
+ ViewRulePredicate: ViewRulePredicate;
1510
+ ViewRuleRank: ViewRuleRank;
1511
+ ViewRuleStyle: ViewRuleStyle;
1512
+ ViewRuleStyleOrGlobalRef: ViewRuleStyleOrGlobalRef;
1513
+ ViewStringProperty: ViewStringProperty;
1514
+ WhereBinaryExpression: WhereBinaryExpression;
1515
+ WhereElement: WhereElement;
1516
+ WhereElementExpression: WhereElementExpression;
1517
+ WhereElementKind: WhereElementKind;
1518
+ WhereElementNegation: WhereElementNegation;
1519
+ WhereElementTag: WhereElementTag;
1520
+ WhereExpression: WhereExpression;
1521
+ WhereKindEqual: WhereKindEqual;
1522
+ WhereRelation: WhereRelation;
1523
+ WhereRelationExpression: WhereRelationExpression;
1524
+ WhereRelationKind: WhereRelationKind;
1525
+ WhereRelationNegation: WhereRelationNegation;
1526
+ WhereRelationParticipantKind: WhereRelationParticipantKind;
1527
+ WhereRelationParticipantTag: WhereRelationParticipantTag;
1528
+ WhereRelationTag: WhereRelationTag;
1529
+ WhereTagEqual: WhereTagEqual;
1530
+ WildcardExpression: WildcardExpression;
1531
+ };
414
1532
  //#endregion
415
- //#region src/references/scope-provider.d.ts
416
- declare class LikeC4ScopeProvider extends DefaultScopeProvider {
417
- protected deploymentsIndex: DeploymentsIndex;
418
- protected fqnIndex: FqnIndex;
419
- protected readonly indexManager: IndexManager;
1533
+ //#region src/validation/DocumentValidator.d.ts
1534
+ declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
1535
+ protected services: LikeC4Services;
420
1536
  constructor(services: LikeC4Services);
421
- getScope(context: ReferenceInfo): Scope;
422
- protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
423
- protected genScopeExtendElement({
424
- element
425
- }: ExtendElement): Generator<AstNodeDescription>;
426
- protected genScopeElementView({
427
- viewOf,
428
- extends: ext
429
- }: ElementView): Generator<AstNodeDescription>;
430
- protected getScopeForStrictFqnRef(projectId: ProjectId, container: StrictFqnRef, context: ReferenceInfo): Scope;
431
- protected genScopeExtendDeployment({
432
- deploymentNode
433
- }: ExtendDeployment): Generator<AstNodeDescription>;
434
- protected streamForFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
435
- protected genScopeForParentlessFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
436
- /**
437
- * Computes the scope for a given reference context.
438
- *
439
- * @param context - The reference information containing the context for which the scope is being computed.
440
- * @param referenceType - The type of reference being resolved. Defaults to the reference type derived from the context.
441
- * @returns A scope containing the relevant AST node descriptions for the given reference context.
442
- *
443
- * This method first checks if there are precomputed scopes available in the document. If not, it falls back to the global scope.
444
- * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
445
- * Finally, it combines the collected scopes with the global scope to produce the final scope.
446
- */
447
- protected computeScope(projectId: ProjectId, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
448
- /**
449
- * Create a global scope filtered for the given reference type.
450
- */
451
- protected getProjectScope(projectId: ProjectId, referenceType: string, context: ReferenceInfo): Scope;
452
1537
  /**
453
- * Create a global scope filtered for the given reference type.
1538
+ * If the document is excluded, then we skip validation and return an empty array of diagnostics.
454
1539
  */
455
- protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
1540
+ validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: Cancellation.CancellationToken): Promise<Diagnostic[]>;
456
1541
  }
457
1542
  //#endregion
458
- //#region src/lsp/DocumentSymbolProvider.d.ts
459
- declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
460
- private services;
461
- protected readonly nodeKindProvider: NodeKindProvider;
462
- protected readonly nameProvider: LikeC4NameProvider;
463
- protected readonly parser: LikeC4ModelParser;
464
- protected readonly locator: LikeC4ModelLocator;
465
- constructor(services: LikeC4Services);
466
- getSymbols(doc: LangiumDocument, _params: DocumentSymbolParams, cancelToken?: CancellationToken): Promise<DocumentSymbol[]>;
467
- protected getLikec4LibSymbol(astLib: LikeC4Lib): DocumentSymbol[];
468
- protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
469
- protected getModelSymbol(astModel: Model): DocumentSymbol[];
470
- protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
471
- protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
472
- protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
473
- protected getElementSymbol(astElement: Element): DocumentSymbol[];
474
- protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
475
- protected getKindSymbol(astKind: SpecificationElementKind | SpecificationRelationshipKind): DocumentSymbol | null;
476
- protected getTagSymbol(astTag: SpecificationTag): DocumentSymbol | null;
477
- protected getLibIconSymbol(astTag: LibIcon): DocumentSymbol | null;
478
- protected getViewSymbol(astView: LikeC4View): DocumentSymbol[];
479
- protected getDeploymentElementSymbol(el: DeploymentElement | DeploymentRelation | ExtendDeployment): DocumentSymbol[];
480
- protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
481
- protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
482
- protected symbolKind(node: AstNode): SymbolKind;
483
- }
1543
+ //#region src/validation/index.d.ts
1544
+ declare const isValidatableAstNode: any;
1545
+ type ValidatableAstNode = GuardedBy<typeof isValidatableAstNode>;
1546
+ declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
1547
+ isValid: (n: ValidatableAstNode) => boolean;
1548
+ invalidNodes: WeakSet<WeakKey>;
1549
+ };
1550
+ type ChecksFromDiagnostics = ReturnType<typeof checksFromDiagnostics>;
1551
+ type IsValidFn = ChecksFromDiagnostics['isValid'];
484
1552
  //#endregion
485
- //#region src/lsp/HoverProvider.d.ts
486
- declare class LikeC4HoverProvider extends AstNodeHoverProvider {
487
- private parser;
488
- private locator;
489
- constructor(services: LikeC4Services);
490
- protected getAstNodeHoverContent(node: AstNode): MaybePromise<Hover | undefined>;
491
- }
492
- //#endregion
493
- //#region src/lsp/CodeActionProvider.d.ts
494
- type CommandOrCodeAction = Command | CodeAction;
495
- declare class LikeC4CodeActionProvider implements CodeActionProvider {
496
- /**
497
- * Handle a code action request.
498
- *
499
- * @throws `OperationCancelled` if cancellation is detected during execution
500
- * @throws `ResponseError` if an error is detected that should be sent as response to the client
501
- */
502
- getCodeActions(document: LangiumDocument, params: CodeActionParams): CommandOrCodeAction[] | undefined;
503
- }
504
- //#endregion
505
- //#region src/lsp/SemanticTokenProvider.d.ts
506
- declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
507
- protected services: LikeC4Services;
508
- private rules;
509
- constructor(services: LikeC4Services);
510
- protected initRules(): void;
511
- semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
512
- semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
513
- semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens | SemanticTokensDelta>;
514
- protected ensureState(document: LangiumDocument, cancelToken: CancellationToken$1): Promise<void>;
515
- protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
516
- private highlightNameAndKind;
517
- private highlightView;
518
- private mark;
519
- }
520
- //#endregion
521
- //#region src/mcp/types.d.ts
522
- interface LikeC4MCPServer {
523
- readonly mcp: McpServer;
524
- readonly isStarted: boolean;
525
- readonly port: number;
526
- start(port?: number): Promise<void>;
527
- stop(): Promise<void>;
528
- }
529
- interface LikeC4MCPServerFactory {
530
- create(options?: ServerOptions): McpServer;
531
- }
532
- interface LikeC4MCPServerModuleContext {
533
- mcpServer: (services: LikeC4Services) => LikeC4MCPServer;
534
- mcpServerFactory: (services: LikeC4Services) => LikeC4MCPServerFactory;
535
- }
536
- //#endregion
537
- //#region src/mcp/index.d.ts
538
- declare const NoMCPServer: LikeC4MCPServerModuleContext;
539
- //#endregion
540
- //#region src/model-change/ModelChanges.d.ts
541
- declare class LikeC4ModelChanges {
542
- private services;
543
- private locator;
544
- constructor(services: LikeC4Services);
545
- applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
546
- protected convertToTextEdit({
547
- lookup,
548
- change
549
- }: {
550
- lookup: ViewLocateResult;
551
- change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout>;
552
- }): {
553
- modifiedRange: Range;
554
- edits: TextEdit[];
555
- };
556
- }
557
- //#endregion
558
- //#region src/utils/disposable.d.ts
559
- declare abstract class ADisposable implements Disposable {
560
- protected toDispose: Disposable[];
561
- protected isDisposed: boolean;
562
- onDispose(...disposable: Disposable[]): void;
563
- dispose(): void;
564
- protected throwIfDisposed(): void;
565
- }
566
- //#endregion
567
- //#region src/Rpc.d.ts
568
- declare class Rpc extends ADisposable {
569
- private services;
570
- constructor(services: LikeC4Services);
571
- init(): void;
572
- openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
573
- }
574
- //#endregion
575
- //#region src/shared/NodeKindProvider.d.ts
576
- declare class NodeKindProvider$1 implements NodeKindProvider {
577
- private services;
578
- constructor(services: LangiumSharedServices);
579
- /**
580
- * Returns a `SymbolKind` as used by `WorkspaceSymbolProvider` or `DocumentSymbolProvider`.
581
- */
582
- getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind;
583
- /**
584
- * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
585
- */
586
- getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
587
- }
588
- //#endregion
589
- //#region src/shared/WorkspaceSymbolProvider.d.ts
590
- declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {}
591
- //#endregion
592
- //#region src/views/LikeC4Views.d.ts
593
- type GraphvizOut = {
594
- readonly dot: string;
595
- readonly diagram: LayoutedView;
596
- };
597
- type GraphvizSvgOut = {
598
- readonly id: ViewId;
599
- readonly dot: string;
600
- readonly svg: string;
601
- };
602
- type LayoutViewParams = {
603
- viewId: ViewId;
604
- /**
605
- * Type of layout to apply
606
- * - 'manual' - applies manual layout if any
607
- * - 'auto' - returns latest version with drifts from manual layout if any
608
- * - undefined - returns latest layout as is
609
- */
610
- layoutType?: LayoutType | undefined;
611
- projectId?: ProjectId | undefined;
612
- cancelToken?: CancellationToken | undefined;
613
- };
614
- interface LikeC4Views {
615
- readonly layouter: GraphvizLayouter;
616
- /**
617
- * Returns computed views (i.e. views with predicates computed)
618
- *
619
- * @param projectId - project id, if not specified - uses the default project
620
- */
621
- computedViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<ComputedView[]>;
622
- /**
623
- * Layouts all views (ignoring any manual snapshots)
624
- *
625
- * @param projectId - project id, if not specified - uses the default project
626
- */
627
- layoutAllViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<GraphvizOut[]>;
628
- /**
629
- * Layouts a view.
630
- * If layoutType is 'manual' - applies manual layout if any.
631
- * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
632
- * If not specified - returns latest layout as is
633
- *
634
- * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
635
- *
636
- * @param projectId - project id, if not specified - uses the default project
637
- */
638
- layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
639
- /**
640
- * Returns diagrams.
641
- * If diagram has manual layout, it will be used.
642
- * @param projectId - project id, if not specified - uses the default project
643
- */
644
- diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<DiagramView>>;
645
- /**
646
- * Returns all layouted views as Graphviz output (i.e. views with layout computed)
647
- * @param projectId - project id, if not specified - uses the default project
648
- */
649
- viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<GraphvizSvgOut>>;
650
- /**
651
- * Open view in the preview panel.
652
- * (works only if running as a vscode extension)
653
- *
654
- * @param projectId - project id, if not specified - uses the default project
655
- */
656
- openView(viewId: ViewId, projectId?: ProjectId | undefined): Promise<void>;
657
- /**
658
- * Computes and layouts an adhoc view (not defined in the model)
659
- *
660
- * @param projectId - project id, if not specified - uses the default project
661
- */
662
- adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId | undefined): Promise<LayoutedView>;
663
- }
664
- //#endregion
665
- //#region src/module.d.ts
666
- type LanguageServicesContext = Omit<DefaultSharedModuleContext, 'fileSystemProvider'> & FileSystemModuleContext & LikeC4MCPServerModuleContext & LikeC4ManualLayoutsModuleContext;
667
- interface LikeC4AddedSharedServices {
668
- lsp: {
669
- NodeKindProvider: NodeKindProvider$1;
670
- WorkspaceSymbolProvider: WorkspaceSymbolProvider;
671
- };
672
- workspace: {
673
- Cache: WorkspaceCache<string, any>;
674
- ProjectsManager: ProjectsManager;
675
- IndexManager: IndexManager;
676
- LangiumDocuments: LangiumDocuments;
677
- WorkspaceManager: LikeC4WorkspaceManager;
678
- FileSystemProvider: FileSystemProvider$1;
679
- FileSystemWatcher: FileSystemWatcher;
680
- ManualLayouts: LikeC4ManualLayouts;
681
- };
682
- }
683
- type LikeC4SharedServices = LangiumSharedServices & LikeC4AddedSharedServices;
684
- /**
685
- * Declaration of custom services - add your own service classes here.
686
- */
687
- interface LikeC4AddedServices {
688
- documentation: {
689
- DocumentationProvider: LikeC4DocumentationProvider;
690
- };
691
- validation: {
692
- DocumentValidator: LikeC4DocumentValidator;
693
- };
694
- Rpc: Rpc;
695
- mcp: {
696
- Server: LikeC4MCPServer;
697
- ServerFactory: LikeC4MCPServerFactory;
698
- };
699
- likec4: {
700
- LanguageServices: LikeC4LanguageServices;
701
- Views: LikeC4Views;
702
- Layouter: QueueGraphvizLayoter;
703
- DeploymentsIndex: DeploymentsIndex;
704
- FqnIndex: FqnIndex;
705
- ModelParser: LikeC4ModelParser;
706
- ModelBuilder: LikeC4ModelBuilder;
707
- ModelLocator: LikeC4ModelLocator;
708
- ModelChanges: LikeC4ModelChanges;
709
- };
710
- lsp: {
711
- CompletionProvider: LikeC4CompletionProvider;
712
- DocumentHighlightProvider: LikeC4DocumentHighlightProvider;
713
- DocumentSymbolProvider: LikeC4DocumentSymbolProvider;
714
- SemanticTokenProvider: LikeC4SemanticTokenProvider;
715
- HoverProvider: LikeC4HoverProvider;
716
- CodeLensProvider: LikeC4CodeLensProvider;
717
- DocumentLinkProvider: LikeC4DocumentLinkProvider;
718
- Formatter: LikeC4Formatter;
719
- CodeActionProvider: LikeC4CodeActionProvider;
720
- };
721
- references: {
722
- NameProvider: LikeC4NameProvider;
723
- ScopeComputation: LikeC4ScopeComputation;
724
- ScopeProvider: LikeC4ScopeProvider;
725
- };
726
- shared?: LikeC4SharedServices;
727
- parser: {
728
- ValueConverter: LikeC4ValueConverter;
729
- };
730
- }
731
- type LikeC4Services = LangiumServices & LikeC4AddedServices;
732
- /**
733
- * Most probably you don't need to use this function directly.
734
- * Use {@link createLanguageServices} instead.
735
- * @internal
736
- */
737
- declare function createLikeC4Module(context: LikeC4MCPServerModuleContext): Module<LikeC4Services, PartialLangiumServices & LikeC4AddedServices>;
738
- /**
739
- * Create and initialize likec4 language services with the given context
740
- * @example
741
- * ```ts
742
- * const { shared, likec4 } = createLanguageServices({
743
- * ...WithFileSystem(enableWatcher = true),
744
- * ...WithLikeC4ManualLayouts(),
745
- * ...NoMcpServer(),
746
- * });
747
- * ```
748
- *
749
- * It is possible to extend/override the context with additional modules
750
- * See Langium documentation for more details (or at the CliContext in packages/likec4/src/language/module.ts).
751
- */
752
- declare function createLanguageServices(context: Partial<LanguageServicesContext>): {
753
- shared: LikeC4SharedServices;
754
- likec4: LikeC4Services;
755
- };
756
- declare function createLanguageServices(context: Partial<LanguageServicesContext>): {
757
- shared: LikeC4SharedServices;
758
- likec4: LikeC4Services;
759
- };
760
- declare function createLanguageServices<I1, I extends I1 & LikeC4Services>(context: Partial<LanguageServicesContext>, module: Module<I, I1> | undefined): {
761
- shared: LikeC4SharedServices;
762
- likec4: I;
763
- };
764
- declare function createLanguageServices<I1, I2, I extends I1 & I2 & LikeC4Services>(context: Partial<LanguageServicesContext>, module: Module<I, I1>, module2: Module<I, I2>): {
765
- shared: LikeC4SharedServices;
766
- likec4: I;
767
- };
768
- declare function createLanguageServices<I1, I2, I3, I extends I1 & I2 & I3 & LikeC4Services>(context: Partial<LanguageServicesContext>, module: Module<I, I1>, module2: Module<I, I2>, module3: Module<I, I3>): {
769
- shared: LikeC4SharedServices;
770
- likec4: I;
771
- };
772
- /**
773
- * Most probably you don't need to use this function directly.
774
- * Use {@link createLanguageServices} instead.
775
- * @internal
776
- */
777
- declare function createSharedServices(context?: Partial<LanguageServicesContext>): LikeC4SharedServices;
778
- //#endregion
779
- //#region src/validation/DocumentValidator.d.ts
780
- declare class LikeC4DocumentValidator extends DefaultDocumentValidator {
781
- protected services: LikeC4Services;
782
- constructor(services: LikeC4Services);
783
- /**
784
- * If the document is excluded, then we skip validation and return an empty array of diagnostics.
785
- */
786
- validateDocument(document: LangiumDocument, options?: ValidationOptions, cancelToken?: Cancellation.CancellationToken): Promise<Diagnostic[]>;
787
- }
788
- //#endregion
789
- //#region src/validation/index.d.ts
790
- type Guard<N extends AstNode> = (n: AstNode) => n is N;
791
- type Guarded<G> = G extends Guard<infer N> ? N : never;
792
- declare const isValidatableAstNode: (n: AstNode) => n is DeploymentView | DynamicView | ElementView | Element | DeployedInstance | DeploymentNode | ImportsFromPoject | Imported | Globals | GlobalPredicateGroup | GlobalDynamicPredicateGroup | GlobalStyle | GlobalStyleGroup | FqnExprWith | DeploymentViewRulePredicate | DynamicViewIncludePredicate | ViewRulePredicate | ViewRuleGroup | RelationExprWith | ElementKindExpression | ElementTagExpression | FqnRefExpr | WildcardExpression | DirectedRelationExpr | FqnExprWhere | IncomingRelationExpr | OutgoingRelationExpr | RelationExprWhere | DeploymentViewRuleStyle | ViewRuleRank | ViewRuleStyle | InOutRelationExpr | DynamicViewParallelSteps | DynamicStepChain | DynamicStepSingle | ViewRuleAutoLayout | LinkProperty | ViewStringProperty | SpecificationDeploymentNodeKind | SpecificationElementKind | ExtendDeployment | DeploymentRelation | ExtendElement | ExtendRelation | Relation | SpecificationRule | BorderProperty | ColorProperty | IconColorProperty | IconPositionProperty | IconProperty | IconSizeProperty | MultipleProperty | OpacityProperty | PaddingSizeProperty | ShapeProperty | ShapeSizeProperty | TextSizeProperty | ElementStyleProperty | SpecificationRelationshipKind | Tags | ViewRuleGlobalPredicateRef | ViewRuleGlobalStyle | DynamicViewGlobalPredicateRef | ArrowProperty | LineProperty | DynamicViewDisplayVariantProperty | MetadataBody | ElementStringProperty | MetadataAttribute | NotationProperty | NotesProperty | RelationStringProperty | SpecificationElementStringProperty | SpecificationRelationshipStringProperty | NavigateToProperty | ElementRef | SpecificationTag | SpecificationColor | HexColor | RGBAColor;
793
- type ValidatableAstNode = Guarded<typeof isValidatableAstNode>;
794
- declare function checksFromDiagnostics(doc: LikeC4LangiumDocument): {
795
- isValid: (n: ValidatableAstNode) => boolean;
796
- invalidNodes: WeakSet<WeakKey>;
797
- };
798
- type ChecksFromDiagnostics = ReturnType<typeof checksFromDiagnostics>;
799
- type IsValidFn = ChecksFromDiagnostics['isValid'];
800
- //#endregion
801
- //#region src/ast.d.ts
802
- declare module 'langium' {
803
- interface LangiumDocument {
804
- likec4ProjectId?: c4.ProjectId;
805
- }
806
- interface AstNodeDescription {
807
- likec4ProjectId?: c4.ProjectId;
808
- }
1553
+ //#region src/ast.d.ts
1554
+ declare module 'langium' {
1555
+ interface LangiumDocument {
1556
+ likec4ProjectId?: c4.ProjectId;
1557
+ }
1558
+ interface AstNodeDescription {
1559
+ likec4ProjectId?: c4.ProjectId;
1560
+ }
809
1561
  }
810
1562
  declare const idattr: unique symbol;
811
1563
  declare module './generated/ast' {
@@ -865,7 +1617,7 @@ interface ParsedAstElement {
865
1617
  id: c4.Fqn;
866
1618
  astPath: string;
867
1619
  kind: c4.ElementKind;
868
- title: string;
1620
+ title?: string;
869
1621
  summary?: c4.MarkdownOrString;
870
1622
  description?: c4.MarkdownOrString;
871
1623
  technology?: string;
@@ -960,14 +1712,6 @@ interface ParsedAstDeploymentView {
960
1712
  manualLayout?: c4.ViewManualLayout;
961
1713
  }
962
1714
  type ParsedAstView = ParsedAstElementView | ParsedAstDynamicView | ParsedAstDeploymentView;
963
- declare const ViewOps: {
964
- writeId<T extends LikeC4View>(node: T, id: c4.ViewId): T;
965
- readId(node: LikeC4View): c4.ViewId | undefined;
966
- };
967
- declare const ElementOps: {
968
- writeId(node: Element | DeploymentElement, id: c4.Fqn | null): Element | DeploymentElement;
969
- readId(node: Element | DeploymentElement): any;
970
- };
971
1715
  interface AstNodeDescriptionWithFqn extends AstNodeDescription {
972
1716
  likec4ProjectId: c4.ProjectId;
973
1717
  id: c4.Fqn;
@@ -995,36 +1739,155 @@ interface LikeC4LangiumDocument extends LikeC4GrammarDocument, LikeC4DocumentPro
995
1739
  interface ParsedLikeC4LangiumDocument extends LikeC4GrammarDocument, Required<LikeC4DocumentProps> {
996
1740
  likec4ProjectId: c4.ProjectId;
997
1741
  }
998
- declare function isLikeC4LangiumDocument(doc: LangiumDocument): doc is LikeC4LangiumDocument;
999
- declare function isParsedLikeC4LangiumDocument(doc: LangiumDocument): doc is ParsedLikeC4LangiumDocument;
1000
- declare function parseMarkdownAsString(node?: MarkdownOrString): string | undefined;
1001
- declare function parseAstPercent(value: string): number;
1002
- declare function parseAstOpacityProperty({
1003
- value
1004
- }: OpacityProperty): number;
1005
- declare function parseAstSizeValue({
1006
- value
1007
- }: {
1008
- value: SizeValue;
1009
- }): 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1010
- declare function parseAstIconPositionValue({
1011
- value
1012
- }: {
1013
- value: IconPositionValue;
1014
- }): c4.IconPosition;
1015
- declare function toRelationshipStyle(props: RelationshipStyleProperty[] | undefined, isValid: IsValidFn): {
1016
- color?: c4.Color;
1017
- line?: c4.RelationshipLineType;
1018
- head?: c4.RelationshipArrowType;
1019
- tail?: c4.RelationshipArrowType;
1020
- };
1021
- declare function toColor(astNode: ColorProperty | IconColorProperty): c4.Color | undefined;
1022
- declare function toAutoLayout(rule: ViewRuleAutoLayout): c4.ViewRuleAutoLayout;
1023
- declare function toAstViewLayoutDirection(c4: c4.ViewRuleAutoLayout['direction']): ViewLayoutDirection;
1024
- declare function getViewRulePredicateContainer<T extends AstNode>(el: T): ViewRulePredicate | DeploymentViewRulePredicate | DynamicViewIncludePredicate | undefined;
1025
- declare function isFqnRefInsideGlobals(astNode: AstNode): boolean;
1026
- declare function isFqnRefInsideModel(astNode: AstNode): boolean;
1027
- declare function isFqnRefInsideDeployment(astNode: AstNode): boolean;
1742
+ //#endregion
1743
+ //#region src/references/name-provider.d.ts
1744
+ declare class LikeC4NameProvider extends DefaultNameProvider {
1745
+ protected services: LikeC4Services;
1746
+ constructor(services: LikeC4Services);
1747
+ getNameStrict(node: AstNode): string;
1748
+ getName(node: AstNode): string | undefined;
1749
+ getNameNode(node: AstNode): CstNode | undefined;
1750
+ }
1751
+ //#endregion
1752
+ //#region src/references/scope-computation.d.ts
1753
+ type ElementsContainer = Model | ElementBody | ExtendElementBody;
1754
+ type DeploymentsContainer = ModelDeployments | DeploymentNodeBody | ExtendDeploymentBody | DeployedInstanceBody;
1755
+ declare class LikeC4ScopeComputation extends DefaultScopeComputation {
1756
+ constructor(services: LikeC4Services);
1757
+ computeExports(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken): Promise<AstNodeDescription[]>;
1758
+ private exportViews;
1759
+ private exportGlobals;
1760
+ private exportModel;
1761
+ private exportLibrary;
1762
+ private exportSpecification;
1763
+ private exportDeployments;
1764
+ computeLocalScopes(document: LikeC4LangiumDocument, _cancelToken?: CancellationToken): Promise<PrecomputedScopes>;
1765
+ protected processContainer(container: ElementsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
1766
+ protected processDeployments(container: DeploymentsContainer, scopes: PrecomputedScopes, document: LikeC4LangiumDocument): AstNodeDescription[];
1767
+ }
1768
+ //#endregion
1769
+ //#region src/workspace/IndexManager.d.ts
1770
+ declare class IndexManager extends DefaultIndexManager {
1771
+ protected services: LikeC4SharedServices;
1772
+ constructor(services: LikeC4SharedServices);
1773
+ updateContent(document: LangiumDocument, cancelToken?: CancellationToken): Promise<void>;
1774
+ projectElements(projectId: ProjectId, nodeType?: string, uris?: Set<string>): Stream<AstNodeDescription>;
1775
+ }
1776
+ //#endregion
1777
+ //#region src/workspace/LangiumDocuments.d.ts
1778
+ declare class LangiumDocuments extends DefaultLangiumDocuments {
1779
+ protected services: LikeC4SharedServices;
1780
+ constructor(services: LikeC4SharedServices);
1781
+ protected get projectsManager(): ProjectsManager;
1782
+ addDocument(document: LangiumDocument): void;
1783
+ getDocument(uri: URI): LangiumDocument | undefined;
1784
+ /**
1785
+ * Returns all user documents
1786
+ */
1787
+ get userDocuments(): Stream<LikeC4LangiumDocument>;
1788
+ /**
1789
+ * Returns all documents (ensures project IDs are set)
1790
+ */
1791
+ get all(): Stream<LangiumDocument>;
1792
+ /**
1793
+ * Returns all documents for a project, including both project documents and documents included by the project.
1794
+ */
1795
+ projectDocuments(projectId: ProjectId): Stream<LikeC4LangiumDocument>;
1796
+ groupedByProject(): Record<ProjectId, NonEmptyArray<LikeC4LangiumDocument>>;
1797
+ /**
1798
+ * Reset the project IDs of all documents.
1799
+ * Returns the URIs
1800
+ */
1801
+ resetProjectIds(): URI[];
1802
+ }
1803
+ //#endregion
1804
+ //#region src/workspace/WorkspaceManager.d.ts
1805
+ declare class LikeC4WorkspaceManager extends DefaultWorkspaceManager {
1806
+ #private;
1807
+ private services;
1808
+ protected readonly documentFactory: LangiumDocumentFactory;
1809
+ protected readonly fileSystemProvider: FileSystemProvider$1;
1810
+ initialBuildOptions: BuildOptions;
1811
+ constructor(services: LikeC4SharedServices);
1812
+ /**
1813
+ * First load all project config files, then load all documents in the workspace.
1814
+ */
1815
+ protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
1816
+ /**
1817
+ * Load all additional documents that shall be visible in the context of the given workspace
1818
+ * folders and add them to the collector. This can be used to include built-in libraries of
1819
+ * your language, which can be either loaded from provided files or constructed in memory.
1820
+ */
1821
+ protected loadAdditionalDocuments(folders: WorkspaceFolder[], collector: (document: LangiumDocument) => void): Promise<void>;
1822
+ /**
1823
+ * Determine whether the given folder entry shall be included while indexing the workspace.
1824
+ */
1825
+ protected includeEntry(_: WorkspaceFolder, entry: FileSystemNode, selector: FileSelector): boolean;
1826
+ workspace(): WorkspaceFolder | null;
1827
+ rebuildAll(cancelToken?: Cancellation.CancellationToken): Promise<void>;
1828
+ get workspaceUri(): URI$2;
1829
+ get workspaceURL(): URL;
1830
+ /**
1831
+ * Force clean all caches
1832
+ */
1833
+ forceCleanCaches(): void;
1834
+ /**
1835
+ * Register a listener to be called when caches are force cleaned
1836
+ */
1837
+ onForceCleanCache(listener: () => void): Disposable;
1838
+ }
1839
+ //#endregion
1840
+ //#region src/references/scope-provider.d.ts
1841
+ declare class LikeC4ScopeProvider extends DefaultScopeProvider {
1842
+ protected deploymentsIndex: DeploymentsIndex;
1843
+ protected fqnIndex: FqnIndex;
1844
+ protected readonly indexManager: IndexManager;
1845
+ constructor(services: LikeC4Services);
1846
+ getScope(context: ReferenceInfo): Scope;
1847
+ protected genUniqueDescedants(element: Element | DeploymentNode | undefined): Generator<AstNodeDescriptionWithFqn, void, any>;
1848
+ protected genScopeExtendElement({
1849
+ element
1850
+ }: ExtendElement): Generator<AstNodeDescription>;
1851
+ protected genScopeElementView({
1852
+ viewOf,
1853
+ extends: ext
1854
+ }: ElementView): Generator<AstNodeDescription>;
1855
+ protected getScopeForStrictFqnRef(projectId: ProjectId, container: StrictFqnRef, context: ReferenceInfo): Scope;
1856
+ protected genScopeExtendDeployment({
1857
+ deploymentNode
1858
+ }: ExtendDeployment): Generator<AstNodeDescription>;
1859
+ protected streamForFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Stream<AstNodeDescription>;
1860
+ protected genScopeForParentlessFqnRef(projectId: ProjectId, container: FqnRef$2, context: ReferenceInfo): Generator<AstNodeDescription>;
1861
+ /**
1862
+ * Computes the scope for a given reference context.
1863
+ *
1864
+ * @param context - The reference information containing the context for which the scope is being computed.
1865
+ * @param referenceType - The type of reference being resolved. Defaults to the reference type derived from the context.
1866
+ * @returns A scope containing the relevant AST node descriptions for the given reference context.
1867
+ *
1868
+ * This method first checks if there are precomputed scopes available in the document. If not, it falls back to the global scope.
1869
+ * It then iterates through the container hierarchy, collecting relevant scopes based on the reference type and container type.
1870
+ * Finally, it combines the collected scopes with the global scope to produce the final scope.
1871
+ */
1872
+ protected computeScope(projectId: ProjectId, context: ReferenceInfo, referenceType?: string): Generator<AstNodeDescription>;
1873
+ /**
1874
+ * Create a global scope filtered for the given reference type.
1875
+ */
1876
+ protected getProjectScope(projectId: ProjectId, referenceType: string, context: ReferenceInfo): Scope;
1877
+ /**
1878
+ * Create a global scope filtered for the given reference type.
1879
+ */
1880
+ protected getGlobalScope(referenceType: string, context: ReferenceInfo): Scope;
1881
+ }
1882
+ //#endregion
1883
+ //#region src/utils/disposable.d.ts
1884
+ declare abstract class ADisposable implements Disposable {
1885
+ protected toDispose: Disposable[];
1886
+ protected isDisposed: boolean;
1887
+ onDispose(...disposable: Disposable[]): void;
1888
+ dispose(): void;
1889
+ protected throwIfDisposed(): void;
1890
+ }
1028
1891
  //#endregion
1029
1892
  //#region src/model/fqn-index.d.ts
1030
1893
  declare class FqnIndex<AstNd = Element> extends ADisposable {
@@ -1033,6 +1896,7 @@ declare class FqnIndex<AstNd = Element> extends ADisposable {
1033
1896
  protected langiumDocuments: LangiumDocuments;
1034
1897
  protected documentCache: DefaultWeakMap<LikeC4LangiumDocument, DocumentFqnIndex>;
1035
1898
  protected workspaceCache: WorkspaceCache<string, AstNodeDescriptionWithFqn[]>;
1899
+ protected logger: any;
1036
1900
  constructor(services: LikeC4Services);
1037
1901
  private documents;
1038
1902
  get(document: LikeC4LangiumDocument): DocumentFqnIndex;
@@ -1089,10 +1953,85 @@ declare class DocumentFqnIndex {
1089
1953
  declare class DeploymentsIndex extends FqnIndex<DeploymentElement> {
1090
1954
  protected services: LikeC4Services;
1091
1955
  protected Names: LikeC4NameProvider;
1956
+ protected logger: any;
1092
1957
  constructor(services: LikeC4Services);
1093
1958
  protected createDocumentIndex(document: LikeC4LangiumDocument): DocumentFqnIndex;
1094
1959
  }
1095
1960
  //#endregion
1961
+ //#region src/model/builder/MergedSpecification.d.ts
1962
+ /**
1963
+ * The `MergedSpecification` class is responsible for merging multiple parsed
1964
+ * LikeC4Langium documents into a single specification. It consolidates tags,
1965
+ * elements, deployments, relationships, and colors from the provided documents
1966
+ * and provides methods to convert parsed models into C4 model elements and relations.
1967
+ */
1968
+ declare class MergedSpecification {
1969
+ readonly specs: Omit<ParsedAstSpecification, 'tags'>;
1970
+ readonly tags: Readonly<Record<c4.Tag, c4.TagSpecification>>;
1971
+ readonly globals: c4.ModelGlobals;
1972
+ readonly imports: MultiMap$1<c4.ProjectId, c4.Fqn, Set<c4.Fqn>>;
1973
+ readonly projectId: c4.ProjectId | undefined;
1974
+ constructor(docs: ReadonlyArray<ParsedLikeC4LangiumDocument>);
1975
+ /**
1976
+ * Converts a parsed model into a C4 model element.
1977
+ */
1978
+ toModelElement: ({
1979
+ tags,
1980
+ links,
1981
+ style,
1982
+ id,
1983
+ kind,
1984
+ title,
1985
+ description,
1986
+ technology,
1987
+ summary,
1988
+ metadata
1989
+ }: ParsedAstElement) => c4.Element | null;
1990
+ /**
1991
+ * Converts a parsed model into a C4 model relation.
1992
+ */
1993
+ toModelRelation: ({
1994
+ astPath: _astPath,
1995
+ source,
1996
+ target,
1997
+ kind,
1998
+ links,
1999
+ id,
2000
+ ...model
2001
+ }: ParsedAstRelation) => c4.Relationship | null;
2002
+ /**
2003
+ * Converts a parsed deployment model into a C4 deployment model
2004
+ */
2005
+ toDeploymentElement: (parsed: ParsedAstDeployment) => c4.DeploymentElement | null;
2006
+ /**
2007
+ * Converts a parsed deployment relation into a C4 deployment relation.
2008
+ */
2009
+ toDeploymentRelation: ({
2010
+ astPath: _astPath,
2011
+ source,
2012
+ target,
2013
+ kind,
2014
+ links,
2015
+ id,
2016
+ ...model
2017
+ }: ParsedAstDeploymentRelation) => c4.DeploymentRelationship | null;
2018
+ }
2019
+ //#endregion
2020
+ //#region src/model/last-seen-artifacts.d.ts
2021
+ /**
2022
+ * Provides access to "last seen artifacts" for a given project,
2023
+ * (Results of the last successful parsing)
2024
+ */
2025
+ declare class LastSeenArtifacts {
2026
+ #private;
2027
+ constructor(services: LikeC4Services);
2028
+ rememberSpecification(specification: MergedSpecification): MergedSpecification;
2029
+ rememberModel<M extends LikeC4Model.Computed>(model: M): M;
2030
+ specification(projectId: c4.ProjectId): MergedSpecification | undefined;
2031
+ styles(projectId: c4.ProjectId): LikeC4Styles | undefined;
2032
+ model(projectId: c4.ProjectId): LikeC4Model.Computed | undefined;
2033
+ }
2034
+ //#endregion
1096
2035
  //#region src/model/model-builder.d.ts
1097
2036
  type ModelParsedListener = (docs: URI[]) => void;
1098
2037
  interface LikeC4ModelBuilder extends Disposable {
@@ -1117,16 +2056,30 @@ declare class LikeC4ModelLocator {
1117
2056
  private parser;
1118
2057
  private projects;
1119
2058
  constructor(services: LikeC4Services);
2059
+ /**
2060
+ * Returns the parsed documents
2061
+ */
1120
2062
  private documents;
1121
- getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): ParsedAstElement | null;
2063
+ getParsedElement(...args: [Element] | [c4.Fqn] | [c4.Fqn, c4.ProjectId]): null | {
2064
+ projectId: c4.ProjectId;
2065
+ element: ParsedAstElement;
2066
+ document: LangiumDocument;
2067
+ };
2068
+ private findParsedElementByFqnIn;
1122
2069
  locateElement(fqn: c4.Fqn, projectId?: c4.ProjectId | undefined): Location | null;
1123
2070
  locateDeploymentElement(deploymentFqn: c4.DeploymentFqn, projectId?: c4.ProjectId | undefined): Location | null;
1124
2071
  locateRelation(relationId: c4.RelationId, projectId?: c4.ProjectId): Location | null;
1125
2072
  locateViewAst(viewId: c4.ViewId, projectId?: c4.ProjectId | undefined): null | ViewLocateResult;
1126
2073
  locateView(viewId: c4.ViewId, projectId?: c4.ProjectId): Location | null;
1127
- locateDocumentTags(documentUri: URI$2, cancelToken?: Cancellation.CancellationToken): Promise<Array<{
1128
- name: string;
1129
- color: string;
2074
+ /**
2075
+ * Returns an array of tags with their name, color, range and whether they are defined in the specification or not.
2076
+ * If the document is not linked, it will wait until it is linked before locating the tags.
2077
+ *
2078
+ * If the document does not belong to any project, it will return null.
2079
+ */
2080
+ locateDocumentTags(documentUri: URI$2, cancelToken?: Cancellation.CancellationToken): Promise<null | Array<{
2081
+ name: Tag;
2082
+ color: c4.ColorLiteral;
1130
2083
  range: Range;
1131
2084
  isSpecification: boolean;
1132
2085
  }>>;
@@ -1137,57 +2090,96 @@ declare class LikeC4ModelLocator {
1137
2090
  }): Location | null;
1138
2091
  }
1139
2092
  //#endregion
1140
- //#region src/filesystem/LikeC4FileSystem.d.ts
1141
- declare const WithFileSystem: (ehableWatcher?: boolean) => FileSystemModuleContext;
1142
- //#endregion
1143
- //#region src/filesystem/LikeC4ManualLayouts.d.ts
1144
- declare const WithLikeC4ManualLayouts: LikeC4ManualLayoutsModuleContext;
2093
+ //#region src/mcp/noop.d.ts
2094
+ declare const NoMCPServer: LikeC4MCPServerModuleContext;
1145
2095
  //#endregion
1146
2096
  //#region src/mcp/server/WithMCPServer.d.ts
1147
2097
  declare function WithMCPServer(type?: 'stdio' | 'sse' | {
1148
2098
  port: number;
1149
2099
  }): LikeC4MCPServerModuleContext;
1150
2100
  //#endregion
1151
- //#region src/index.d.ts
1152
- type StartLanguageServerOptions = {
2101
+ //#region src/views/LikeC4Views.d.ts
2102
+ type GraphvizOut = {
2103
+ readonly dot: string;
2104
+ readonly diagram: LayoutedView;
2105
+ };
2106
+ type GraphvizSvgOut = {
2107
+ readonly id: ViewId;
2108
+ readonly dot: string;
2109
+ readonly svg: string;
2110
+ };
2111
+ type LayoutViewParams = {
2112
+ viewId: ViewId;
2113
+ /**
2114
+ * Type of layout to apply
2115
+ * - 'manual' - applies manual layout if any
2116
+ * - 'auto' - returns latest version with drifts from manual layout if any
2117
+ * - undefined - returns latest layout as is
2118
+ */
2119
+ layoutType?: LayoutType | undefined;
2120
+ projectId?: ProjectId | undefined;
2121
+ cancelToken?: CancellationToken | undefined;
2122
+ };
2123
+ interface LikeC4Views {
2124
+ readonly layouter: GraphvizLayouter;
2125
+ /**
2126
+ * Returns computed views (i.e. views with predicates computed)
2127
+ *
2128
+ * @param projectId - project id, if not specified - uses the default project
2129
+ */
2130
+ computedViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<ComputedView[]>;
2131
+ /**
2132
+ * Layouts all views (ignoring any manual snapshots)
2133
+ *
2134
+ * @param projectId - project id, if not specified - uses the default project
2135
+ */
2136
+ layoutAllViews(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<GraphvizOut[]>;
1153
2137
  /**
1154
- * The Language Server Protocol connection to use.
2138
+ * Layouts a view.
2139
+ * If layoutType is 'manual' - applies manual layout if any.
2140
+ * If layoutType is 'auto' - returns latest version with drifts from manual layout if any
2141
+ * If not specified - returns latest layout as is
2142
+ *
2143
+ * If view not found in model, but there is a snapshot - it will be returned (with empty DOT)
1155
2144
  */
1156
- connection?: Connection;
2145
+ layoutView(params: LayoutViewParams): Promise<GraphvizOut | null>;
1157
2146
  /**
1158
- * Whether to enable the file system watcher.
1159
- * @default true
2147
+ * Returns diagrams.
2148
+ * If diagram has manual layout, it will be used.
2149
+ * @param projectId - project id, if not specified - uses the default project
1160
2150
  */
1161
- enableWatcher?: boolean;
2151
+ diagrams(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<DiagramView>>;
1162
2152
  /**
1163
- * @default true
2153
+ * Returns all layouted views as Graphviz output (i.e. views with layout computed)
2154
+ * @param projectId - project id, if not specified - uses the default project
1164
2155
  */
1165
- enableTelemetry?: boolean;
2156
+ viewsAsGraphvizOut(projectId?: ProjectId | undefined, cancelToken?: CancellationToken): Promise<Array<GraphvizSvgOut>>;
1166
2157
  /**
1167
- * Whether to enable the MCP server.
1168
- * @default 'sse'
2158
+ * Open view in the preview panel.
2159
+ * (works only if running as a vscode extension)
2160
+ *
2161
+ * @param projectId - project id, if not specified - uses the default project
1169
2162
  */
1170
- enableMCP?: false | 'stdio' | 'sse' | {
1171
- port: number;
1172
- };
2163
+ openView(viewId: ViewId, projectId?: ProjectId | undefined): Promise<void>;
1173
2164
  /**
1174
- * Whether to enable manual layouts, stored in json5 files.
1175
- * @default true
2165
+ * Computes and layouts an adhoc view (not defined in the model)
2166
+ *
2167
+ * @param projectId - project id, if not specified - uses the default project
1176
2168
  */
1177
- enableManualLayouts?: boolean;
1178
- };
1179
- declare function startLanguageServer$1(options?: StartLanguageServerOptions): {
1180
- shared: LikeC4SharedServices;
1181
- likec4: LikeC4Services;
1182
- };
2169
+ adhocView(predicates: AdhocViewPredicate[], projectId?: ProjectId | undefined): Promise<LayoutedView>;
2170
+ }
1183
2171
  //#endregion
1184
2172
  //#region src/model/parser/Base.d.ts
2173
+ type ParserLevel = 'base' | 'model' | 'deployment' | 'fqnref' | 'relation' | 'views' | 'globals' | 'imports' | 'specification';
1185
2174
  declare class BaseParser {
1186
2175
  readonly services: LikeC4Services;
1187
2176
  readonly doc: ParsedLikeC4LangiumDocument;
2177
+ readonly project: Project;
1188
2178
  isValid: IsValidFn;
1189
- constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument);
1190
- get project(): Project;
2179
+ constructor(services: LikeC4Services, doc: ParsedLikeC4LangiumDocument, project: Project);
2180
+ logError(error: unknown, astNode?: AstNode | Reference<AstNode>, level?: ParserLevel): void;
2181
+ tryParse<N extends AstNode, T>(level: ParserLevel, node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2182
+ tryMap<N extends AstNode, T>(level: ParserLevel, iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1191
2183
  resolveFqn(node: FqnReferenceable): c4.Fqn;
1192
2184
  getAstNodePath(node: AstNode): string;
1193
2185
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
@@ -1200,11 +2192,11 @@ declare class BaseParser {
1200
2192
  parseTags<E extends {
1201
2193
  tags?: Tags;
1202
2194
  }>(withTags?: E): c4.NonEmptyArray<c4.Tag> | null;
1203
- convertLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
1204
- parseLinks(source?: LinkProperty['$container']): c4.Link[] | undefined;
2195
+ convertLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
2196
+ parseLinks(source?: LinkProperty['$container']): c4.NonEmptyArray<c4.Link> | undefined;
1205
2197
  parseIconProperty(prop: IconProperty | undefined): c4.IconUrl | undefined;
1206
2198
  parseImageAlias(value: string): string | undefined;
1207
- parseColorLiteral(astNode: ColorLiteral): c4.ColorLiteral | undefined;
2199
+ parseColorLiteral(astNode: ColorLiteral$1): c4.ColorLiteral | undefined;
1208
2200
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1209
2201
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1210
2202
  /**
@@ -1291,9 +2283,12 @@ declare const DocumentParserFromMixins: {
1291
2283
  isValid: IsValidFn;
1292
2284
  readonly services: LikeC4Services;
1293
2285
  readonly doc: ParsedLikeC4LangiumDocument;
1294
- get project(): Project;
2286
+ readonly project: Project;
2287
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2288
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2289
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1295
2290
  resolveFqn(node: FqnReferenceable): ProjectId;
1296
- getAstNodePath(node: langium0.AstNode): string;
2291
+ getAstNodePath(node: langium.AstNode): string;
1297
2292
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1298
2293
  [key: string]: string | string[];
1299
2294
  } | undefined;
@@ -1304,11 +2299,11 @@ declare const DocumentParserFromMixins: {
1304
2299
  parseTags<E extends {
1305
2300
  tags?: Tags;
1306
2301
  }>(withTags?: E): ProjectId<ProjectId> | null;
1307
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1308
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2302
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2303
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1309
2304
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1310
2305
  parseImageAlias(value: string): string | undefined;
1311
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2306
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1312
2307
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1313
2308
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1314
2309
  parseBaseProps(props: {
@@ -1391,9 +2386,12 @@ declare const DocumentParserFromMixins: {
1391
2386
  isValid: IsValidFn;
1392
2387
  readonly services: LikeC4Services;
1393
2388
  readonly doc: ParsedLikeC4LangiumDocument;
1394
- get project(): Project;
2389
+ readonly project: Project;
2390
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2391
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2392
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1395
2393
  resolveFqn(node: FqnReferenceable): ProjectId;
1396
- getAstNodePath(node: langium0.AstNode): string;
2394
+ getAstNodePath(node: langium.AstNode): string;
1397
2395
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1398
2396
  [key: string]: string | string[];
1399
2397
  } | undefined;
@@ -1404,11 +2402,11 @@ declare const DocumentParserFromMixins: {
1404
2402
  parseTags<E extends {
1405
2403
  tags?: Tags;
1406
2404
  }>(withTags?: E): ProjectId<ProjectId> | null;
1407
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1408
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2405
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2406
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1409
2407
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1410
2408
  parseImageAlias(value: string): string | undefined;
1411
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2409
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1412
2410
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1413
2411
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1414
2412
  parseBaseProps(props: {
@@ -1446,9 +2444,12 @@ declare const DocumentParserFromMixins: {
1446
2444
  isValid: IsValidFn;
1447
2445
  readonly services: LikeC4Services;
1448
2446
  readonly doc: ParsedLikeC4LangiumDocument;
1449
- get project(): Project;
2447
+ readonly project: Project;
2448
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2449
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2450
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1450
2451
  resolveFqn(node: FqnReferenceable): ProjectId;
1451
- getAstNodePath(node: langium0.AstNode): string;
2452
+ getAstNodePath(node: langium.AstNode): string;
1452
2453
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1453
2454
  [key: string]: string | string[];
1454
2455
  } | undefined;
@@ -1459,11 +2460,11 @@ declare const DocumentParserFromMixins: {
1459
2460
  parseTags<E extends {
1460
2461
  tags?: Tags;
1461
2462
  }>(withTags?: E): ProjectId<ProjectId> | null;
1462
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1463
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2463
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2464
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1464
2465
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1465
2466
  parseImageAlias(value: string): string | undefined;
1466
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2467
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1467
2468
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1468
2469
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1469
2470
  parseBaseProps(props: {
@@ -1516,9 +2517,12 @@ declare const DocumentParserFromMixins: {
1516
2517
  isValid: IsValidFn;
1517
2518
  readonly services: LikeC4Services;
1518
2519
  readonly doc: ParsedLikeC4LangiumDocument;
1519
- get project(): Project;
2520
+ readonly project: Project;
2521
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2522
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2523
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1520
2524
  resolveFqn(node: FqnReferenceable): ProjectId;
1521
- getAstNodePath(node: langium0.AstNode): string;
2525
+ getAstNodePath(node: langium.AstNode): string;
1522
2526
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1523
2527
  [key: string]: string | string[];
1524
2528
  } | undefined;
@@ -1529,11 +2533,11 @@ declare const DocumentParserFromMixins: {
1529
2533
  parseTags<E extends {
1530
2534
  tags?: Tags;
1531
2535
  }>(withTags?: E): ProjectId<ProjectId> | null;
1532
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1533
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2536
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2537
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1534
2538
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1535
2539
  parseImageAlias(value: string): string | undefined;
1536
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2540
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1537
2541
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1538
2542
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1539
2543
  parseBaseProps(props: {
@@ -1579,9 +2583,12 @@ declare const DocumentParserFromMixins: {
1579
2583
  isValid: IsValidFn;
1580
2584
  readonly services: LikeC4Services;
1581
2585
  readonly doc: ParsedLikeC4LangiumDocument;
1582
- get project(): Project;
2586
+ readonly project: Project;
2587
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2588
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2589
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1583
2590
  resolveFqn(node: FqnReferenceable): ProjectId;
1584
- getAstNodePath(node: langium0.AstNode): string;
2591
+ getAstNodePath(node: langium.AstNode): string;
1585
2592
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1586
2593
  [key: string]: string | string[];
1587
2594
  } | undefined;
@@ -1592,11 +2599,11 @@ declare const DocumentParserFromMixins: {
1592
2599
  parseTags<E extends {
1593
2600
  tags?: Tags;
1594
2601
  }>(withTags?: E): ProjectId<ProjectId> | null;
1595
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1596
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2602
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2603
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1597
2604
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1598
2605
  parseImageAlias(value: string): string | undefined;
1599
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2606
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1600
2607
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1601
2608
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1602
2609
  parseBaseProps(props: {
@@ -1650,9 +2657,12 @@ declare const DocumentParserFromMixins: {
1650
2657
  isValid: IsValidFn;
1651
2658
  readonly services: LikeC4Services;
1652
2659
  readonly doc: ParsedLikeC4LangiumDocument;
1653
- get project(): Project;
2660
+ readonly project: Project;
2661
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2662
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2663
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1654
2664
  resolveFqn(node: FqnReferenceable): ProjectId;
1655
- getAstNodePath(node: langium0.AstNode): string;
2665
+ getAstNodePath(node: langium.AstNode): string;
1656
2666
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1657
2667
  [key: string]: string | string[];
1658
2668
  } | undefined;
@@ -1663,11 +2673,11 @@ declare const DocumentParserFromMixins: {
1663
2673
  parseTags<E extends {
1664
2674
  tags?: Tags;
1665
2675
  }>(withTags?: E): ProjectId<ProjectId> | null;
1666
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1667
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2676
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2677
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1668
2678
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1669
2679
  parseImageAlias(value: string): string | undefined;
1670
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2680
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1671
2681
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1672
2682
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1673
2683
  parseBaseProps(props: {
@@ -1715,9 +2725,12 @@ declare const DocumentParserFromMixins: {
1715
2725
  isValid: IsValidFn;
1716
2726
  readonly services: LikeC4Services;
1717
2727
  readonly doc: ParsedLikeC4LangiumDocument;
1718
- get project(): Project;
2728
+ readonly project: Project;
2729
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2730
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2731
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1719
2732
  resolveFqn(node: FqnReferenceable): ProjectId;
1720
- getAstNodePath(node: langium0.AstNode): string;
2733
+ getAstNodePath(node: langium.AstNode): string;
1721
2734
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1722
2735
  [key: string]: string | string[];
1723
2736
  } | undefined;
@@ -1728,11 +2741,11 @@ declare const DocumentParserFromMixins: {
1728
2741
  parseTags<E extends {
1729
2742
  tags?: Tags;
1730
2743
  }>(withTags?: E): ProjectId<ProjectId> | null;
1731
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1732
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2744
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2745
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1733
2746
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1734
2747
  parseImageAlias(value: string): string | undefined;
1735
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2748
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1736
2749
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1737
2750
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1738
2751
  parseBaseProps(props: {
@@ -1758,9 +2771,12 @@ declare const DocumentParserFromMixins: {
1758
2771
  isValid: IsValidFn;
1759
2772
  readonly services: LikeC4Services;
1760
2773
  readonly doc: ParsedLikeC4LangiumDocument;
1761
- get project(): Project;
2774
+ readonly project: Project;
2775
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2776
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2777
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1762
2778
  resolveFqn(node: FqnReferenceable): ProjectId;
1763
- getAstNodePath(node: langium0.AstNode): string;
2779
+ getAstNodePath(node: langium.AstNode): string;
1764
2780
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1765
2781
  [key: string]: string | string[];
1766
2782
  } | undefined;
@@ -1771,11 +2787,11 @@ declare const DocumentParserFromMixins: {
1771
2787
  parseTags<E extends {
1772
2788
  tags?: Tags;
1773
2789
  }>(withTags?: E): ProjectId<ProjectId> | null;
1774
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1775
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2790
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2791
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1776
2792
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1777
2793
  parseImageAlias(value: string): string | undefined;
1778
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2794
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1779
2795
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1780
2796
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1781
2797
  parseBaseProps(props: {
@@ -1817,9 +2833,12 @@ declare const DocumentParserFromMixins: {
1817
2833
  isValid: IsValidFn;
1818
2834
  readonly services: LikeC4Services;
1819
2835
  readonly doc: ParsedLikeC4LangiumDocument;
1820
- get project(): Project;
2836
+ readonly project: Project;
2837
+ logError(error: unknown, astNode?: langium.AstNode | langium.Reference<langium.AstNode>, level?: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification"): void;
2838
+ tryParse<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", node: N | undefined, fn: (node: NoInfer<N>) => T | undefined): T | undefined;
2839
+ tryMap<N extends langium.AstNode, T>(level: "base" | "model" | "deployment" | "fqnref" | "relation" | "views" | "globals" | "imports" | "specification", iterable: ReadonlyArray<N>, fn: (node: N) => T | undefined): T[];
1821
2840
  resolveFqn(node: FqnReferenceable): ProjectId;
1822
- getAstNodePath(node: langium0.AstNode): string;
2841
+ getAstNodePath(node: langium.AstNode): string;
1823
2842
  getMetadata(metadataAstNode: MetadataProperty | undefined): {
1824
2843
  [key: string]: string | string[];
1825
2844
  } | undefined;
@@ -1830,11 +2849,11 @@ declare const DocumentParserFromMixins: {
1830
2849
  parseTags<E extends {
1831
2850
  tags?: Tags;
1832
2851
  }>(withTags?: E): ProjectId<ProjectId> | null;
1833
- convertLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
1834
- parseLinks(source?: LinkProperty["$container"]): ProjectId[] | undefined;
2852
+ convertLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
2853
+ parseLinks(source?: LinkProperty["$container"]): ProjectId<ProjectId> | undefined;
1835
2854
  parseIconProperty(prop: IconProperty | undefined): ProjectId | undefined;
1836
2855
  parseImageAlias(value: string): string | undefined;
1837
- parseColorLiteral(astNode: ColorLiteral): ProjectId | undefined;
2856
+ parseColorLiteral(astNode: ColorLiteral$1): ProjectId | undefined;
1838
2857
  parseElementStyle(elementProps: Array<ElementProperty> | ElementStyleProperty | undefined): ParsedElementStyle;
1839
2858
  parseStyleProps(styleProps: Array<StyleProperty> | undefined): ParsedElementStyle;
1840
2859
  parseBaseProps(props: {
@@ -1871,6 +2890,24 @@ declare class LikeC4ValueConverter extends DefaultValueConverter {
1871
2890
  protected runConverter(rule: any, input: string, cstNode: CstNode): ValueType;
1872
2891
  }
1873
2892
  //#endregion
2893
+ //#region src/model-change/ModelChanges.d.ts
2894
+ declare class LikeC4ModelChanges {
2895
+ private services;
2896
+ private locator;
2897
+ constructor(services: LikeC4Services);
2898
+ applyChange(changeView: ChangeView.Params): Promise<ChangeView.Res>;
2899
+ protected convertToTextEdit({
2900
+ lookup,
2901
+ change
2902
+ }: {
2903
+ lookup: ViewLocateResult;
2904
+ change: Exclude<ViewChange, ViewChange.SaveViewSnapshot | ViewChange.ResetManualLayout>;
2905
+ }): {
2906
+ modifiedRange: Range;
2907
+ edits: TextEdit[];
2908
+ };
2909
+ }
2910
+ //#endregion
1874
2911
  //#region src/LikeC4LanguageServices.d.ts
1875
2912
  interface LikeC4LanguageServices {
1876
2913
  readonly views: LikeC4Views;
@@ -1878,6 +2915,7 @@ interface LikeC4LanguageServices {
1878
2915
  readonly workspaceUri: URI;
1879
2916
  readonly projectsManager: ProjectsManager;
1880
2917
  readonly editor: LikeC4ModelChanges;
2918
+ readonly mcpServer: LikeC4MCPServer | null;
1881
2919
  /**
1882
2920
  * Returns all projects with relevant documents
1883
2921
  */
@@ -1936,43 +2974,134 @@ interface LikeC4LanguageServices {
1936
2974
  locate(params: Locate.Params): Locate.Res;
1937
2975
  dispose(): Promise<void>;
1938
2976
  }
1939
- /**
1940
- * Public Language Services
1941
- */
1942
- declare class DefaultLikeC4LanguageServices implements LikeC4LanguageServices {
2977
+ //#endregion
2978
+ //#region src/lsp/CodeLensProvider.d.ts
2979
+ declare class LikeC4CodeLensProvider implements CodeLensProvider {
1943
2980
  private services;
1944
- readonly builder: LikeC4ModelBuilder;
1945
- readonly editor: LikeC4ModelChanges;
1946
- readonly projectsManager: ProjectsManager;
1947
2981
  constructor(services: LikeC4Services);
1948
- get views(): LikeC4Views;
1949
- get workspaceUri(): URI;
1950
- projects(): NonEmptyArray<{
1951
- id: ProjectId;
1952
- folder: URI;
1953
- title: string;
1954
- documents: ReadonlyArray<URI>;
1955
- config: LikeC4ProjectConfig;
1956
- }>;
1957
- project(projectId?: ProjectId): {
1958
- id: ProjectId;
1959
- folder: URI;
1960
- title: string;
1961
- documents: ReadonlyArray<URI>;
1962
- config: LikeC4ProjectConfig;
2982
+ provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken): Promise<CodeLens[] | undefined>;
2983
+ }
2984
+ //#endregion
2985
+ //#region src/lsp/CompletionProvider.d.ts
2986
+ declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
2987
+ protected services: LikeC4Services;
2988
+ constructor(services: LikeC4Services);
2989
+ readonly completionOptions: {
2990
+ triggerCharacters: string[];
1963
2991
  };
1964
- diagrams(project?: ProjectId | undefined, cancelToken?: CancellationToken$2): Promise<LayoutedView<UnknownLayouted>[]>;
1965
- computedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$2): Promise<LikeC4Model<UnknownComputed>>;
1966
- layoutedModel(project?: ProjectId | undefined, cancelToken?: CancellationToken$2): Promise<LikeC4Model<UnknownLayouted>>;
1967
- projectsOverview(cancelToken?: CancellationToken$2): Promise<LayoutedProjectsView$1>;
1968
- getErrors(): Array<{
1969
- message: string;
1970
- line: number;
1971
- range: Range;
1972
- sourceFsPath: string;
1973
- }>;
1974
- locate(params: Locate.Params): Locate.Res;
1975
- dispose(): Promise<void>;
2992
+ protected completionFor(context: CompletionContext, next: NextFeature, acceptor: CompletionAcceptor): MaybePromise<void>;
2993
+ protected completionForKeyword(context: CompletionContext, keyword: GrammarAST.Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
2994
+ protected completionForImportedProject(context: CompletionContext, acceptor: CompletionAcceptor): void;
2995
+ }
2996
+ //#endregion
2997
+ //#region src/lsp/DocumentHighlightProvider.d.ts
2998
+ declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
2999
+ /**
3000
+ * Override this method to determine the highlight kind of the given reference.
3001
+ */
3002
+ protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
3003
+ }
3004
+ //#endregion
3005
+ //#region src/lsp/DocumentLinkProvider.d.ts
3006
+ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
3007
+ private services;
3008
+ constructor(services: LikeC4Services);
3009
+ getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams, _cancelToken?: CancellationToken): Promise<DocumentLink[]>;
3010
+ resolveLink(doc: LangiumDocument, link: string): string;
3011
+ relativeLink(doc: LangiumDocument, link: string): string | null;
3012
+ }
3013
+ //#endregion
3014
+ //#region src/lsp/DocumentSymbolProvider.d.ts
3015
+ declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
3016
+ private services;
3017
+ protected readonly nodeKindProvider: NodeKindProvider;
3018
+ protected readonly nameProvider: LikeC4NameProvider;
3019
+ protected readonly parser: LikeC4ModelParser;
3020
+ protected readonly locator: LikeC4ModelLocator;
3021
+ constructor(services: LikeC4Services);
3022
+ getSymbols(doc: LangiumDocument, _params: DocumentSymbolParams, cancelToken?: CancellationToken): Promise<DocumentSymbol[]>;
3023
+ protected getLikec4LibSymbol(astLib: LikeC4Lib): DocumentSymbol[];
3024
+ protected getSpecSymbol(astSpec: SpecificationRule): DocumentSymbol[];
3025
+ protected getModelSymbol(astModel: Model): DocumentSymbol[];
3026
+ protected getDeploymentModelSymbol(astModel: ModelDeployments): DocumentSymbol[];
3027
+ protected getElementsSymbol(el: Element | Relation | ExtendElement): DocumentSymbol[];
3028
+ protected getExtendElementSymbol(astElement: ExtendElement): DocumentSymbol[];
3029
+ protected getElementSymbol(astElement: Element): DocumentSymbol[];
3030
+ protected getModelViewsSymbol(astViews: ModelViews): DocumentSymbol[];
3031
+ protected getKindSymbol(astKind: SpecificationElementKind | SpecificationRelationshipKind): DocumentSymbol | null;
3032
+ protected getTagSymbol(astTag: SpecificationTag): DocumentSymbol | null;
3033
+ protected getLibIconSymbol(astTag: LibIcon): DocumentSymbol | null;
3034
+ protected getViewSymbol(astView: LikeC4View): DocumentSymbol[];
3035
+ protected getDeploymentElementSymbol(el: DeploymentElement | DeploymentRelation | ExtendDeployment): DocumentSymbol[];
3036
+ protected getDeploymentNodeSymbol(astElement: DeploymentNode): DocumentSymbol[];
3037
+ protected getDeployedInstanceSymbol(astElement: DeployedInstance): DocumentSymbol[];
3038
+ protected symbolKind(node: AstNode): SymbolKind;
3039
+ }
3040
+ //#endregion
3041
+ //#region src/lsp/HoverProvider.d.ts
3042
+ declare class LikeC4HoverProvider extends AstNodeHoverProvider {
3043
+ protected services: LikeC4Services;
3044
+ private parser;
3045
+ private locator;
3046
+ constructor(services: LikeC4Services);
3047
+ protected getAstNodeHoverContent(node: AstNode): MaybePromise<Hover | undefined>;
3048
+ protected getElementHover(node: Element): MaybePromise<Hover | undefined>;
3049
+ protected getElementModelHover(model: ElementModel, projectId: ProjectId): string | undefined;
3050
+ protected getDeploymentNodeHover(node: DeploymentNode): MaybePromise<Hover | undefined>;
3051
+ protected getDeployedInstanceHover(node: DeployedInstance): MaybePromise<Hover | undefined>;
3052
+ }
3053
+ //#endregion
3054
+ //#region src/lsp/CodeActionProvider.d.ts
3055
+ type CommandOrCodeAction = Command | CodeAction;
3056
+ declare class LikeC4CodeActionProvider implements CodeActionProvider {
3057
+ /**
3058
+ * Handle a code action request.
3059
+ *
3060
+ * @throws `OperationCancelled` if cancellation is detected during execution
3061
+ * @throws `ResponseError` if an error is detected that should be sent as response to the client
3062
+ */
3063
+ getCodeActions(document: LangiumDocument, params: CodeActionParams): CommandOrCodeAction[] | undefined;
3064
+ }
3065
+ //#endregion
3066
+ //#region src/lsp/SemanticTokenProvider.d.ts
3067
+ declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider {
3068
+ protected services: LikeC4Services;
3069
+ private rules;
3070
+ constructor(services: LikeC4Services);
3071
+ protected initRules(): void;
3072
+ semanticHighlight(document: LangiumDocument, params: SemanticTokensParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3073
+ semanticHighlightRange(document: LangiumDocument, params: SemanticTokensRangeParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens>;
3074
+ semanticHighlightDelta(document: LangiumDocument, params: SemanticTokensDeltaParams, cancelToken?: CancellationToken$1): Promise<SemanticTokens | SemanticTokensDelta>;
3075
+ protected ensureState(document: LangiumDocument, cancelToken: CancellationToken$1): Promise<void>;
3076
+ protected highlightElement(node: AstNode, acceptor: SemanticTokenAcceptor): void | undefined | 'prune';
3077
+ private highlightNameAndKind;
3078
+ private highlightView;
3079
+ private mark;
3080
+ }
3081
+ //#endregion
3082
+ //#region src/Rpc.d.ts
3083
+ declare class Rpc extends ADisposable {
3084
+ private services;
3085
+ constructor(services: LikeC4Services);
3086
+ init: () => void;
3087
+ openView(params: DidRequestOpenViewNotification.Params): Promise<void>;
3088
+ }
3089
+ //#endregion
3090
+ //#region src/shared/NodeKindProvider.d.ts
3091
+ declare class NodeKindProvider$1 implements NodeKindProvider {
3092
+ private services;
3093
+ constructor(services: LangiumSharedServices);
3094
+ /**
3095
+ * Returns a `SymbolKind` as used by `WorkspaceSymbolProvider` or `DocumentSymbolProvider`.
3096
+ */
3097
+ getSymbolKind(node: AstNode | AstNodeDescription): SymbolKind;
3098
+ /**
3099
+ * Returns a `CompletionItemKind` as used by the `CompletionProvider`.
3100
+ */
3101
+ getCompletionItemKind(node: AstNode | AstNodeDescription): CompletionItemKind;
1976
3102
  }
1977
3103
  //#endregion
1978
- export { createLikeC4Module as $, ParsedElementStyle as A, parseAstOpacityProperty as B, ParsedAstElementView as C, ParsedAstRelation as D, ParsedAstGlobals as E, isFqnRefInsideGlobals as F, toAutoLayout as G, parseAstSizeValue as H, isFqnRefInsideModel as I, LanguageServicesContext as J, toColor as K, isLikeC4LangiumDocument as L, ViewOps as M, getViewRulePredicateContainer as N, ParsedAstSpecification as O, isFqnRefInsideDeployment as P, createLanguageServices as Q, isParsedLikeC4LangiumDocument as R, ParsedAstElement as S, ParsedAstExtendRelation as T, parseMarkdownAsString as U, parseAstPercent as V, toAstViewLayoutDirection as W, LikeC4Services as X, LikeC4AddedServices as Y, LikeC4SharedServices as Z, LikeC4LangiumDocument as _, LikeC4ManualLayoutsModuleContext as _t, startLanguageServer$1 as a, LikeC4MCPServerModuleContext as at, ParsedAstDeploymentView as b, ProjectsManager as bt, WithFileSystem as c, NoFileSystem as ct, LikeC4ModelBuilder as d, FileNode as dt, createSharedServices as et, FqnIndex as f, FileSystemModuleContext as ft, LikeC4DocumentProps as g, LikeC4ManualLayouts as gt, LikeC4AstNode as h, FileSystemWatcherModuleContext as ht, LikeC4ModelParser as i, LikeC4MCPServerFactory as it, ParsedLikeC4LangiumDocument as j, ParsedAstView as k, LikeC4ModelLocator as l, NoFileSystemWatcher as lt, ElementOps as m, FileSystemWatcher as mt, LikeC4LanguageServices as n, NoMCPServer as nt, WithMCPServer as o, LikeC4WorkspaceManager as ot, AstNodeDescriptionWithFqn as p, FileSystemProvider$1 as pt, toRelationshipStyle as q, DocumentParser as r, LikeC4MCPServer as rt, WithLikeC4ManualLayouts as s, LangiumDocuments as st, DefaultLikeC4LanguageServices as t, LikeC4Views as tt, ViewLocateResult as u, NoLikeC4ManualLayouts as ut, ParsedAstDeployment as v, Project as vt, ParsedAstExtend as w, ParsedAstDynamicView as x, ParsedAstDeploymentRelation as y, ProjectData as yt, parseAstIconPositionValue as z };
3104
+ //#region src/shared/WorkspaceSymbolProvider.d.ts
3105
+ declare class WorkspaceSymbolProvider extends DefaultWorkspaceSymbolProvider {}
3106
+ //#endregion
3107
+ export { ProjectsManager as $, LikeC4ScopeComputation as A, NoFileSystem as B, LastSeenArtifacts as C, LikeC4WorkspaceManager as D, LikeC4ScopeProvider as E, LikeC4MCPServerModuleContext as F, FileSystemProvider$1 as G, NoLikeC4ManualLayouts as H, LikeC4Formatter as I, LikeC4ManualLayouts as J, FileSystemWatcher as K, WithLikeC4ManualLayouts as L, LikeC4DocumentValidator as M, LikeC4MCPServer as N, LangiumDocuments as O, LikeC4MCPServerFactory as P, ProjectData as Q, WithChokidarWatcher as R, LikeC4ModelBuilder as S, FqnIndex as T, FileNode as U, NoFileSystemWatcher as V, FileSystemModuleContext as W, ManualLayoutsSnapshot as X, LikeC4ManualLayoutsModuleContext as Y, Project as Z, LikeC4Views as _, LikeC4CodeActionProvider as a, LikeC4ModelLocator as b, LikeC4DocumentLinkProvider as c, LikeC4CodeLensProvider as d, LikeC4DocumentationProvider as et, LikeC4LanguageServices as f, LikeC4ModelParser as g, DocumentParser as h, LikeC4SemanticTokenProvider as i, LikeC4NameProvider as j, IndexManager as k, LikeC4DocumentHighlightProvider as l, LikeC4ValueConverter as m, NodeKindProvider$1 as n, LikeC4HoverProvider as o, LikeC4ModelChanges as p, FileSystemWatcherModuleContext as q, Rpc as r, LikeC4DocumentSymbolProvider as s, WorkspaceSymbolProvider as t, LikeC4CompletionProvider as u, WithMCPServer as v, DeploymentsIndex as w, ViewLocateResult as x, NoMCPServer as y, WithFileSystem as z };