@domainlang/language 0.7.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.
- package/out/domain-lang-module.d.ts +2 -0
- package/out/domain-lang-module.js +21 -2
- package/out/domain-lang-module.js.map +1 -1
- package/out/lsp/domain-lang-completion.d.ts +142 -1
- package/out/lsp/domain-lang-completion.js +620 -22
- package/out/lsp/domain-lang-completion.js.map +1 -1
- package/out/lsp/domain-lang-document-symbol-provider.d.ts +79 -0
- package/out/lsp/domain-lang-document-symbol-provider.js +210 -0
- package/out/lsp/domain-lang-document-symbol-provider.js.map +1 -0
- package/out/lsp/domain-lang-index-manager.d.ts +34 -5
- package/out/lsp/domain-lang-index-manager.js +66 -27
- package/out/lsp/domain-lang-index-manager.js.map +1 -1
- package/out/lsp/domain-lang-node-kind-provider.d.ts +27 -0
- package/out/lsp/domain-lang-node-kind-provider.js +87 -0
- package/out/lsp/domain-lang-node-kind-provider.js.map +1 -0
- package/out/lsp/domain-lang-scope-provider.d.ts +53 -20
- package/out/lsp/domain-lang-scope-provider.js +119 -44
- package/out/lsp/domain-lang-scope-provider.js.map +1 -1
- package/out/lsp/domain-lang-workspace-manager.d.ts +23 -2
- package/out/lsp/domain-lang-workspace-manager.js +51 -6
- package/out/lsp/domain-lang-workspace-manager.js.map +1 -1
- package/out/lsp/hover/domain-lang-hover.d.ts +16 -6
- package/out/lsp/hover/domain-lang-hover.js +160 -134
- package/out/lsp/hover/domain-lang-hover.js.map +1 -1
- package/out/lsp/hover/hover-builders.d.ts +57 -0
- package/out/lsp/hover/hover-builders.js +171 -0
- package/out/lsp/hover/hover-builders.js.map +1 -0
- package/out/main.js +2 -1
- package/out/main.js.map +1 -1
- package/out/sdk/index.d.ts +2 -1
- package/out/sdk/index.js +1 -1
- package/out/sdk/index.js.map +1 -1
- package/out/sdk/loader-node.js +1 -1
- package/out/sdk/loader-node.js.map +1 -1
- package/out/sdk/loader.d.ts +55 -2
- package/out/sdk/loader.js +87 -28
- package/out/sdk/loader.js.map +1 -1
- package/out/sdk/query.js +14 -11
- package/out/sdk/query.js.map +1 -1
- package/out/services/package-boundary-detector.d.ts +101 -0
- package/out/services/package-boundary-detector.js +211 -0
- package/out/services/package-boundary-detector.js.map +1 -0
- package/out/services/performance-optimizer.js +6 -2
- package/out/services/performance-optimizer.js.map +1 -1
- package/out/services/types.d.ts +24 -0
- package/out/services/types.js.map +1 -1
- package/out/services/workspace-manager.d.ts +73 -6
- package/out/services/workspace-manager.js +210 -57
- package/out/services/workspace-manager.js.map +1 -1
- package/out/utils/import-utils.d.ts +9 -6
- package/out/utils/import-utils.js +26 -15
- package/out/utils/import-utils.js.map +1 -1
- package/out/validation/constants.d.ts +7 -0
- package/out/validation/constants.js +21 -3
- package/out/validation/constants.js.map +1 -1
- package/out/validation/import.d.ts +11 -1
- package/out/validation/import.js +42 -14
- package/out/validation/import.js.map +1 -1
- package/out/validation/maps.js +50 -1
- package/out/validation/maps.js.map +1 -1
- package/package.json +5 -5
- package/src/domain-lang-module.ts +24 -3
- package/src/lsp/domain-lang-completion.ts +736 -27
- package/src/lsp/domain-lang-document-symbol-provider.ts +254 -0
- package/src/lsp/domain-lang-index-manager.ts +79 -27
- package/src/lsp/domain-lang-node-kind-provider.ts +119 -0
- package/src/lsp/domain-lang-scope-provider.ts +171 -55
- package/src/lsp/domain-lang-workspace-manager.ts +64 -6
- package/src/lsp/hover/domain-lang-hover.ts +189 -131
- package/src/lsp/hover/hover-builders.ts +208 -0
- package/src/main.ts +3 -1
- package/src/sdk/index.ts +2 -1
- package/src/sdk/loader-node.ts +2 -1
- package/src/sdk/loader.ts +125 -34
- package/src/sdk/query.ts +15 -11
- package/src/services/package-boundary-detector.ts +238 -0
- package/src/services/performance-optimizer.ts +6 -2
- package/src/services/types.ts +25 -0
- package/src/services/workspace-manager.ts +259 -62
- package/src/utils/import-utils.ts +27 -15
- package/src/validation/constants.ts +23 -6
- package/src/validation/import.ts +49 -14
- package/src/validation/maps.ts +59 -2
|
@@ -12,6 +12,11 @@ const DEFAULT_LOCK_FILES = [
|
|
|
12
12
|
/**
|
|
13
13
|
* Coordinates workspace discovery and manifest/lock file reading.
|
|
14
14
|
*
|
|
15
|
+
* **Multi-Root Support:**
|
|
16
|
+
* Maintains separate contexts for each workspace root (directory with model.yaml).
|
|
17
|
+
* This enables correct resolution in multi-project setups where sub-projects
|
|
18
|
+
* have their own model.yaml files.
|
|
19
|
+
*
|
|
15
20
|
* This is a read-only service for the LSP - it does NOT:
|
|
16
21
|
* - Generate lock files (use CLI: `dlang install`)
|
|
17
22
|
* - Download packages (use CLI: `dlang install`)
|
|
@@ -24,43 +29,125 @@ const DEFAULT_LOCK_FILES = [
|
|
|
24
29
|
*/
|
|
25
30
|
export class WorkspaceManager {
|
|
26
31
|
constructor(options = {}) {
|
|
32
|
+
/**
|
|
33
|
+
* Cache of workspace contexts by resolved workspace root path.
|
|
34
|
+
* Supports multiple independent workspaces in a single session.
|
|
35
|
+
*/
|
|
36
|
+
this.workspaceContexts = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* Cache mapping start paths to their resolved workspace roots.
|
|
39
|
+
* Avoids repeated directory tree walking for the same paths.
|
|
40
|
+
*/
|
|
41
|
+
this.pathToRootCache = new Map();
|
|
27
42
|
this.manifestFiles = options.manifestFiles ?? [...DEFAULT_MANIFEST_FILES];
|
|
28
43
|
this.lockFiles = options.lockFiles ?? [...DEFAULT_LOCK_FILES];
|
|
29
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns the active workspace context, or undefined if not initialized.
|
|
47
|
+
* All methods that need context should call this after ensureInitialized().
|
|
48
|
+
*/
|
|
49
|
+
getActiveContext() {
|
|
50
|
+
if (!this.activeRoot)
|
|
51
|
+
return undefined;
|
|
52
|
+
return this.workspaceContexts.get(this.activeRoot);
|
|
53
|
+
}
|
|
30
54
|
/**
|
|
31
55
|
* Finds the workspace root and loads any existing lock file.
|
|
32
|
-
*
|
|
56
|
+
*
|
|
57
|
+
* **Multi-Root Support:**
|
|
58
|
+
* Each call may switch to a different workspace context based on the startPath.
|
|
59
|
+
* The workspace root is the nearest ancestor directory containing model.yaml.
|
|
60
|
+
*
|
|
61
|
+
* @param startPath - Directory to start searching from (usually document directory)
|
|
33
62
|
*/
|
|
34
63
|
async initialize(startPath) {
|
|
35
|
-
|
|
36
|
-
|
|
64
|
+
const normalizedStart = path.resolve(startPath);
|
|
65
|
+
// Fast path: check if we've already resolved this path
|
|
66
|
+
let workspaceRoot = this.pathToRootCache.get(normalizedStart);
|
|
67
|
+
if (!workspaceRoot) {
|
|
68
|
+
// Find workspace root by walking up directory tree
|
|
69
|
+
workspaceRoot = await this.findWorkspaceRoot(normalizedStart) ?? normalizedStart;
|
|
70
|
+
this.pathToRootCache.set(normalizedStart, workspaceRoot);
|
|
71
|
+
}
|
|
72
|
+
// Switch to this workspace's context
|
|
73
|
+
this.activeRoot = workspaceRoot;
|
|
74
|
+
// Get or create context for this workspace
|
|
75
|
+
let context = this.workspaceContexts.get(workspaceRoot);
|
|
76
|
+
if (!context) {
|
|
77
|
+
context = {
|
|
78
|
+
root: workspaceRoot,
|
|
79
|
+
lockFile: undefined,
|
|
80
|
+
manifestCache: undefined,
|
|
81
|
+
initPromise: undefined
|
|
82
|
+
};
|
|
83
|
+
this.workspaceContexts.set(workspaceRoot, context);
|
|
84
|
+
}
|
|
85
|
+
// Initialize this context (lazy, once per context)
|
|
86
|
+
context.initPromise ?? (context.initPromise = this.initializeContext(context));
|
|
87
|
+
await context.initPromise;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Initializes a workspace context by loading its lock file.
|
|
91
|
+
*/
|
|
92
|
+
async initializeContext(context) {
|
|
93
|
+
const loaded = await this.loadLockFileFromDisk(context.root);
|
|
94
|
+
if (loaded) {
|
|
95
|
+
context.lockFile = loaded.lockFile;
|
|
96
|
+
}
|
|
37
97
|
}
|
|
38
98
|
/**
|
|
39
99
|
* Returns the absolute path of the workspace root.
|
|
40
100
|
* @throws Error if {@link initialize} has not completed successfully.
|
|
41
101
|
*/
|
|
42
102
|
getWorkspaceRoot() {
|
|
43
|
-
if (!this.
|
|
103
|
+
if (!this.activeRoot) {
|
|
44
104
|
throw new Error('WorkspaceManager not initialized. Call initialize() first.');
|
|
45
105
|
}
|
|
46
|
-
return this.
|
|
106
|
+
return this.activeRoot;
|
|
47
107
|
}
|
|
48
108
|
/**
|
|
49
109
|
* Returns the project-local package cache directory.
|
|
50
110
|
* Per PRS-010: .dlang/packages/
|
|
111
|
+
*
|
|
112
|
+
* If the current workspace root is inside a cached package,
|
|
113
|
+
* walks up to find the actual project root's cache directory.
|
|
51
114
|
*/
|
|
52
115
|
getCacheDir() {
|
|
53
|
-
if (!this.
|
|
116
|
+
if (!this.activeRoot) {
|
|
54
117
|
throw new Error('WorkspaceManager not initialized. Call initialize() first.');
|
|
55
118
|
}
|
|
56
|
-
|
|
119
|
+
// If workspace root is inside .dlang/packages, find the project root
|
|
120
|
+
const projectRoot = this.findProjectRootFromCache(this.activeRoot);
|
|
121
|
+
return path.join(projectRoot, '.dlang', 'packages');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Finds the actual project root when inside a cached package.
|
|
125
|
+
*
|
|
126
|
+
* Cached packages are stored in: <project>/.dlang/packages/<owner>/<repo>/<commit>/
|
|
127
|
+
* If workspaceRoot is inside this structure, returns <project>
|
|
128
|
+
* Otherwise returns workspaceRoot unchanged.
|
|
129
|
+
*/
|
|
130
|
+
findProjectRootFromCache(currentRoot) {
|
|
131
|
+
// Normalize path for cross-platform compatibility
|
|
132
|
+
const normalized = currentRoot.split(path.sep);
|
|
133
|
+
// Find last occurrence of .dlang in the path
|
|
134
|
+
const dlangIndex = normalized.lastIndexOf('.dlang');
|
|
135
|
+
// Check if we're inside .dlang/packages/...
|
|
136
|
+
if (dlangIndex !== -1 &&
|
|
137
|
+
dlangIndex + 1 < normalized.length &&
|
|
138
|
+
normalized[dlangIndex + 1] === 'packages') {
|
|
139
|
+
// Return the directory containing .dlang (the project root)
|
|
140
|
+
return normalized.slice(0, dlangIndex).join(path.sep);
|
|
141
|
+
}
|
|
142
|
+
// Not in a cached package, return as-is
|
|
143
|
+
return currentRoot;
|
|
57
144
|
}
|
|
58
145
|
/**
|
|
59
146
|
* Resolves the manifest file path within the workspace, if present.
|
|
60
147
|
*/
|
|
61
148
|
async getManifestPath() {
|
|
62
149
|
await this.ensureInitialized();
|
|
63
|
-
const root = this.
|
|
150
|
+
const root = this.activeRoot;
|
|
64
151
|
if (!root) {
|
|
65
152
|
return undefined;
|
|
66
153
|
}
|
|
@@ -80,27 +167,49 @@ export class WorkspaceManager {
|
|
|
80
167
|
await this.ensureInitialized();
|
|
81
168
|
return this.loadManifest();
|
|
82
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Returns the cached manifest synchronously (if available).
|
|
172
|
+
* Used by LSP features that need synchronous access (like completion).
|
|
173
|
+
* Returns undefined if manifest hasn't been loaded yet.
|
|
174
|
+
*/
|
|
175
|
+
getCachedManifest() {
|
|
176
|
+
return this.getActiveContext()?.manifestCache?.manifest;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Ensures the manifest is loaded and returns it.
|
|
180
|
+
* Use this over getCachedManifest() when you need to guarantee the manifest
|
|
181
|
+
* is available (e.g., in async LSP operations like completions).
|
|
182
|
+
*
|
|
183
|
+
* @returns The manifest or undefined if no model.yaml exists
|
|
184
|
+
*/
|
|
185
|
+
async ensureManifestLoaded() {
|
|
186
|
+
// If we already have a cached manifest, return it immediately
|
|
187
|
+
const context = this.getActiveContext();
|
|
188
|
+
if (context?.manifestCache?.manifest) {
|
|
189
|
+
return context.manifestCache.manifest;
|
|
190
|
+
}
|
|
191
|
+
// Otherwise load it (this also populates the cache)
|
|
192
|
+
return this.getManifest();
|
|
193
|
+
}
|
|
83
194
|
/**
|
|
84
195
|
* Gets the currently cached lock file.
|
|
85
196
|
* Returns undefined if no lock file exists (run `dlang install` to create one).
|
|
86
197
|
*/
|
|
87
198
|
async getLockFile() {
|
|
88
199
|
await this.ensureInitialized();
|
|
89
|
-
return this.lockFile;
|
|
200
|
+
return this.getActiveContext()?.lockFile;
|
|
90
201
|
}
|
|
91
202
|
/**
|
|
92
203
|
* Reloads the lock file from disk.
|
|
93
204
|
*/
|
|
94
205
|
async refreshLockFile() {
|
|
95
206
|
await this.ensureInitialized();
|
|
207
|
+
const context = this.getActiveContext();
|
|
96
208
|
const loaded = await this.loadLockFileFromDisk();
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this.lockFile = undefined;
|
|
209
|
+
if (context) {
|
|
210
|
+
context.lockFile = loaded?.lockFile;
|
|
102
211
|
}
|
|
103
|
-
return
|
|
212
|
+
return loaded?.lockFile;
|
|
104
213
|
}
|
|
105
214
|
/**
|
|
106
215
|
* Invalidates all cached data (manifest and lock file).
|
|
@@ -110,22 +219,31 @@ export class WorkspaceManager {
|
|
|
110
219
|
* will re-read from disk.
|
|
111
220
|
*/
|
|
112
221
|
invalidateCache() {
|
|
113
|
-
|
|
114
|
-
|
|
222
|
+
const context = this.getActiveContext();
|
|
223
|
+
if (context) {
|
|
224
|
+
context.manifestCache = undefined;
|
|
225
|
+
context.lockFile = undefined;
|
|
226
|
+
}
|
|
115
227
|
}
|
|
116
228
|
/**
|
|
117
229
|
* Invalidates only the manifest cache.
|
|
118
230
|
* Call this when model.yaml changes.
|
|
119
231
|
*/
|
|
120
232
|
invalidateManifestCache() {
|
|
121
|
-
|
|
233
|
+
const context = this.getActiveContext();
|
|
234
|
+
if (context) {
|
|
235
|
+
context.manifestCache = undefined;
|
|
236
|
+
}
|
|
122
237
|
}
|
|
123
238
|
/**
|
|
124
239
|
* Invalidates only the lock file cache.
|
|
125
240
|
* Call this when model.lock changes.
|
|
126
241
|
*/
|
|
127
242
|
invalidateLockCache() {
|
|
128
|
-
|
|
243
|
+
const context = this.getActiveContext();
|
|
244
|
+
if (context) {
|
|
245
|
+
context.lockFile = undefined;
|
|
246
|
+
}
|
|
129
247
|
}
|
|
130
248
|
/**
|
|
131
249
|
* Returns the path aliases from the manifest, if present.
|
|
@@ -164,7 +282,8 @@ export class WorkspaceManager {
|
|
|
164
282
|
*/
|
|
165
283
|
async resolveDependencyPath(specifier) {
|
|
166
284
|
await this.ensureInitialized();
|
|
167
|
-
|
|
285
|
+
const context = this.getActiveContext();
|
|
286
|
+
if (!context?.lockFile) {
|
|
168
287
|
return undefined;
|
|
169
288
|
}
|
|
170
289
|
const manifest = await this.loadManifest();
|
|
@@ -185,7 +304,7 @@ export class WorkspaceManager {
|
|
|
185
304
|
// Match if specifier equals key or starts with key/
|
|
186
305
|
if (specifier === key || specifier.startsWith(`${key}/`)) {
|
|
187
306
|
// Find in lock file
|
|
188
|
-
const locked =
|
|
307
|
+
const locked = context.lockFile.dependencies[normalized.source];
|
|
189
308
|
if (!locked) {
|
|
190
309
|
return undefined;
|
|
191
310
|
}
|
|
@@ -219,33 +338,30 @@ export class WorkspaceManager {
|
|
|
219
338
|
return 'index.dlang';
|
|
220
339
|
}
|
|
221
340
|
}
|
|
222
|
-
async performInitialization(startPath) {
|
|
223
|
-
this.workspaceRoot = await this.findWorkspaceRoot(startPath) ?? path.resolve(startPath);
|
|
224
|
-
const loaded = await this.loadLockFileFromDisk();
|
|
225
|
-
if (loaded) {
|
|
226
|
-
this.lockFile = loaded.lockFile;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
341
|
async ensureInitialized() {
|
|
230
|
-
if
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
342
|
+
// Check if we have an active workspace context
|
|
343
|
+
if (this.activeRoot) {
|
|
344
|
+
const context = this.workspaceContexts.get(this.activeRoot);
|
|
345
|
+
if (context?.initPromise) {
|
|
346
|
+
await context.initPromise;
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
235
349
|
}
|
|
350
|
+
throw new Error('WorkspaceManager not initialized. Call initialize() first.');
|
|
236
351
|
}
|
|
237
|
-
async loadLockFileFromDisk() {
|
|
238
|
-
|
|
352
|
+
async loadLockFileFromDisk(root) {
|
|
353
|
+
const workspaceRoot = root ?? this.activeRoot;
|
|
354
|
+
if (!workspaceRoot) {
|
|
239
355
|
return undefined;
|
|
240
356
|
}
|
|
241
357
|
// Try performance optimizer cache first
|
|
242
358
|
const optimizer = getGlobalOptimizer();
|
|
243
|
-
const cached = await optimizer.getCachedLockFile(
|
|
359
|
+
const cached = await optimizer.getCachedLockFile(workspaceRoot);
|
|
244
360
|
if (cached) {
|
|
245
|
-
return { lockFile: cached, filePath: path.join(
|
|
361
|
+
return { lockFile: cached, filePath: path.join(workspaceRoot, 'model.lock') };
|
|
246
362
|
}
|
|
247
363
|
for (const filename of this.lockFiles) {
|
|
248
|
-
const filePath = path.join(
|
|
364
|
+
const filePath = path.join(workspaceRoot, filename);
|
|
249
365
|
const lockFile = await this.tryReadLockFile(filePath);
|
|
250
366
|
if (lockFile) {
|
|
251
367
|
return { lockFile, filePath };
|
|
@@ -266,34 +382,71 @@ export class WorkspaceManager {
|
|
|
266
382
|
}
|
|
267
383
|
}
|
|
268
384
|
async loadManifest() {
|
|
385
|
+
const context = this.getActiveContext();
|
|
269
386
|
const manifestPath = await this.getManifestPath();
|
|
270
387
|
if (!manifestPath) {
|
|
271
|
-
this.
|
|
388
|
+
this.clearManifestCache(context);
|
|
272
389
|
return undefined;
|
|
273
390
|
}
|
|
274
391
|
try {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
392
|
+
return await this.readAndCacheManifest(manifestPath, context);
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
return this.handleManifestError(error, manifestPath, context);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Reads, validates, and caches a manifest file.
|
|
400
|
+
*/
|
|
401
|
+
async readAndCacheManifest(manifestPath, context) {
|
|
402
|
+
const stat = await fs.stat(manifestPath);
|
|
403
|
+
if (context?.manifestCache?.path === manifestPath &&
|
|
404
|
+
context.manifestCache.mtimeMs === stat.mtimeMs) {
|
|
405
|
+
return context.manifestCache.manifest;
|
|
406
|
+
}
|
|
407
|
+
const content = await fs.readFile(manifestPath, 'utf-8');
|
|
408
|
+
const manifest = (YAML.parse(content) ?? {});
|
|
409
|
+
// Validate manifest structure
|
|
410
|
+
this.validateManifest(manifest, manifestPath);
|
|
411
|
+
if (context) {
|
|
412
|
+
context.manifestCache = {
|
|
285
413
|
manifest,
|
|
286
414
|
path: manifestPath,
|
|
287
415
|
mtimeMs: stat.mtimeMs,
|
|
288
416
|
};
|
|
289
|
-
return manifest;
|
|
290
417
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
418
|
+
return manifest;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Handles errors from manifest loading, distinguishing recoverable
|
|
422
|
+
* errors (missing file, parse errors) from unexpected ones.
|
|
423
|
+
*/
|
|
424
|
+
handleManifestError(error, manifestPath, context) {
|
|
425
|
+
if (error?.code === 'ENOENT') {
|
|
426
|
+
this.clearManifestCache(context);
|
|
427
|
+
return undefined;
|
|
428
|
+
}
|
|
429
|
+
// YAML parse errors should not crash the LSP
|
|
430
|
+
if (error instanceof Error &&
|
|
431
|
+
(error.name === 'YAMLParseError' || error.name === 'YAMLSyntaxError')) {
|
|
432
|
+
console.error(`Invalid model.yaml at ${manifestPath}: ${error.message}`);
|
|
433
|
+
this.clearManifestCache(context);
|
|
434
|
+
return undefined;
|
|
435
|
+
}
|
|
436
|
+
// Validation errors from validateManifest should not crash the LSP
|
|
437
|
+
if (error instanceof Error) {
|
|
438
|
+
console.error(`Manifest validation error at ${manifestPath}: ${error.message}`);
|
|
439
|
+
this.clearManifestCache(context);
|
|
440
|
+
return undefined;
|
|
441
|
+
}
|
|
442
|
+
throw error;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Clears the manifest cache on the given context, if available.
|
|
446
|
+
*/
|
|
447
|
+
clearManifestCache(context) {
|
|
448
|
+
if (context) {
|
|
449
|
+
context.manifestCache = undefined;
|
|
297
450
|
}
|
|
298
451
|
}
|
|
299
452
|
/**
|
|
@@ -366,7 +519,7 @@ export class WorkspaceManager {
|
|
|
366
519
|
// Resolve path relative to manifest directory
|
|
367
520
|
const manifestDir = path.dirname(manifestPath);
|
|
368
521
|
const resolvedPath = path.resolve(manifestDir, localPath);
|
|
369
|
-
const workspaceRoot = this.
|
|
522
|
+
const workspaceRoot = this.activeRoot || manifestDir;
|
|
370
523
|
// Check if resolved path is within workspace
|
|
371
524
|
const relativePath = path.relative(workspaceRoot, resolvedPath);
|
|
372
525
|
if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/services/workspace-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/services/workspace-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { URI, type LangiumDocument, type LangiumDocuments } from 'langium';
|
|
2
|
+
import { ImportResolver } from '../services/import-resolver.js';
|
|
2
3
|
/**
|
|
3
4
|
* Resolves an import path to an absolute file URI.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - Module imports (no extension): Requires model.yaml in directory
|
|
8
|
-
* - External dependencies: Resolved via manifest and lock file
|
|
6
|
+
* @deprecated Prefer using ImportResolver.resolveForDocument() from the DI container.
|
|
7
|
+
* This function creates standalone instances outside the DI system.
|
|
9
8
|
*
|
|
10
9
|
* @param importingDoc - The document containing the import statement
|
|
11
10
|
* @param rawImportPath - The raw import path from the import statement
|
|
@@ -18,15 +17,19 @@ export declare function resolveImportPath(importingDoc: LangiumDocument, rawImpo
|
|
|
18
17
|
*
|
|
19
18
|
* @param entryFilePath - Absolute or workspace-relative path to entry file
|
|
20
19
|
* @param langiumDocuments - The Langium documents manager
|
|
20
|
+
* @param importResolver - Optional DI-injected ImportResolver. When provided,
|
|
21
|
+
* uses it instead of creating standalone instances. Recommended for LSP contexts.
|
|
21
22
|
* @returns Set of URIs (as strings) for all documents in the import graph
|
|
22
23
|
* @throws {Error} If entry file cannot be resolved or loaded
|
|
23
24
|
*/
|
|
24
|
-
export declare function ensureImportGraphFromEntryFile(entryFilePath: string, langiumDocuments: LangiumDocuments): Promise<Set<string>>;
|
|
25
|
+
export declare function ensureImportGraphFromEntryFile(entryFilePath: string, langiumDocuments: LangiumDocuments, importResolver?: ImportResolver): Promise<Set<string>>;
|
|
25
26
|
/**
|
|
26
27
|
* Recursively builds the import graph from a document.
|
|
27
28
|
*
|
|
28
29
|
* @param document - The starting document
|
|
29
30
|
* @param langiumDocuments - The Langium documents manager
|
|
31
|
+
* @param importResolver - Optional DI-injected ImportResolver. When provided,
|
|
32
|
+
* uses it instead of creating standalone instances. Recommended for LSP contexts.
|
|
30
33
|
* @returns Set of URIs (as strings) for all documents in the import graph
|
|
31
34
|
*/
|
|
32
|
-
export declare function ensureImportGraphFromDocument(document: LangiumDocument, langiumDocuments: LangiumDocuments): Promise<Set<string>>;
|
|
35
|
+
export declare function ensureImportGraphFromDocument(document: LangiumDocument, langiumDocuments: LangiumDocuments, importResolver?: ImportResolver): Promise<Set<string>>;
|
|
@@ -4,7 +4,11 @@ import { WorkspaceManager } from '../services/workspace-manager.js';
|
|
|
4
4
|
import { ImportResolver } from '../services/import-resolver.js';
|
|
5
5
|
/**
|
|
6
6
|
* Lazily initialized workspace manager for standalone (non-LSP) usage.
|
|
7
|
-
* Used by import graph building when
|
|
7
|
+
* Used by import graph building when no DI-injected ImportResolver is available.
|
|
8
|
+
*
|
|
9
|
+
* @deprecated Prefer passing an ImportResolver from the DI container.
|
|
10
|
+
* These singletons exist only for backwards compatibility with callers
|
|
11
|
+
* that haven't been updated to pass through DI services.
|
|
8
12
|
*/
|
|
9
13
|
let standaloneWorkspaceManager;
|
|
10
14
|
let standaloneImportResolver;
|
|
@@ -13,9 +17,7 @@ let lastInitializedDir;
|
|
|
13
17
|
* Gets or creates a standalone import resolver for non-LSP contexts.
|
|
14
18
|
* Creates its own WorkspaceManager if not previously initialized for this directory.
|
|
15
19
|
*
|
|
16
|
-
*
|
|
17
|
-
* This function exists for utilities that don't have access to the service container.
|
|
18
|
-
*
|
|
20
|
+
* @deprecated Prefer using services.imports.ImportResolver directly.
|
|
19
21
|
* @param startDir - Directory to start workspace search from
|
|
20
22
|
* @returns Promise resolving to the import resolver
|
|
21
23
|
*/
|
|
@@ -40,10 +42,8 @@ async function getStandaloneImportResolver(startDir) {
|
|
|
40
42
|
/**
|
|
41
43
|
* Resolves an import path to an absolute file URI.
|
|
42
44
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* - Module imports (no extension): Requires model.yaml in directory
|
|
46
|
-
* - External dependencies: Resolved via manifest and lock file
|
|
45
|
+
* @deprecated Prefer using ImportResolver.resolveForDocument() from the DI container.
|
|
46
|
+
* This function creates standalone instances outside the DI system.
|
|
47
47
|
*
|
|
48
48
|
* @param importingDoc - The document containing the import statement
|
|
49
49
|
* @param rawImportPath - The raw import path from the import statement
|
|
@@ -60,22 +60,26 @@ export async function resolveImportPath(importingDoc, rawImportPath) {
|
|
|
60
60
|
*
|
|
61
61
|
* @param entryFilePath - Absolute or workspace-relative path to entry file
|
|
62
62
|
* @param langiumDocuments - The Langium documents manager
|
|
63
|
+
* @param importResolver - Optional DI-injected ImportResolver. When provided,
|
|
64
|
+
* uses it instead of creating standalone instances. Recommended for LSP contexts.
|
|
63
65
|
* @returns Set of URIs (as strings) for all documents in the import graph
|
|
64
66
|
* @throws {Error} If entry file cannot be resolved or loaded
|
|
65
67
|
*/
|
|
66
|
-
export async function ensureImportGraphFromEntryFile(entryFilePath, langiumDocuments) {
|
|
68
|
+
export async function ensureImportGraphFromEntryFile(entryFilePath, langiumDocuments, importResolver) {
|
|
67
69
|
const entryUri = URI.file(path.resolve(entryFilePath));
|
|
68
70
|
const entryDoc = await langiumDocuments.getOrCreateDocument(entryUri);
|
|
69
|
-
return ensureImportGraphFromDocument(entryDoc, langiumDocuments);
|
|
71
|
+
return ensureImportGraphFromDocument(entryDoc, langiumDocuments, importResolver);
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* Recursively builds the import graph from a document.
|
|
73
75
|
*
|
|
74
76
|
* @param document - The starting document
|
|
75
77
|
* @param langiumDocuments - The Langium documents manager
|
|
78
|
+
* @param importResolver - Optional DI-injected ImportResolver. When provided,
|
|
79
|
+
* uses it instead of creating standalone instances. Recommended for LSP contexts.
|
|
76
80
|
* @returns Set of URIs (as strings) for all documents in the import graph
|
|
77
81
|
*/
|
|
78
|
-
export async function ensureImportGraphFromDocument(document, langiumDocuments) {
|
|
82
|
+
export async function ensureImportGraphFromDocument(document, langiumDocuments, importResolver) {
|
|
79
83
|
const visited = new Set();
|
|
80
84
|
async function visit(doc) {
|
|
81
85
|
const uriString = doc.uri.toString();
|
|
@@ -86,10 +90,17 @@ export async function ensureImportGraphFromDocument(document, langiumDocuments)
|
|
|
86
90
|
for (const imp of model.imports ?? []) {
|
|
87
91
|
if (!imp.uri)
|
|
88
92
|
continue;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
try {
|
|
94
|
+
// Use DI-injected resolver when available, falling back to standalone
|
|
95
|
+
const resolvedUri = importResolver
|
|
96
|
+
? await importResolver.resolveForDocument(doc, imp.uri)
|
|
97
|
+
: await resolveImportPath(doc, imp.uri);
|
|
98
|
+
const childDoc = await langiumDocuments.getOrCreateDocument(resolvedUri);
|
|
99
|
+
await visit(childDoc);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Import resolution failed — validation will report the error
|
|
103
|
+
}
|
|
93
104
|
}
|
|
94
105
|
}
|
|
95
106
|
await visit(document);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-utils.js","sourceRoot":"","sources":["../../src/utils/import-utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAA+C,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE
|
|
1
|
+
{"version":3,"file":"import-utils.js","sourceRoot":"","sources":["../../src/utils/import-utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAA+C,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE;;;;;;;GAOG;AACH,IAAI,0BAAwD,CAAC;AAC7D,IAAI,wBAAoD,CAAC;AACzD,IAAI,kBAAsC,CAAC;AAE3C;;;;;;;GAOG;AACH,KAAK,UAAU,2BAA2B,CAAC,QAAgB;IACzD,0DAA0D;IAC1D,IAAI,kBAAkB,KAAK,QAAQ,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACjE,0BAA0B,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,0BAA0B,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE;SACpC,CAAC;QACxB,wBAAwB,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxD,kBAAkB,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,YAA6B,EAC7B,aAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,aAAqB,EACrB,gBAAkC,EAClC,cAA+B;IAE/B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACtE,OAAO,6BAA6B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAAyB,EACzB,gBAAkC,EAClC,cAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,UAAU,KAAK,CAAC,GAAoB;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEvB,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,KAAyB,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,GAAG;gBAAE,SAAS;YAEvB,IAAI,CAAC;gBACH,sEAAsE;gBACtE,MAAM,WAAW,GAAG,cAAc;oBAChC,CAAC,CAAC,MAAM,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;oBACvD,CAAC,CAAC,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBACzE,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,8DAA8D;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -40,6 +40,7 @@ export declare const IssueCodes: {
|
|
|
40
40
|
readonly TooManyPatterns: "too-many-patterns";
|
|
41
41
|
readonly ContextMapNoContexts: "context-map-no-contexts";
|
|
42
42
|
readonly ContextMapNoRelationships: "context-map-no-relationships";
|
|
43
|
+
readonly ContextMapDuplicateRelationship: "context-map-duplicate-relationship";
|
|
43
44
|
readonly DomainMapNoDomains: "domain-map-no-domains";
|
|
44
45
|
readonly UnresolvedReference: "unresolved-reference";
|
|
45
46
|
readonly MetadataMissingName: "metadata-missing-name";
|
|
@@ -175,6 +176,12 @@ export declare const ValidationMessages: {
|
|
|
175
176
|
* @param count - Number of contexts
|
|
176
177
|
*/
|
|
177
178
|
readonly CONTEXT_MAP_NO_RELATIONSHIPS: (name: string, count: number) => string;
|
|
179
|
+
/**
|
|
180
|
+
* Warning when a context map contains duplicate relationships.
|
|
181
|
+
* @param leftContext - Name of the left context
|
|
182
|
+
* @param rightContext - Name of the right context
|
|
183
|
+
*/
|
|
184
|
+
readonly CONTEXT_MAP_DUPLICATE_RELATIONSHIP: (leftContext: string, rightContext: string) => string;
|
|
178
185
|
/**
|
|
179
186
|
* Warning when domain map contains no domains.
|
|
180
187
|
* @param name - The domain map name
|