@oml/language 0.19.3 → 0.20.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.
@@ -49,7 +49,8 @@ export declare class OmlIndex {
49
49
  private readonly unitIrisByModelUri;
50
50
  private readonly indexedClassesByIri;
51
51
  private readonly classIrisByModelUri;
52
- private initialSweepDone;
52
+ private indexedLoadedDocumentCount;
53
+ private loadedDocumentsIndexed;
53
54
  constructor(shared: LangiumSharedServices);
54
55
  resolveModelUri(identifier: string, referencingDocumentUri?: string): string | undefined;
55
56
  private synthesizeCandidateForReferencingScheme;
@@ -44,8 +44,13 @@ export class OmlIndex {
44
44
  this.unitIrisByModelUri = new Map();
45
45
  this.indexedClassesByIri = new Map();
46
46
  this.classIrisByModelUri = new Map();
47
- this.initialSweepDone = false;
47
+ this.indexedLoadedDocumentCount = 0;
48
+ this.loadedDocumentsIndexed = false;
48
49
  this.shared.workspace.DocumentBuilder.onUpdate((_changed, deleted) => {
50
+ if (deleted.length > 0) {
51
+ this.indexedLoadedDocumentCount = 0;
52
+ this.loadedDocumentsIndexed = false;
53
+ }
49
54
  for (const deletedUri of deleted) {
50
55
  this.removeModelUri(deletedUri.toString());
51
56
  }
@@ -68,6 +73,9 @@ export class OmlIndex {
68
73
  if (!indexedCandidates || indexedCandidates.size === 0) {
69
74
  return undefined;
70
75
  }
76
+ if (indexedCandidates.size === 1) {
77
+ return indexedCandidates.values().next().value;
78
+ }
71
79
  const candidates = new Set(indexedCandidates);
72
80
  let reference;
73
81
  if (referencingDocumentUri) {
@@ -246,21 +254,27 @@ export class OmlIndex {
246
254
  this.unindexModelUri(modelUri);
247
255
  }
248
256
  ensureIndexedFromLoadedDocuments() {
249
- // The DocumentBuilder hooks installed in the constructor (onDocumentPhase(Parsed)
250
- // and onUpdate) keep the index incrementally in sync after the first sweep, so
251
- // re-scanning every loaded document on each read is wasted O(D) work on the hot path.
252
- if (this.initialSweepDone) {
253
- return;
254
- }
255
- this.initialSweepDone = true;
256
257
  const docs = this.shared.workspace.LangiumDocuments;
257
258
  const all = docs.all ?? [];
258
259
  const iterable = Array.isArray(all)
259
260
  ? all
260
261
  : (typeof all?.toArray === 'function' ? all.toArray() : all);
261
- for (const document of iterable) {
262
+ const documents = Array.isArray(iterable) ? iterable : [...iterable];
263
+ if (this.loadedDocumentsIndexed && documents.length === this.indexedLoadedDocumentCount) {
264
+ return;
265
+ }
266
+ if (documents.length === this.indexedLoadedDocumentCount) {
267
+ this.loadedDocumentsIndexed = true;
268
+ return;
269
+ }
270
+ for (const document of documents) {
271
+ if (this.workspaceNamespaceByModelUri.has(document.uri.toString())) {
272
+ continue;
273
+ }
262
274
  this.indexDocument(document);
263
275
  }
276
+ this.indexedLoadedDocumentCount = documents.length;
277
+ this.loadedDocumentsIndexed = true;
264
278
  }
265
279
  indexDocument(document) {
266
280
  const modelUri = document.uri.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"oml-index.js","sourceRoot":"","sources":["../../src/oml/oml-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oml-index.js","sourceRoot":"","sources":["../../src/oml/oml-index.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export class OmlWorkspaceManager extends DefaultWorkspaceManager {
22
22
  */
23
23
  async initializeWorkspace(folders, cancelToken) {
24
24
  let resolvedFolders = folders;
25
- if (this.connection) {
25
+ if (this.connection && shouldResolveWorkspaceFoldersFromClient(folders)) {
26
26
  try {
27
27
  const uris = await this.connection.sendRequest(GET_WORKSPACE_FOLDERS_REQUEST, {});
28
28
  if (uris && uris.length > 0) {
@@ -62,4 +62,20 @@ function isUriPathWithinWorkspace(candidate, workspace) {
62
62
  const workspacePath = normalizeUriPath(workspace.path);
63
63
  return candidatePath === workspacePath || candidatePath.startsWith(`${workspacePath}/`);
64
64
  }
65
+ function shouldResolveWorkspaceFoldersFromClient(folders) {
66
+ if (folders.length === 0) {
67
+ return true;
68
+ }
69
+ return folders.some((folder) => {
70
+ if (typeof folder?.uri !== 'string') {
71
+ return false;
72
+ }
73
+ try {
74
+ return URI.parse(folder.uri).scheme === 'vsls';
75
+ }
76
+ catch {
77
+ return false;
78
+ }
79
+ });
80
+ }
65
81
  //# sourceMappingURL=oml-workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oml-workspace.js","sourceRoot":"","sources":["../../src/oml/oml-workspace.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,GAAG,EAAkC,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,6BAA6B,GAAG,4BAA4B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAG5D,YAAY,QAAmC;QAC3C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,GAAI,QAAkD,CAAC,GAAG,EAAE,UAAU,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,mBAAmB,CAAC,OAAc,EAAE,WAAiB;QAChE,IAAI,eAAe,GAAG,OAAO,CAAC;QAE9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAW,6BAA6B,EAAE,EAAE,CAAC,CAAC;gBAC5F,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBACpC,GAAG;wBACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,WAAW;qBAChF,CAAC,CAAC,CAAC;gBACR,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,0EAA0E;YAC9E,CAAC;QACL,CAAC;QAEA,IAAuC,CAAC,OAAO,GAAG,eAAe,CAAC;QACnE,MAAM,KAAK,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;CACJ;AAED,MAAM,UAAU,gCAAgC,CAC5C,gBAAmF,EACnF,GAAQ;IAER,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YAC/C,SAAS;QACb,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACjG,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC;IACP,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAc,EAAE,SAAc;IAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,aAAa,KAAK,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"oml-workspace.js","sourceRoot":"","sources":["../../src/oml/oml-workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oml/language",
3
3
  "description": "The language specific package",
4
- "version": "0.19.3",
4
+ "version": "0.20.0",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=20.10.0",
@@ -82,10 +82,15 @@ export class OmlIndex {
82
82
  private readonly unitIrisByModelUri = new Map<string, Set<string>>();
83
83
  private readonly indexedClassesByIri = new Map<string, OmlIndexedClass>();
84
84
  private readonly classIrisByModelUri = new Map<string, Set<string>>();
85
- private initialSweepDone = false;
85
+ private indexedLoadedDocumentCount = 0;
86
+ private loadedDocumentsIndexed = false;
86
87
 
87
88
  constructor(private readonly shared: LangiumSharedServices) {
88
89
  this.shared.workspace.DocumentBuilder.onUpdate((_changed, deleted) => {
90
+ if (deleted.length > 0) {
91
+ this.indexedLoadedDocumentCount = 0;
92
+ this.loadedDocumentsIndexed = false;
93
+ }
89
94
  for (const deletedUri of deleted) {
90
95
  this.removeModelUri(deletedUri.toString());
91
96
  }
@@ -109,6 +114,9 @@ export class OmlIndex {
109
114
  if (!indexedCandidates || indexedCandidates.size === 0) {
110
115
  return undefined;
111
116
  }
117
+ if (indexedCandidates.size === 1) {
118
+ return indexedCandidates.values().next().value;
119
+ }
112
120
  const candidates = new Set<string>(indexedCandidates);
113
121
  let reference: URI | undefined;
114
122
  if (referencingDocumentUri) {
@@ -293,21 +301,27 @@ export class OmlIndex {
293
301
  }
294
302
 
295
303
  private ensureIndexedFromLoadedDocuments(): void {
296
- // The DocumentBuilder hooks installed in the constructor (onDocumentPhase(Parsed)
297
- // and onUpdate) keep the index incrementally in sync after the first sweep, so
298
- // re-scanning every loaded document on each read is wasted O(D) work on the hot path.
299
- if (this.initialSweepDone) {
300
- return;
301
- }
302
- this.initialSweepDone = true;
303
304
  const docs: any = this.shared.workspace.LangiumDocuments;
304
305
  const all = docs.all ?? [];
305
306
  const iterable: Iterable<LangiumDocument> = Array.isArray(all)
306
307
  ? all
307
308
  : (typeof all?.toArray === 'function' ? all.toArray() : all);
308
- for (const document of iterable) {
309
+ const documents = Array.isArray(iterable) ? iterable : [...iterable];
310
+ if (this.loadedDocumentsIndexed && documents.length === this.indexedLoadedDocumentCount) {
311
+ return;
312
+ }
313
+ if (documents.length === this.indexedLoadedDocumentCount) {
314
+ this.loadedDocumentsIndexed = true;
315
+ return;
316
+ }
317
+ for (const document of documents) {
318
+ if (this.workspaceNamespaceByModelUri.has(document.uri.toString())) {
319
+ continue;
320
+ }
309
321
  this.indexDocument(document);
310
322
  }
323
+ this.indexedLoadedDocumentCount = documents.length;
324
+ this.loadedDocumentsIndexed = true;
311
325
  }
312
326
 
313
327
  private indexDocument(document: LangiumDocument): void {
@@ -30,7 +30,7 @@ export class OmlWorkspaceManager extends DefaultWorkspaceManager {
30
30
  override async initializeWorkspace(folders: any[], cancelToken?: any): Promise<void> {
31
31
  let resolvedFolders = folders;
32
32
 
33
- if (this.connection) {
33
+ if (this.connection && shouldResolveWorkspaceFoldersFromClient(folders)) {
34
34
  try {
35
35
  const uris = await this.connection.sendRequest<string[]>(GET_WORKSPACE_FOLDERS_REQUEST, {});
36
36
  if (uris && uris.length > 0) {
@@ -76,3 +76,18 @@ function isUriPathWithinWorkspace(candidate: URI, workspace: URI): boolean {
76
76
  return candidatePath === workspacePath || candidatePath.startsWith(`${workspacePath}/`);
77
77
  }
78
78
 
79
+ function shouldResolveWorkspaceFoldersFromClient(folders: any[]): boolean {
80
+ if (folders.length === 0) {
81
+ return true;
82
+ }
83
+ return folders.some((folder) => {
84
+ if (typeof folder?.uri !== 'string') {
85
+ return false;
86
+ }
87
+ try {
88
+ return URI.parse(folder.uri).scheme === 'vsls';
89
+ } catch {
90
+ return false;
91
+ }
92
+ });
93
+ }