@domainlang/language 0.5.2 → 0.6.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 (104) hide show
  1. package/out/domain-lang-module.js +3 -1
  2. package/out/domain-lang-module.js.map +1 -1
  3. package/out/generated/ast.d.ts +24 -0
  4. package/out/generated/ast.js.map +1 -1
  5. package/out/generated/grammar.js +22 -32
  6. package/out/generated/grammar.js.map +1 -1
  7. package/out/index.d.ts +2 -5
  8. package/out/index.js +10 -6
  9. package/out/index.js.map +1 -1
  10. package/out/lsp/domain-lang-code-actions.js +14 -8
  11. package/out/lsp/domain-lang-code-actions.js.map +1 -1
  12. package/out/lsp/domain-lang-completion.d.ts +3 -0
  13. package/out/lsp/domain-lang-completion.js +41 -13
  14. package/out/lsp/domain-lang-completion.js.map +1 -1
  15. package/out/lsp/domain-lang-formatter.js +24 -18
  16. package/out/lsp/domain-lang-formatter.js.map +1 -1
  17. package/out/lsp/domain-lang-index-manager.d.ts +102 -0
  18. package/out/lsp/domain-lang-index-manager.js +221 -0
  19. package/out/lsp/domain-lang-index-manager.js.map +1 -0
  20. package/out/lsp/domain-lang-scope.js +31 -17
  21. package/out/lsp/domain-lang-scope.js.map +1 -1
  22. package/out/lsp/domain-lang-workspace-manager.d.ts +51 -9
  23. package/out/lsp/domain-lang-workspace-manager.js +86 -63
  24. package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
  25. package/out/lsp/hover/domain-lang-hover.d.ts +45 -1
  26. package/out/lsp/hover/domain-lang-hover.js +308 -232
  27. package/out/lsp/hover/domain-lang-hover.js.map +1 -1
  28. package/out/lsp/hover/domain-lang-keywords.d.ts +3 -7
  29. package/out/lsp/hover/domain-lang-keywords.js +115 -38
  30. package/out/lsp/hover/domain-lang-keywords.js.map +1 -1
  31. package/out/lsp/manifest-diagnostics.js +95 -50
  32. package/out/lsp/manifest-diagnostics.js.map +1 -1
  33. package/out/main.js +109 -17
  34. package/out/main.js.map +1 -1
  35. package/out/services/import-resolver.d.ts +16 -2
  36. package/out/services/import-resolver.js +37 -11
  37. package/out/services/import-resolver.js.map +1 -1
  38. package/out/services/types.d.ts +2 -2
  39. package/out/services/workspace-manager.d.ts +33 -31
  40. package/out/services/workspace-manager.js +92 -148
  41. package/out/services/workspace-manager.js.map +1 -1
  42. package/out/utils/document-utils.d.ts +41 -0
  43. package/out/utils/document-utils.js +64 -0
  44. package/out/utils/document-utils.js.map +1 -0
  45. package/out/utils/import-utils.d.ts +0 -17
  46. package/out/utils/import-utils.js +2 -32
  47. package/out/utils/import-utils.js.map +1 -1
  48. package/out/utils/manifest-utils.d.ts +56 -0
  49. package/out/utils/manifest-utils.js +119 -0
  50. package/out/utils/manifest-utils.js.map +1 -0
  51. package/out/validation/import.d.ts +1 -2
  52. package/out/validation/import.js +33 -20
  53. package/out/validation/import.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/domain-lang-module.ts +4 -1
  56. package/src/domain-lang.langium +37 -13
  57. package/src/generated/ast.ts +24 -0
  58. package/src/generated/grammar.ts +22 -32
  59. package/src/index.ts +12 -6
  60. package/src/lsp/domain-lang-code-actions.ts +13 -8
  61. package/src/lsp/domain-lang-completion.ts +61 -13
  62. package/src/lsp/domain-lang-formatter.ts +28 -23
  63. package/src/lsp/domain-lang-index-manager.ts +256 -0
  64. package/src/lsp/domain-lang-scope.ts +29 -17
  65. package/src/lsp/domain-lang-workspace-manager.ts +89 -66
  66. package/src/lsp/hover/domain-lang-hover.ts +332 -226
  67. package/src/lsp/hover/domain-lang-keywords.ts +129 -43
  68. package/src/lsp/manifest-diagnostics.ts +100 -59
  69. package/src/main.ts +127 -16
  70. package/src/services/import-resolver.ts +39 -11
  71. package/src/services/types.ts +2 -2
  72. package/src/services/workspace-manager.ts +101 -175
  73. package/src/utils/document-utils.ts +80 -0
  74. package/src/utils/import-utils.ts +2 -40
  75. package/src/utils/manifest-utils.ts +132 -0
  76. package/src/validation/import.ts +32 -22
  77. package/out/lsp/hover/ddd-pattern-explanations.d.ts +0 -50
  78. package/out/lsp/hover/ddd-pattern-explanations.js +0 -196
  79. package/out/lsp/hover/ddd-pattern-explanations.js.map +0 -1
  80. package/out/services/dependency-analyzer.d.ts +0 -58
  81. package/out/services/dependency-analyzer.js +0 -254
  82. package/out/services/dependency-analyzer.js.map +0 -1
  83. package/out/services/dependency-resolver.d.ts +0 -146
  84. package/out/services/dependency-resolver.js +0 -452
  85. package/out/services/dependency-resolver.js.map +0 -1
  86. package/out/services/git-url-resolver.browser.d.ts +0 -10
  87. package/out/services/git-url-resolver.browser.js +0 -19
  88. package/out/services/git-url-resolver.browser.js.map +0 -1
  89. package/out/services/git-url-resolver.d.ts +0 -158
  90. package/out/services/git-url-resolver.js +0 -416
  91. package/out/services/git-url-resolver.js.map +0 -1
  92. package/out/services/governance-validator.d.ts +0 -44
  93. package/out/services/governance-validator.js +0 -153
  94. package/out/services/governance-validator.js.map +0 -1
  95. package/out/services/semver.d.ts +0 -98
  96. package/out/services/semver.js +0 -195
  97. package/out/services/semver.js.map +0 -1
  98. package/src/lsp/hover/ddd-pattern-explanations.ts +0 -237
  99. package/src/services/dependency-analyzer.ts +0 -321
  100. package/src/services/dependency-resolver.ts +0 -551
  101. package/src/services/git-url-resolver.browser.ts +0 -26
  102. package/src/services/git-url-resolver.ts +0 -517
  103. package/src/services/governance-validator.ts +0 -177
  104. package/src/services/semver.ts +0 -213
@@ -115,6 +115,16 @@ const TOP_LEVEL_SNIPPETS = [
115
115
  ];
116
116
  export class DomainLangCompletionProvider extends DefaultCompletionProvider {
117
117
  completionFor(context, next, acceptor) {
118
+ try {
119
+ this.safeCompletionFor(context, next, acceptor);
120
+ }
121
+ catch (error) {
122
+ console.error('Error in completionFor:', error);
123
+ // Fall back to default completion on error
124
+ super.completionFor(context, next, acceptor);
125
+ }
126
+ }
127
+ safeCompletionFor(context, next, acceptor) {
118
128
  const node = context.node;
119
129
  if (!node) {
120
130
  super.completionFor(context, next, acceptor);
@@ -132,72 +142,90 @@ export class DomainLangCompletionProvider extends DefaultCompletionProvider {
132
142
  super.completionFor(context, next, acceptor);
133
143
  return;
134
144
  }
145
+ // Handle node-level completions
146
+ if (this.handleNodeCompletions(node, acceptor, context, next)) {
147
+ return;
148
+ }
149
+ // Handle container-level completions
150
+ const container = node.$container;
151
+ if (this.handleContainerCompletions(container, node, acceptor, context, next)) {
152
+ return;
153
+ }
154
+ // Let Langium handle default completions
155
+ super.completionFor(context, next, acceptor);
156
+ }
157
+ handleNodeCompletions(node, acceptor, context, next) {
135
158
  // If we're AT a BoundedContext node: only BC documentation blocks
136
159
  if (ast.isBoundedContext(node)) {
137
160
  this.addBoundedContextCompletions(node, acceptor, context);
138
161
  super.completionFor(context, next, acceptor);
139
- return;
162
+ return true;
140
163
  }
141
164
  // If we're AT a Domain node: only Domain documentation blocks
142
165
  if (ast.isDomain(node)) {
143
166
  this.addDomainCompletions(node, acceptor, context);
144
167
  super.completionFor(context, next, acceptor);
145
- return;
168
+ return true;
146
169
  }
147
170
  // If we're AT a ContextMap node: relationships and contains
148
171
  if (ast.isContextMap(node)) {
149
172
  this.addContextMapCompletions(node, acceptor, context);
150
173
  super.completionFor(context, next, acceptor);
151
- return;
174
+ return true;
152
175
  }
153
176
  // If we're AT a DomainMap node: contains
154
177
  if (ast.isDomainMap(node)) {
155
178
  this.addDomainMapCompletions(node, acceptor, context);
156
179
  super.completionFor(context, next, acceptor);
157
- return;
180
+ return true;
158
181
  }
159
182
  // If we're AT the Model or NamespaceDeclaration level: all top-level constructs
160
183
  if (ast.isModel(node) || ast.isNamespaceDeclaration(node)) {
161
184
  this.addTopLevelSnippets(acceptor, context);
162
185
  super.completionFor(context, next, acceptor);
163
- return;
186
+ return true;
187
+ }
188
+ return false;
189
+ }
190
+ handleContainerCompletions(container, node, acceptor, context, next) {
191
+ if (!container) {
192
+ return false;
164
193
  }
165
- const container = node.$container;
166
194
  // Inside BoundedContext body: suggest missing scalar properties and collections
167
195
  if (ast.isBoundedContext(container)) {
168
196
  this.addBoundedContextCompletions(container, acceptor, context);
169
197
  super.completionFor(context, next, acceptor);
170
- return;
198
+ return true;
171
199
  }
172
200
  // Inside Domain body: suggest missing scalar properties
173
201
  if (ast.isDomain(container)) {
174
202
  this.addDomainCompletions(container, acceptor, context);
175
203
  super.completionFor(context, next, acceptor);
176
- return;
204
+ return true;
177
205
  }
178
206
  // Inside ContextMap body: relationships and contains
179
207
  if (ast.isContextMap(container)) {
180
208
  this.addContextMapCompletions(container, acceptor, context);
181
209
  super.completionFor(context, next, acceptor);
182
- return;
210
+ return true;
183
211
  }
184
212
  // Inside DomainMap body: contains
185
213
  if (ast.isDomainMap(container)) {
186
214
  this.addDomainMapCompletions(container, acceptor, context);
187
215
  super.completionFor(context, next, acceptor);
188
- return;
216
+ return true;
189
217
  }
190
218
  if (ast.isRelationship(node) || ast.isRelationship(container)) {
191
219
  this.addRelationshipCompletions(acceptor, context);
192
220
  super.completionFor(context, next, acceptor);
193
- return;
221
+ return true;
194
222
  }
195
223
  // Top level container (Model or NamespaceDeclaration): all top-level constructs
196
224
  if (ast.isModel(container) || ast.isNamespaceDeclaration(container)) {
197
225
  this.addTopLevelSnippets(acceptor, context);
226
+ return true;
198
227
  }
199
- // Let Langium handle default completions
200
- super.completionFor(context, next, acceptor);
228
+ return false;
201
229
  }
202
230
  addTopLevelSnippets(acceptor, context) {
203
231
  for (const snippet of TOP_LEVEL_SNIPPETS) {
@@ -1 +1 @@
1
- {"version":3,"file":"domain-lang-completion.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-lang-completion.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-completion.ts"],"names":[],"mappings":"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"}
@@ -6,25 +6,31 @@ import * as ast from '../generated/ast.js';
6
6
  */
7
7
  export class DomainLangFormatter extends AbstractFormatter {
8
8
  format(node) {
9
- // Namespace declarations
10
- if (ast.isNamespaceDeclaration(node)) {
11
- this.formatBlock(node);
9
+ try {
10
+ // Namespace declarations
11
+ if (ast.isNamespaceDeclaration(node)) {
12
+ this.formatBlock(node);
13
+ }
14
+ // Domain declarations
15
+ if (ast.isDomain(node)) {
16
+ this.formatBlock(node);
17
+ }
18
+ // Bounded contexts
19
+ if (ast.isBoundedContext(node)) {
20
+ this.formatBlock(node);
21
+ }
22
+ // Context maps
23
+ if (ast.isContextMap(node)) {
24
+ this.formatBlock(node);
25
+ }
26
+ // Domain maps
27
+ if (ast.isDomainMap(node)) {
28
+ this.formatBlock(node);
29
+ }
12
30
  }
13
- // Domain declarations
14
- if (ast.isDomain(node)) {
15
- this.formatBlock(node);
16
- }
17
- // Bounded contexts
18
- if (ast.isBoundedContext(node)) {
19
- this.formatBlock(node);
20
- }
21
- // Context maps
22
- if (ast.isContextMap(node)) {
23
- this.formatBlock(node);
24
- }
25
- // Domain maps
26
- if (ast.isDomainMap(node)) {
27
- this.formatBlock(node);
31
+ catch (error) {
32
+ console.error('Error in format:', error);
33
+ // Continue - don't crash formatting
28
34
  }
29
35
  }
30
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"domain-lang-formatter.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-formatter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IAE5C,MAAM,CAAC,IAAa;QAC9B,yBAAyB;QACzB,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,mBAAmB;QACnB,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,eAAe;QACf,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,cAAc;QACd,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,IAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAErC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ"}
1
+ {"version":3,"file":"domain-lang-formatter.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-formatter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAE3C;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IAE5C,MAAM,CAAC,IAAa;QAC1B,IAAI,CAAC;YACD,yBAAyB;YACzB,IAAI,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,sBAAsB;YACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,mBAAmB;YACnB,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,eAAe;YACf,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,cAAc;YACd,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACzC,oCAAoC;QACxC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,IAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAErC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ"}
@@ -0,0 +1,102 @@
1
+ import type { LangiumDocument, LangiumSharedCoreServices, URI } from 'langium';
2
+ import { DefaultIndexManager } from 'langium';
3
+ import { CancellationToken } from 'vscode-jsonrpc';
4
+ /**
5
+ * Custom IndexManager that extends Langium's default to:
6
+ * 1. Automatically load imported documents during indexing
7
+ * 2. Track import dependencies for cross-file revalidation
8
+ *
9
+ * **Why this exists:**
10
+ * Langium's `DefaultIndexManager.isAffected()` only checks cross-references
11
+ * (elements declared with `[Type]` grammar syntax). DomainLang's imports use
12
+ * string literals (`import "path"`), which are not cross-references.
13
+ *
14
+ * **How it works:**
15
+ * - When a document is indexed, we ensure all its imports are also loaded
16
+ * - Maintains a reverse dependency graph: importedUri → Set<importingUri>
17
+ * - Overrides `isAffected()` to also check this graph
18
+ * - This integrates with Langium's native `DocumentBuilder.update()` flow
19
+ *
20
+ * **Integration with Langium:**
21
+ * This approach is idiomatic because:
22
+ * 1. `updateContent()` is called for EVERY document during build
23
+ * 2. We load imports during indexing, BEFORE linking/validation
24
+ * 3. `DocumentBuilder.shouldRelink()` calls `IndexManager.isAffected()`
25
+ * 4. No need for separate lifecycle service - this IS the central place
26
+ */
27
+ export declare class DomainLangIndexManager extends DefaultIndexManager {
28
+ /**
29
+ * Reverse dependency graph: maps a document URI to all documents that import it.
30
+ * Key: imported document URI (string)
31
+ * Value: Set of URIs of documents that import the key document
32
+ */
33
+ private readonly importDependencies;
34
+ /**
35
+ * Tracks documents that have had their imports loaded to avoid redundant work.
36
+ * Cleared on workspace config changes.
37
+ */
38
+ private readonly importsLoaded;
39
+ /**
40
+ * Reference to shared services for accessing LangiumDocuments.
41
+ */
42
+ private readonly sharedServices;
43
+ constructor(services: LangiumSharedCoreServices);
44
+ /**
45
+ * Extends the default content update to:
46
+ * 1. Ensure all imported documents are loaded
47
+ * 2. Track import dependencies for change propagation
48
+ *
49
+ * Called by Langium during the IndexedContent build phase.
50
+ * This is BEFORE linking/validation, so imports are available for resolution.
51
+ */
52
+ updateContent(document: LangiumDocument, cancelToken?: CancellationToken): Promise<void>;
53
+ /**
54
+ * Extends the default remove to also clean up import dependencies.
55
+ */
56
+ remove(uri: URI): void;
57
+ /**
58
+ * Extends the default content removal to also clean up import dependencies.
59
+ */
60
+ removeContent(uri: URI): void;
61
+ /**
62
+ * Extends `isAffected` to also check import dependencies.
63
+ *
64
+ * A document is affected if:
65
+ * 1. It has cross-references to any changed document (default Langium behavior)
66
+ * 2. It imports any of the changed documents (our extension)
67
+ */
68
+ isAffected(document: LangiumDocument, changedUris: Set<string>): boolean;
69
+ /**
70
+ * Tracks import dependencies for a document.
71
+ * For each import in the document, records that the imported URI is depended upon.
72
+ */
73
+ private trackImportDependencies;
74
+ /**
75
+ * Ensures all imported documents are loaded and available.
76
+ * This is called during indexing, BEFORE linking/validation,
77
+ * so that cross-file references can be resolved.
78
+ *
79
+ * Works for both workspace files and standalone files.
80
+ */
81
+ private ensureImportsLoaded;
82
+ /**
83
+ * Removes a document from the import dependencies graph entirely.
84
+ * Called when a document is deleted.
85
+ */
86
+ private removeImportDependencies;
87
+ /**
88
+ * Removes a document from all dependency sets.
89
+ * Called when a document's imports change or it's deleted.
90
+ */
91
+ private removeDocumentFromDependencies;
92
+ /**
93
+ * Clears all import-related caches.
94
+ * Call this when workspace configuration changes.
95
+ */
96
+ clearImportDependencies(): void;
97
+ /**
98
+ * Marks a document as needing import re-loading.
99
+ * Called when a document's content changes.
100
+ */
101
+ markForReprocessing(uri: string): void;
102
+ }
@@ -0,0 +1,221 @@
1
+ import { DefaultIndexManager, DocumentState } from 'langium';
2
+ import { CancellationToken } from 'vscode-jsonrpc';
3
+ import { resolveImportPath } from '../utils/import-utils.js';
4
+ /**
5
+ * Custom IndexManager that extends Langium's default to:
6
+ * 1. Automatically load imported documents during indexing
7
+ * 2. Track import dependencies for cross-file revalidation
8
+ *
9
+ * **Why this exists:**
10
+ * Langium's `DefaultIndexManager.isAffected()` only checks cross-references
11
+ * (elements declared with `[Type]` grammar syntax). DomainLang's imports use
12
+ * string literals (`import "path"`), which are not cross-references.
13
+ *
14
+ * **How it works:**
15
+ * - When a document is indexed, we ensure all its imports are also loaded
16
+ * - Maintains a reverse dependency graph: importedUri → Set<importingUri>
17
+ * - Overrides `isAffected()` to also check this graph
18
+ * - This integrates with Langium's native `DocumentBuilder.update()` flow
19
+ *
20
+ * **Integration with Langium:**
21
+ * This approach is idiomatic because:
22
+ * 1. `updateContent()` is called for EVERY document during build
23
+ * 2. We load imports during indexing, BEFORE linking/validation
24
+ * 3. `DocumentBuilder.shouldRelink()` calls `IndexManager.isAffected()`
25
+ * 4. No need for separate lifecycle service - this IS the central place
26
+ */
27
+ export class DomainLangIndexManager extends DefaultIndexManager {
28
+ constructor(services) {
29
+ super(services);
30
+ /**
31
+ * Reverse dependency graph: maps a document URI to all documents that import it.
32
+ * Key: imported document URI (string)
33
+ * Value: Set of URIs of documents that import the key document
34
+ */
35
+ this.importDependencies = new Map();
36
+ /**
37
+ * Tracks documents that have had their imports loaded to avoid redundant work.
38
+ * Cleared on workspace config changes.
39
+ */
40
+ this.importsLoaded = new Set();
41
+ this.sharedServices = services;
42
+ }
43
+ /**
44
+ * Extends the default content update to:
45
+ * 1. Ensure all imported documents are loaded
46
+ * 2. Track import dependencies for change propagation
47
+ *
48
+ * Called by Langium during the IndexedContent build phase.
49
+ * This is BEFORE linking/validation, so imports are available for resolution.
50
+ */
51
+ async updateContent(document, cancelToken = CancellationToken.None) {
52
+ // First, do the standard content indexing
53
+ await super.updateContent(document, cancelToken);
54
+ // Then, ensure imports are loaded and track dependencies
55
+ await this.ensureImportsLoaded(document);
56
+ await this.trackImportDependencies(document);
57
+ }
58
+ /**
59
+ * Extends the default remove to also clean up import dependencies.
60
+ */
61
+ remove(uri) {
62
+ super.remove(uri);
63
+ const uriString = uri.toString();
64
+ this.removeImportDependencies(uriString);
65
+ this.importsLoaded.delete(uriString);
66
+ }
67
+ /**
68
+ * Extends the default content removal to also clean up import dependencies.
69
+ */
70
+ removeContent(uri) {
71
+ super.removeContent(uri);
72
+ const uriString = uri.toString();
73
+ this.removeImportDependencies(uriString);
74
+ this.importsLoaded.delete(uriString);
75
+ }
76
+ /**
77
+ * Extends `isAffected` to also check import dependencies.
78
+ *
79
+ * A document is affected if:
80
+ * 1. It has cross-references to any changed document (default Langium behavior)
81
+ * 2. It imports any of the changed documents (our extension)
82
+ */
83
+ isAffected(document, changedUris) {
84
+ // First check Langium's default: cross-references
85
+ if (super.isAffected(document, changedUris)) {
86
+ return true;
87
+ }
88
+ // Then check our import dependencies
89
+ const docUri = document.uri.toString();
90
+ for (const changedUri of changedUris) {
91
+ const dependents = this.importDependencies.get(changedUri);
92
+ if (dependents?.has(docUri)) {
93
+ return true;
94
+ }
95
+ }
96
+ return false;
97
+ }
98
+ /**
99
+ * Tracks import dependencies for a document.
100
+ * For each import in the document, records that the imported URI is depended upon.
101
+ */
102
+ async trackImportDependencies(document) {
103
+ const importingUri = document.uri.toString();
104
+ // First, remove old dependencies from this document
105
+ // (in case imports changed)
106
+ this.removeDocumentFromDependencies(importingUri);
107
+ // Skip if document isn't ready (no parse result)
108
+ if (document.state < DocumentState.Parsed) {
109
+ return;
110
+ }
111
+ const model = document.parseResult.value;
112
+ if (!model.imports) {
113
+ return;
114
+ }
115
+ for (const imp of model.imports) {
116
+ if (!imp.uri)
117
+ continue;
118
+ try {
119
+ const resolvedUri = await resolveImportPath(document, imp.uri);
120
+ const importedUri = resolvedUri.toString();
121
+ // Add to reverse dependency graph: importedUri → importingUri
122
+ let dependents = this.importDependencies.get(importedUri);
123
+ if (!dependents) {
124
+ dependents = new Set();
125
+ this.importDependencies.set(importedUri, dependents);
126
+ }
127
+ dependents.add(importingUri);
128
+ }
129
+ catch {
130
+ // Import resolution failed - validation will report the error
131
+ }
132
+ }
133
+ }
134
+ /**
135
+ * Ensures all imported documents are loaded and available.
136
+ * This is called during indexing, BEFORE linking/validation,
137
+ * so that cross-file references can be resolved.
138
+ *
139
+ * Works for both workspace files and standalone files.
140
+ */
141
+ async ensureImportsLoaded(document) {
142
+ const uriString = document.uri.toString();
143
+ // Skip if already processed (avoid redundant work and infinite loops)
144
+ if (this.importsLoaded.has(uriString)) {
145
+ return;
146
+ }
147
+ this.importsLoaded.add(uriString);
148
+ // Skip if document isn't ready (no parse result)
149
+ if (document.state < DocumentState.Parsed) {
150
+ return;
151
+ }
152
+ const model = document.parseResult.value;
153
+ if (!model.imports || model.imports.length === 0) {
154
+ return;
155
+ }
156
+ const langiumDocuments = this.sharedServices.workspace.LangiumDocuments;
157
+ const documentBuilder = this.sharedServices.workspace.DocumentBuilder;
158
+ const newDocs = [];
159
+ for (const imp of model.imports) {
160
+ if (!imp.uri)
161
+ continue;
162
+ try {
163
+ const resolvedUri = await resolveImportPath(document, imp.uri);
164
+ const importedUriString = resolvedUri.toString();
165
+ // Skip if already loaded
166
+ if (this.importsLoaded.has(importedUriString)) {
167
+ continue;
168
+ }
169
+ // Load or create the imported document
170
+ const importedDoc = await langiumDocuments.getOrCreateDocument(resolvedUri);
171
+ // If document is new (not yet indexed), add to batch
172
+ if (importedDoc.state < DocumentState.IndexedContent) {
173
+ newDocs.push(importedDoc);
174
+ }
175
+ }
176
+ catch {
177
+ // Import resolution failed - validation will report the error
178
+ }
179
+ }
180
+ // Build any newly discovered documents
181
+ // This triggers indexing which will recursively load their imports
182
+ if (newDocs.length > 0) {
183
+ await documentBuilder.build(newDocs, { validation: true });
184
+ }
185
+ }
186
+ /**
187
+ * Removes a document from the import dependencies graph entirely.
188
+ * Called when a document is deleted.
189
+ */
190
+ removeImportDependencies(uri) {
191
+ // Remove as an imported document
192
+ this.importDependencies.delete(uri);
193
+ // Remove from all dependency sets (as an importer)
194
+ this.removeDocumentFromDependencies(uri);
195
+ }
196
+ /**
197
+ * Removes a document from all dependency sets.
198
+ * Called when a document's imports change or it's deleted.
199
+ */
200
+ removeDocumentFromDependencies(uri) {
201
+ for (const deps of this.importDependencies.values()) {
202
+ deps.delete(uri);
203
+ }
204
+ }
205
+ /**
206
+ * Clears all import-related caches.
207
+ * Call this when workspace configuration changes.
208
+ */
209
+ clearImportDependencies() {
210
+ this.importDependencies.clear();
211
+ this.importsLoaded.clear();
212
+ }
213
+ /**
214
+ * Marks a document as needing import re-loading.
215
+ * Called when a document's content changes.
216
+ */
217
+ markForReprocessing(uri) {
218
+ this.importsLoaded.delete(uri);
219
+ }
220
+ }
221
+ //# sourceMappingURL=domain-lang-index-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-lang-index-manager.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-index-manager.ts"],"names":[],"mappings":"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"}
@@ -23,22 +23,29 @@ export class DomainLangScopeComputation extends DefaultScopeComputation {
23
23
  * @returns A promise resolving to an array of AstNodeDescription
24
24
  */
25
25
  async collectExportedSymbols(document, cancelToken = CancellationToken.None) {
26
- const descr = [];
27
- for (const modelNode of AstUtils.streamAllContents(document.parseResult.value)) {
28
- await interruptAndCheck(cancelToken);
29
- if (isType(modelNode)) {
30
- let name = this.nameProvider.getName(modelNode);
31
- if (!name) {
32
- // Defensive: skip unnamed types
33
- continue;
34
- }
35
- if (isNamespaceDeclaration(modelNode.$container)) {
36
- name = this.qualifiedNameProvider.getQualifiedName(modelNode.$container, name);
26
+ try {
27
+ const descr = [];
28
+ for (const modelNode of AstUtils.streamAllContents(document.parseResult.value)) {
29
+ await interruptAndCheck(cancelToken);
30
+ if (isType(modelNode)) {
31
+ let name = this.nameProvider.getName(modelNode);
32
+ if (!name) {
33
+ // Defensive: skip unnamed types
34
+ continue;
35
+ }
36
+ if (isNamespaceDeclaration(modelNode.$container)) {
37
+ name = this.qualifiedNameProvider.getQualifiedName(modelNode.$container, name);
38
+ }
39
+ descr.push(this.descriptions.createDescription(modelNode, name, document));
37
40
  }
38
- descr.push(this.descriptions.createDescription(modelNode, name, document));
39
41
  }
42
+ return descr;
43
+ }
44
+ catch (error) {
45
+ console.error('Error in collectExportedSymbols:', error);
46
+ // Return empty array on error to prevent crash
47
+ return [];
40
48
  }
41
- return descr;
42
49
  }
43
50
  /**
44
51
  * Computes local scopes for all containers, recursively processing nested namespaces.
@@ -47,10 +54,17 @@ export class DomainLangScopeComputation extends DefaultScopeComputation {
47
54
  * @returns A promise resolving to a LocalSymbols map
48
55
  */
49
56
  async collectLocalSymbols(document, cancelToken = CancellationToken.None) {
50
- const model = document.parseResult.value;
51
- const scopes = new MultiMap();
52
- await this.processContainer(model, scopes, document, cancelToken);
53
- return scopes;
57
+ try {
58
+ const model = document.parseResult.value;
59
+ const scopes = new MultiMap();
60
+ await this.processContainer(model, scopes, document, cancelToken);
61
+ return scopes;
62
+ }
63
+ catch (error) {
64
+ console.error('Error in collectLocalSymbols:', error);
65
+ // Return empty multimap on error to prevent crash
66
+ return new MultiMap();
67
+ }
54
68
  }
55
69
  /**
56
70
  * Recursively processes a container and its children, adding local descriptions and qualified names.
@@ -1 +1 @@
1
- {"version":3,"file":"domain-lang-scope.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-lang-scope.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-scope.ts"],"names":[],"mappings":"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"}