@domainlang/language 0.6.0 → 0.8.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 (88) hide show
  1. package/README.md +1 -1
  2. package/out/domain-lang-module.d.ts +2 -0
  3. package/out/domain-lang-module.js +23 -2
  4. package/out/domain-lang-module.js.map +1 -1
  5. package/out/lsp/domain-lang-completion.d.ts +142 -1
  6. package/out/lsp/domain-lang-completion.js +620 -22
  7. package/out/lsp/domain-lang-completion.js.map +1 -1
  8. package/out/lsp/domain-lang-document-symbol-provider.d.ts +79 -0
  9. package/out/lsp/domain-lang-document-symbol-provider.js +210 -0
  10. package/out/lsp/domain-lang-document-symbol-provider.js.map +1 -0
  11. package/out/lsp/domain-lang-index-manager.d.ts +98 -1
  12. package/out/lsp/domain-lang-index-manager.js +214 -7
  13. package/out/lsp/domain-lang-index-manager.js.map +1 -1
  14. package/out/lsp/domain-lang-node-kind-provider.d.ts +27 -0
  15. package/out/lsp/domain-lang-node-kind-provider.js +87 -0
  16. package/out/lsp/domain-lang-node-kind-provider.js.map +1 -0
  17. package/out/lsp/domain-lang-scope-provider.d.ts +100 -0
  18. package/out/lsp/domain-lang-scope-provider.js +170 -0
  19. package/out/lsp/domain-lang-scope-provider.js.map +1 -0
  20. package/out/lsp/domain-lang-workspace-manager.d.ts +46 -0
  21. package/out/lsp/domain-lang-workspace-manager.js +148 -4
  22. package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
  23. package/out/lsp/hover/domain-lang-hover.d.ts +16 -6
  24. package/out/lsp/hover/domain-lang-hover.js +160 -134
  25. package/out/lsp/hover/domain-lang-hover.js.map +1 -1
  26. package/out/lsp/hover/hover-builders.d.ts +57 -0
  27. package/out/lsp/hover/hover-builders.js +171 -0
  28. package/out/lsp/hover/hover-builders.js.map +1 -0
  29. package/out/main.js +116 -20
  30. package/out/main.js.map +1 -1
  31. package/out/sdk/index.d.ts +2 -1
  32. package/out/sdk/index.js +1 -1
  33. package/out/sdk/index.js.map +1 -1
  34. package/out/sdk/loader-node.js +1 -1
  35. package/out/sdk/loader-node.js.map +1 -1
  36. package/out/sdk/loader.d.ts +55 -2
  37. package/out/sdk/loader.js +87 -28
  38. package/out/sdk/loader.js.map +1 -1
  39. package/out/sdk/query.js +14 -11
  40. package/out/sdk/query.js.map +1 -1
  41. package/out/services/import-resolver.d.ts +29 -6
  42. package/out/services/import-resolver.js +48 -9
  43. package/out/services/import-resolver.js.map +1 -1
  44. package/out/services/package-boundary-detector.d.ts +101 -0
  45. package/out/services/package-boundary-detector.js +211 -0
  46. package/out/services/package-boundary-detector.js.map +1 -0
  47. package/out/services/performance-optimizer.js +6 -2
  48. package/out/services/performance-optimizer.js.map +1 -1
  49. package/out/services/types.d.ts +24 -0
  50. package/out/services/types.js.map +1 -1
  51. package/out/services/workspace-manager.d.ts +73 -6
  52. package/out/services/workspace-manager.js +210 -57
  53. package/out/services/workspace-manager.js.map +1 -1
  54. package/out/utils/import-utils.d.ts +9 -6
  55. package/out/utils/import-utils.js +26 -15
  56. package/out/utils/import-utils.js.map +1 -1
  57. package/out/validation/constants.d.ts +20 -0
  58. package/out/validation/constants.js +39 -3
  59. package/out/validation/constants.js.map +1 -1
  60. package/out/validation/import.d.ts +22 -1
  61. package/out/validation/import.js +104 -16
  62. package/out/validation/import.js.map +1 -1
  63. package/out/validation/maps.js +101 -3
  64. package/out/validation/maps.js.map +1 -1
  65. package/package.json +5 -5
  66. package/src/domain-lang-module.ts +26 -3
  67. package/src/lsp/domain-lang-completion.ts +736 -27
  68. package/src/lsp/domain-lang-document-symbol-provider.ts +254 -0
  69. package/src/lsp/domain-lang-index-manager.ts +250 -7
  70. package/src/lsp/domain-lang-node-kind-provider.ts +119 -0
  71. package/src/lsp/domain-lang-scope-provider.ts +250 -0
  72. package/src/lsp/domain-lang-workspace-manager.ts +187 -4
  73. package/src/lsp/hover/domain-lang-hover.ts +189 -131
  74. package/src/lsp/hover/hover-builders.ts +208 -0
  75. package/src/main.ts +156 -23
  76. package/src/sdk/index.ts +2 -1
  77. package/src/sdk/loader-node.ts +2 -1
  78. package/src/sdk/loader.ts +125 -34
  79. package/src/sdk/query.ts +15 -11
  80. package/src/services/import-resolver.ts +60 -9
  81. package/src/services/package-boundary-detector.ts +238 -0
  82. package/src/services/performance-optimizer.ts +6 -2
  83. package/src/services/types.ts +25 -0
  84. package/src/services/workspace-manager.ts +259 -62
  85. package/src/utils/import-utils.ts +27 -15
  86. package/src/validation/constants.ts +47 -6
  87. package/src/validation/import.ts +124 -16
  88. package/src/validation/maps.ts +118 -4
@@ -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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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Custom DocumentSymbolProvider for DomainLang.
3
+ *
4
+ * Extends Langium's DefaultDocumentSymbolProvider to add meaningful
5
+ * `detail` text to outline items, improving the Outline view, breadcrumbs,
6
+ * and Go to Symbol experience.
7
+ *
8
+ * The default provider handles the full AST walk, child nesting, and
9
+ * range computation. We only override `getSymbol` to enrich the detail
10
+ * property with DDD-relevant information (descriptions, visions, counts).
11
+ *
12
+ * @module lsp/domain-lang-document-symbol-provider
13
+ */
14
+ import type { AstNode, LangiumDocument } from 'langium';
15
+ import { DocumentSymbol } from 'vscode-languageserver';
16
+ import { DefaultDocumentSymbolProvider } from 'langium/lsp';
17
+ /**
18
+ * Enriches document symbols with DDD-specific detail text and grouping.
19
+ *
20
+ * Detail text shown in the Outline view next to each symbol:
21
+ * - Domain: vision or description
22
+ * - BoundedContext: description or domain name
23
+ * - ContextMap: number of contained contexts
24
+ * - DomainMap: number of contained domains
25
+ * - Namespace: qualified namespace name
26
+ * - Relationship: formatted endpoint summary (e.g., "OrderContext -> PaymentContext")
27
+ *
28
+ * Grouping: Creates synthetic folder nodes for collections in the grammar:
29
+ * - BoundedContext: decisions, terminology, relationships, metadata
30
+ *
31
+ * Note: Relationship and MetadataEntry symbols are created manually (not via NameProvider)
32
+ * to avoid polluting the global scope/reference system. These are display-only synthetic symbols.
33
+ */
34
+ export declare class DomainLangDocumentSymbolProvider extends DefaultDocumentSymbolProvider {
35
+ protected getSymbol(document: LangiumDocument, astNode: AstNode): DocumentSymbol[];
36
+ /**
37
+ * Override to add synthetic grouping folders for collections.
38
+ * Groups decisions, terminology, relationships, and metadata under folder nodes.
39
+ */
40
+ protected getChildSymbols(document: LangiumDocument, astNode: AstNode): DocumentSymbol[] | undefined;
41
+ /** Adds decisions folder if collection is non-empty. */
42
+ private addDecisionsFolder;
43
+ /** Adds terminology folder if collection is non-empty. */
44
+ private addTerminologyFolder;
45
+ /** Adds relationships folder with manually created symbols. */
46
+ private addRelationshipsFolder;
47
+ /** Adds metadata folder with manually created symbols. */
48
+ private addMetadataFolder;
49
+ /**
50
+ * Creates a synthetic folder DocumentSymbol for grouping children.
51
+ */
52
+ private createFolderSymbol;
53
+ /**
54
+ * Creates a DocumentSymbol for a Relationship node.
55
+ */
56
+ private createRelationshipSymbol;
57
+ /**
58
+ * Creates a DocumentSymbol for a MetadataEntry node.
59
+ */
60
+ private createMetadataSymbol;
61
+ /**
62
+ * Returns DDD-specific detail text for a given AST node.
63
+ * Shown alongside the symbol name in the Outline view.
64
+ */
65
+ private getDetailText;
66
+ /** Builds BC detail: "BC for DomainName — description". */
67
+ private getBcDetail;
68
+ /** Returns "N item(s)" or undefined when count is 0. */
69
+ private pluralize;
70
+ /**
71
+ * Formats a relationship as a compact detail string:
72
+ * e.g., "OrderContext -> PaymentContext"
73
+ */
74
+ private formatRelationshipDetail;
75
+ /**
76
+ * Gets a display name from a BoundedContextRef.
77
+ */
78
+ private getRefName;
79
+ }
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Custom DocumentSymbolProvider for DomainLang.
3
+ *
4
+ * Extends Langium's DefaultDocumentSymbolProvider to add meaningful
5
+ * `detail` text to outline items, improving the Outline view, breadcrumbs,
6
+ * and Go to Symbol experience.
7
+ *
8
+ * The default provider handles the full AST walk, child nesting, and
9
+ * range computation. We only override `getSymbol` to enrich the detail
10
+ * property with DDD-relevant information (descriptions, visions, counts).
11
+ *
12
+ * @module lsp/domain-lang-document-symbol-provider
13
+ */
14
+ import { DocumentSymbol, SymbolKind } from 'vscode-languageserver';
15
+ import { CstUtils } from 'langium';
16
+ import { DefaultDocumentSymbolProvider } from 'langium/lsp';
17
+ import { isDomain, isBoundedContext, isContextMap, isDomainMap, isNamespaceDeclaration, isRelationship, isThisRef, } from '../generated/ast.js';
18
+ /**
19
+ * Enriches document symbols with DDD-specific detail text and grouping.
20
+ *
21
+ * Detail text shown in the Outline view next to each symbol:
22
+ * - Domain: vision or description
23
+ * - BoundedContext: description or domain name
24
+ * - ContextMap: number of contained contexts
25
+ * - DomainMap: number of contained domains
26
+ * - Namespace: qualified namespace name
27
+ * - Relationship: formatted endpoint summary (e.g., "OrderContext -> PaymentContext")
28
+ *
29
+ * Grouping: Creates synthetic folder nodes for collections in the grammar:
30
+ * - BoundedContext: decisions, terminology, relationships, metadata
31
+ *
32
+ * Note: Relationship and MetadataEntry symbols are created manually (not via NameProvider)
33
+ * to avoid polluting the global scope/reference system. These are display-only synthetic symbols.
34
+ */
35
+ export class DomainLangDocumentSymbolProvider extends DefaultDocumentSymbolProvider {
36
+ getSymbol(document, astNode) {
37
+ try {
38
+ const symbols = super.getSymbol(document, astNode);
39
+ const detail = this.getDetailText(astNode);
40
+ if (detail !== undefined) {
41
+ for (const symbol of symbols) {
42
+ symbol.detail = detail;
43
+ }
44
+ }
45
+ return symbols;
46
+ }
47
+ catch (error) {
48
+ console.error('Error in DomainLangDocumentSymbolProvider.getSymbol:', error);
49
+ return super.getSymbol(document, astNode);
50
+ }
51
+ }
52
+ /**
53
+ * Override to add synthetic grouping folders for collections.
54
+ * Groups decisions, terminology, relationships, and metadata under folder nodes.
55
+ */
56
+ getChildSymbols(document, astNode) {
57
+ // Only group for BoundedContext nodes
58
+ if (!isBoundedContext(astNode)) {
59
+ return super.getChildSymbols(document, astNode);
60
+ }
61
+ const grouped = [];
62
+ // Process each collection type
63
+ this.addDecisionsFolder(document, astNode, grouped);
64
+ this.addTerminologyFolder(document, astNode, grouped);
65
+ this.addRelationshipsFolder(astNode, grouped);
66
+ this.addMetadataFolder(astNode, grouped);
67
+ return grouped.length > 0 ? grouped : undefined;
68
+ }
69
+ /** Adds decisions folder if collection is non-empty. */
70
+ addDecisionsFolder(document, bc, grouped) {
71
+ if (bc.decisions && bc.decisions.length > 0) {
72
+ const symbols = bc.decisions.flatMap(d => this.getSymbol(document, d));
73
+ if (symbols.length > 0) {
74
+ grouped.push(this.createFolderSymbol('decisions', symbols));
75
+ }
76
+ }
77
+ }
78
+ /** Adds terminology folder if collection is non-empty. */
79
+ addTerminologyFolder(document, bc, grouped) {
80
+ if (bc.terminology && bc.terminology.length > 0) {
81
+ const symbols = bc.terminology.flatMap(t => this.getSymbol(document, t));
82
+ if (symbols.length > 0) {
83
+ grouped.push(this.createFolderSymbol('terminology', symbols));
84
+ }
85
+ }
86
+ }
87
+ /** Adds relationships folder with manually created symbols. */
88
+ addRelationshipsFolder(bc, grouped) {
89
+ if (bc.relationships && bc.relationships.length > 0) {
90
+ const symbols = bc.relationships.map(r => this.createRelationshipSymbol(r)).filter((s) => s !== undefined);
91
+ if (symbols.length > 0) {
92
+ grouped.push(this.createFolderSymbol('relationships', symbols));
93
+ }
94
+ }
95
+ }
96
+ /** Adds metadata folder with manually created symbols. */
97
+ addMetadataFolder(bc, grouped) {
98
+ if (bc.metadata && bc.metadata.length > 0) {
99
+ const symbols = bc.metadata.map(m => this.createMetadataSymbol(m)).filter((s) => s !== undefined);
100
+ if (symbols.length > 0) {
101
+ grouped.push(this.createFolderSymbol('metadata', symbols));
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Creates a synthetic folder DocumentSymbol for grouping children.
107
+ */
108
+ createFolderSymbol(name, children) {
109
+ // Use the first child's range for the folder
110
+ const firstChild = children[0];
111
+ return DocumentSymbol.create(name, `${children.length} items`, SymbolKind.Object, firstChild.range, firstChild.selectionRange, children);
112
+ }
113
+ /**
114
+ * Creates a DocumentSymbol for a Relationship node.
115
+ */
116
+ createRelationshipSymbol(rel) {
117
+ const cstNode = rel.$cstNode;
118
+ if (!cstNode)
119
+ return undefined;
120
+ const left = isThisRef(rel.left) ? 'this' : rel.left?.link?.ref?.name ?? '?';
121
+ const right = isThisRef(rel.right) ? 'this' : rel.right?.link?.ref?.name ?? '?';
122
+ const name = `${left} → ${right}`;
123
+ const range = CstUtils.toDocumentSegment(cstNode).range;
124
+ return DocumentSymbol.create(name, undefined, SymbolKind.Interface, range, range);
125
+ }
126
+ /**
127
+ * Creates a DocumentSymbol for a MetadataEntry node.
128
+ */
129
+ createMetadataSymbol(meta) {
130
+ const cstNode = meta.$cstNode;
131
+ if (!cstNode)
132
+ return undefined;
133
+ const name = meta.key?.ref?.name ?? 'unknown';
134
+ const range = CstUtils.toDocumentSegment(cstNode).range;
135
+ return DocumentSymbol.create(name, meta.value, SymbolKind.Field, range, range);
136
+ }
137
+ /**
138
+ * Returns DDD-specific detail text for a given AST node.
139
+ * Shown alongside the symbol name in the Outline view.
140
+ */
141
+ getDetailText(node) {
142
+ if (isDomain(node))
143
+ return "Domain — " + (node.vision ?? node.description);
144
+ if (isBoundedContext(node))
145
+ return this.getBcDetail(node);
146
+ if (isContextMap(node))
147
+ return this.pluralize('context', node.boundedContexts?.length ?? 0);
148
+ if (isDomainMap(node))
149
+ return this.pluralize('domain', node.domains?.length ?? 0);
150
+ if (isNamespaceDeclaration(node))
151
+ return node.name;
152
+ if (isRelationship(node))
153
+ return this.formatRelationshipDetail(node);
154
+ return undefined;
155
+ }
156
+ /** Builds BC detail: "BC for DomainName — description". */
157
+ getBcDetail(node) {
158
+ const parts = [];
159
+ if (node.domain?.ref?.name) {
160
+ parts.push(`BC for ${node.domain.ref.name}`);
161
+ }
162
+ if (node.description) {
163
+ parts.push(node.description);
164
+ }
165
+ return parts.length > 0 ? parts.join(' — ') : undefined;
166
+ }
167
+ /** Returns "N item(s)" or undefined when count is 0. */
168
+ pluralize(label, count) {
169
+ if (count === 0)
170
+ return undefined;
171
+ const suffix = count === 1 ? '' : 's';
172
+ return `${count} ${label}${suffix}`;
173
+ }
174
+ /**
175
+ * Formats a relationship as a compact detail string:
176
+ * e.g., "OrderContext -> PaymentContext"
177
+ */
178
+ formatRelationshipDetail(node) {
179
+ try {
180
+ // We know this is a Relationship node thanks to isRelationship guard above
181
+ const rel = node;
182
+ const leftName = this.getRefName(rel.left);
183
+ const rightName = this.getRefName(rel.right);
184
+ const arrow = rel.arrow ?? '->';
185
+ if (leftName && rightName) {
186
+ return `${leftName} ${arrow} ${rightName}`;
187
+ }
188
+ return undefined;
189
+ }
190
+ catch {
191
+ return undefined;
192
+ }
193
+ }
194
+ /**
195
+ * Gets a display name from a BoundedContextRef.
196
+ */
197
+ getRefName(ref) {
198
+ if (!ref || typeof ref !== 'object')
199
+ return undefined;
200
+ // Check for ThisRef
201
+ const refObj = ref;
202
+ if (refObj.$type === 'ThisRef' || isThisRef(ref)) {
203
+ return 'this';
204
+ }
205
+ // Check for named reference
206
+ const link = refObj.link;
207
+ return link?.$refText;
208
+ }
209
+ }
210
+ //# sourceMappingURL=domain-lang-document-symbol-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-lang-document-symbol-provider.js","sourceRoot":"","sources":["../../src/lsp/domain-lang-document-symbol-provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { LangiumDocument, LangiumSharedCoreServices, URI } from 'langium';
2
2
  import { DefaultIndexManager } from 'langium';
3
3
  import { CancellationToken } from 'vscode-jsonrpc';
4
+ import type { DomainLangServices } from '../domain-lang-module.js';
5
+ import type { ImportInfo } from '../services/types.js';
4
6
  /**
5
7
  * Custom IndexManager that extends Langium's default to:
6
8
  * 1. Automatically load imported documents during indexing
@@ -14,6 +16,7 @@ import { CancellationToken } from 'vscode-jsonrpc';
14
16
  * **How it works:**
15
17
  * - When a document is indexed, we ensure all its imports are also loaded
16
18
  * - Maintains a reverse dependency graph: importedUri → Set<importingUri>
19
+ * - Also tracks import specifiers to detect when file moves affect resolution
17
20
  * - Overrides `isAffected()` to also check this graph
18
21
  * - This integrates with Langium's native `DocumentBuilder.update()` flow
19
22
  *
@@ -31,6 +34,13 @@ export declare class DomainLangIndexManager extends DefaultIndexManager {
31
34
  * Value: Set of URIs of documents that import the key document
32
35
  */
33
36
  private readonly importDependencies;
37
+ /**
38
+ * Maps document URI to its import information (specifier, alias, resolved URI).
39
+ * Used for scope resolution with aliases and detecting when file moves affect imports.
40
+ * Key: importing document URI
41
+ * Value: Array of ImportInfo objects
42
+ */
43
+ private readonly documentImportInfo;
34
44
  /**
35
45
  * Tracks documents that have had their imports loaded to avoid redundant work.
36
46
  * Cleared on workspace config changes.
@@ -40,7 +50,26 @@ export declare class DomainLangIndexManager extends DefaultIndexManager {
40
50
  * Reference to shared services for accessing LangiumDocuments.
41
51
  */
42
52
  private readonly sharedServices;
53
+ /**
54
+ * DI-injected import resolver. Set via late-binding because
55
+ * IndexManager (shared module) is created before ImportResolver (language module).
56
+ * Falls back to standalone resolveImportPath when not set.
57
+ */
58
+ private importResolver;
43
59
  constructor(services: LangiumSharedCoreServices);
60
+ /**
61
+ * Late-binds the language-specific services after DI initialization.
62
+ * Called from `createDomainLangServices()` after the language module is created.
63
+ *
64
+ * This is necessary because the IndexManager lives in the shared module,
65
+ * which is created before the language module that provides ImportResolver.
66
+ */
67
+ setLanguageServices(services: DomainLangServices): void;
68
+ /**
69
+ * Resolves an import path using the DI-injected ImportResolver when available,
70
+ * falling back to the standalone resolver for backwards compatibility.
71
+ */
72
+ private resolveImport;
44
73
  /**
45
74
  * Extends the default content update to:
46
75
  * 1. Ensure all imported documents are loaded
@@ -68,7 +97,9 @@ export declare class DomainLangIndexManager extends DefaultIndexManager {
68
97
  isAffected(document: LangiumDocument, changedUris: Set<string>): boolean;
69
98
  /**
70
99
  * Tracks import dependencies for a document.
71
- * For each import in the document, records that the imported URI is depended upon.
100
+ * For each import in the document, records:
101
+ * 1. That the imported URI is depended upon (for direct change detection)
102
+ * 2. The import specifier and alias (for scope resolution)
72
103
  */
73
104
  private trackImportDependencies;
74
105
  /**
@@ -99,4 +130,70 @@ export declare class DomainLangIndexManager extends DefaultIndexManager {
99
130
  * Called when a document's content changes.
100
131
  */
101
132
  markForReprocessing(uri: string): void;
133
+ /**
134
+ * Gets all documents that import the given URI.
135
+ * Used to find documents that need rebuilding when a file changes.
136
+ *
137
+ * @param uri - The URI of the changed/deleted file
138
+ * @returns Set of URIs (as strings) of documents that import this file
139
+ */
140
+ getDependentDocuments(uri: string): Set<string>;
141
+ /**
142
+ * Gets the resolved import URIs for a document.
143
+ * Returns only URIs where import resolution succeeded (non-empty resolved URI).
144
+ *
145
+ * @param documentUri - The URI of the document
146
+ * @returns Set of resolved import URIs, or empty set if none
147
+ */
148
+ getResolvedImports(documentUri: string): Set<string>;
149
+ /**
150
+ * Gets the full import information (including aliases) for a document.
151
+ * Used by the scope provider to implement alias-prefixed name resolution.
152
+ *
153
+ * @param documentUri - The URI of the document
154
+ * @returns Array of ImportInfo objects, or empty array if none
155
+ */
156
+ getImportInfo(documentUri: string): ImportInfo[];
157
+ /**
158
+ * Gets all documents that would be affected by changes to the given URIs.
159
+ * This includes direct dependents and transitive dependents.
160
+ *
161
+ * @param changedUris - URIs of changed/deleted files
162
+ * @returns Set of all affected document URIs
163
+ */
164
+ getAllAffectedDocuments(changedUris: Iterable<string>): Set<string>;
165
+ /**
166
+ * Gets documents that have import specifiers which might be affected by file moves.
167
+ *
168
+ * When a file is moved/renamed, import specifiers that previously resolved to it
169
+ * (or could now resolve to it) need to be re-evaluated. This method finds documents
170
+ * whose imports might resolve differently after the file system change.
171
+ *
172
+ * @param changedUris - URIs of changed/deleted/created files
173
+ * @returns Set of document URIs that should be rebuilt
174
+ */
175
+ getDocumentsWithPotentiallyAffectedImports(changedUris: Iterable<string>): Set<string>;
176
+ /**
177
+ * Extracts path segments from URIs for fuzzy matching.
178
+ */
179
+ private extractPathSegments;
180
+ /**
181
+ * Adds path segments from a single URI to the set.
182
+ */
183
+ private addPathSegmentsFromUri;
184
+ /**
185
+ * Finds documents with import specifiers matching any of the given paths.
186
+ */
187
+ private findDocumentsMatchingPaths;
188
+ /**
189
+ * Checks if any specifier OR its resolved URI matches the changed paths.
190
+ *
191
+ * This handles both regular imports and path aliases:
192
+ * - Regular: `./domains/sales.dlang` matches path `sales.dlang`
193
+ * - Aliased: `@domains/sales.dlang` resolves to `/full/path/domains/sales.dlang`
194
+ * When the file moves, the resolved URI matches but the specifier doesn't
195
+ *
196
+ * We check both to ensure moves of aliased imports trigger revalidation.
197
+ */
198
+ private hasMatchingSpecifierOrResolvedUri;
102
199
  }