@oml/language 0.7.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 (91) hide show
  1. package/README.md +44 -0
  2. package/out/oml/generated/ast.d.ts +2109 -0
  3. package/out/oml/generated/ast.js +1807 -0
  4. package/out/oml/generated/ast.js.map +1 -0
  5. package/out/oml/generated/grammar.d.ts +6 -0
  6. package/out/oml/generated/grammar.js +6885 -0
  7. package/out/oml/generated/grammar.js.map +1 -0
  8. package/out/oml/generated/module.d.ts +13 -0
  9. package/out/oml/generated/module.js +21 -0
  10. package/out/oml/generated/module.js.map +1 -0
  11. package/out/oml/index.d.ts +17 -0
  12. package/out/oml/index.js +19 -0
  13. package/out/oml/index.js.map +1 -0
  14. package/out/oml/oml-candidates.d.ts +27 -0
  15. package/out/oml/oml-candidates.js +146 -0
  16. package/out/oml/oml-candidates.js.map +1 -0
  17. package/out/oml/oml-code-actions.d.ts +6 -0
  18. package/out/oml/oml-code-actions.js +79 -0
  19. package/out/oml/oml-code-actions.js.map +1 -0
  20. package/out/oml/oml-completion.d.ts +50 -0
  21. package/out/oml/oml-completion.js +188 -0
  22. package/out/oml/oml-completion.js.map +1 -0
  23. package/out/oml/oml-converter.d.ts +10 -0
  24. package/out/oml/oml-converter.js +62 -0
  25. package/out/oml/oml-converter.js.map +1 -0
  26. package/out/oml/oml-document-validator.d.ts +10 -0
  27. package/out/oml/oml-document-validator.js +31 -0
  28. package/out/oml/oml-document-validator.js.map +1 -0
  29. package/out/oml/oml-document.d.ts +9 -0
  30. package/out/oml/oml-document.js +18 -0
  31. package/out/oml/oml-document.js.map +1 -0
  32. package/out/oml/oml-edit.d.ts +72 -0
  33. package/out/oml/oml-edit.js +1155 -0
  34. package/out/oml/oml-edit.js.map +1 -0
  35. package/out/oml/oml-formatter.d.ts +22 -0
  36. package/out/oml/oml-formatter.js +357 -0
  37. package/out/oml/oml-formatter.js.map +1 -0
  38. package/out/oml/oml-hover.d.ts +13 -0
  39. package/out/oml/oml-hover.js +71 -0
  40. package/out/oml/oml-hover.js.map +1 -0
  41. package/out/oml/oml-index-manager.d.ts +10 -0
  42. package/out/oml/oml-index-manager.js +48 -0
  43. package/out/oml/oml-index-manager.js.map +1 -0
  44. package/out/oml/oml-index.d.ts +20 -0
  45. package/out/oml/oml-index.js +133 -0
  46. package/out/oml/oml-index.js.map +1 -0
  47. package/out/oml/oml-module.d.ts +42 -0
  48. package/out/oml/oml-module.js +76 -0
  49. package/out/oml/oml-module.js.map +1 -0
  50. package/out/oml/oml-rename.d.ts +14 -0
  51. package/out/oml/oml-rename.js +114 -0
  52. package/out/oml/oml-rename.js.map +1 -0
  53. package/out/oml/oml-scope.d.ts +30 -0
  54. package/out/oml/oml-scope.js +225 -0
  55. package/out/oml/oml-scope.js.map +1 -0
  56. package/out/oml/oml-serializer.d.ts +2 -0
  57. package/out/oml/oml-serializer.js +883 -0
  58. package/out/oml/oml-serializer.js.map +1 -0
  59. package/out/oml/oml-utils.d.ts +53 -0
  60. package/out/oml/oml-utils.js +241 -0
  61. package/out/oml/oml-utils.js.map +1 -0
  62. package/out/oml/oml-validator.d.ts +49 -0
  63. package/out/oml/oml-validator.js +668 -0
  64. package/out/oml/oml-validator.js.map +1 -0
  65. package/out/oml/oml-workspace.d.ts +23 -0
  66. package/out/oml/oml-workspace.js +68 -0
  67. package/out/oml/oml-workspace.js.map +1 -0
  68. package/package.json +50 -0
  69. package/src/oml/generated/ast.ts +2641 -0
  70. package/src/oml/generated/grammar.ts +6887 -0
  71. package/src/oml/generated/module.ts +25 -0
  72. package/src/oml/index.ts +19 -0
  73. package/src/oml/oml-candidates.ts +176 -0
  74. package/src/oml/oml-code-actions.ts +120 -0
  75. package/src/oml/oml-completion.ts +222 -0
  76. package/src/oml/oml-converter.ts +66 -0
  77. package/src/oml/oml-document-validator.ts +39 -0
  78. package/src/oml/oml-document.ts +24 -0
  79. package/src/oml/oml-edit.ts +1292 -0
  80. package/src/oml/oml-formatter.ts +390 -0
  81. package/src/oml/oml-hover.ts +93 -0
  82. package/src/oml/oml-index-manager.ts +56 -0
  83. package/src/oml/oml-index.ts +145 -0
  84. package/src/oml/oml-module.ts +105 -0
  85. package/src/oml/oml-rename.ts +140 -0
  86. package/src/oml/oml-scope.ts +279 -0
  87. package/src/oml/oml-serializer.ts +1080 -0
  88. package/src/oml/oml-utils.ts +294 -0
  89. package/src/oml/oml-validator.ts +725 -0
  90. package/src/oml/oml-workspace.ts +81 -0
  91. package/src/oml/oml.langium +594 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../../src/oml/generated/grammar.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,IAAI,gBAAqC,CAAC;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6tNnG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /******************************************************************************
2
+ * This file was generated by langium-cli 4.1.0.
3
+ * DO NOT EDIT MANUALLY!
4
+ ******************************************************************************/
5
+ import type { LangiumSharedCoreServices, LangiumCoreServices, LangiumGeneratedCoreServices, LangiumGeneratedSharedCoreServices, Module } from 'langium';
6
+ export declare const OmlLanguageMetaData: {
7
+ readonly languageId: "oml";
8
+ readonly fileExtensions: readonly [".oml"];
9
+ readonly caseInsensitive: false;
10
+ readonly mode: "development";
11
+ };
12
+ export declare const OmlGeneratedSharedModule: Module<LangiumSharedCoreServices, LangiumGeneratedSharedCoreServices>;
13
+ export declare const OmlGeneratedModule: Module<LangiumCoreServices, LangiumGeneratedCoreServices>;
@@ -0,0 +1,21 @@
1
+ /******************************************************************************
2
+ * This file was generated by langium-cli 4.1.0.
3
+ * DO NOT EDIT MANUALLY!
4
+ ******************************************************************************/
5
+ import { OmlAstReflection } from './ast.js';
6
+ import { OmlGrammar } from './grammar.js';
7
+ export const OmlLanguageMetaData = {
8
+ languageId: 'oml',
9
+ fileExtensions: ['.oml'],
10
+ caseInsensitive: false,
11
+ mode: 'development'
12
+ };
13
+ export const OmlGeneratedSharedModule = {
14
+ AstReflection: () => new OmlAstReflection()
15
+ };
16
+ export const OmlGeneratedModule = {
17
+ Grammar: () => OmlGrammar(),
18
+ LanguageMetaData: () => OmlLanguageMetaData,
19
+ parser: {}
20
+ };
21
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/oml/generated/module.ts"],"names":[],"mappings":"AAAA;;;gFAGgF;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,aAAa;CACc,CAAC;AAEtC,MAAM,CAAC,MAAM,wBAAwB,GAA0E;IAC3G,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA8D;IACzF,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;IAC3B,gBAAgB,EAAE,GAAG,EAAE,CAAC,mBAAmB;IAC3C,MAAM,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,17 @@
1
+ export * from './oml-module.js';
2
+ export * from './oml-candidates.js';
3
+ export * from './oml-completion.js';
4
+ export * from './oml-converter.js';
5
+ export * from './oml-edit.js';
6
+ export * from './oml-formatter.js';
7
+ export * from './oml-hover.js';
8
+ export * from './oml-index.js';
9
+ export * from './oml-rename.js';
10
+ export * from './oml-serializer.js';
11
+ export * from './oml-scope.js';
12
+ export * from './oml-validator.js';
13
+ export * from './oml-utils.js';
14
+ export * from './oml-workspace.js';
15
+ export * from './generated/ast.js';
16
+ export * from './generated/grammar.js';
17
+ export * from './generated/module.js';
@@ -0,0 +1,19 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ export * from './oml-module.js';
3
+ export * from './oml-candidates.js';
4
+ export * from './oml-completion.js';
5
+ export * from './oml-converter.js';
6
+ export * from './oml-edit.js';
7
+ export * from './oml-formatter.js';
8
+ export * from './oml-hover.js';
9
+ export * from './oml-index.js';
10
+ export * from './oml-rename.js';
11
+ export * from './oml-serializer.js';
12
+ export * from './oml-scope.js';
13
+ export * from './oml-validator.js';
14
+ export * from './oml-utils.js';
15
+ export * from './oml-workspace.js';
16
+ export * from './generated/ast.js';
17
+ export * from './generated/grammar.js';
18
+ export * from './generated/module.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oml/index.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type AstNodeDescription, type AstNodeLocator, type IndexManager, type LangiumDocuments, type Stream } from 'langium';
2
+ export declare const OmlCandidatesRequest = "oml/candidates";
3
+ export interface OmlCandidatesParams {
4
+ referenceType: string;
5
+ }
6
+ export interface OmlCandidatesResult {
7
+ candidates: string[];
8
+ }
9
+ type ConnectionLike = {
10
+ onRequest: (type: string, handler: (params: OmlCandidatesParams) => OmlCandidatesResult | Promise<OmlCandidatesResult>) => void;
11
+ };
12
+ export declare class OmlCandidates {
13
+ private readonly indexManager;
14
+ private readonly langiumDocuments;
15
+ private readonly astNodeLocator;
16
+ private readonly referenceCandidatesCache;
17
+ private readonly workspaceCandidateIrisCache;
18
+ constructor(indexManager: IndexManager, langiumDocuments: LangiumDocuments, astNodeLocator: AstNodeLocator);
19
+ getReferenceCandidates(referenceType: string, linkable: Stream<AstNodeDescription>): Stream<AstNodeDescription>;
20
+ getWorkspaceCandidateIris(referenceType: string): string[];
21
+ private getWorkspaceCandidates;
22
+ private resolveNodeIri;
23
+ private resolveDescriptionNode;
24
+ private pruneCache;
25
+ }
26
+ export declare function registerOmlCandidatesRequests(connection: ConnectionLike, shared: any): void;
27
+ export {};
@@ -0,0 +1,146 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import { URI, stream } from 'langium';
3
+ import { isConceptInstance, isMember, isRelationInstance } from './generated/ast.js';
4
+ import { getIriForNode, getWorkspaceSnapshot } from './oml-utils.js';
5
+ export const OmlCandidatesRequest = 'oml/candidates';
6
+ const MaxReferenceTypeCaches = 64;
7
+ const workspacePreloadState = new WeakMap();
8
+ export class OmlCandidates {
9
+ constructor(indexManager, langiumDocuments, astNodeLocator) {
10
+ this.indexManager = indexManager;
11
+ this.langiumDocuments = langiumDocuments;
12
+ this.astNodeLocator = astNodeLocator;
13
+ this.referenceCandidatesCache = new Map();
14
+ this.workspaceCandidateIrisCache = new Map();
15
+ }
16
+ getReferenceCandidates(referenceType, linkable) {
17
+ const workspace = stream(this.getWorkspaceCandidates(referenceType));
18
+ return linkable.concat(workspace).distinct((desc) => `${desc.documentUri.toString()}|${desc.path}|${desc.name}`);
19
+ }
20
+ getWorkspaceCandidateIris(referenceType) {
21
+ const normalizedReferenceType = referenceType.trim();
22
+ if (!normalizedReferenceType) {
23
+ return [];
24
+ }
25
+ const snapshot = getWorkspaceSnapshot(this.langiumDocuments);
26
+ const cached = this.workspaceCandidateIrisCache.get(normalizedReferenceType);
27
+ if (cached && cached.snapshot === snapshot) {
28
+ return cached.candidates;
29
+ }
30
+ const workspace = this.getWorkspaceCandidates(normalizedReferenceType);
31
+ const iris = [];
32
+ for (const description of workspace) {
33
+ const node = this.resolveDescriptionNode(description);
34
+ const iri = this.resolveNodeIri(node);
35
+ if (iri) {
36
+ iris.push(iri);
37
+ }
38
+ }
39
+ const candidates = [...new Set(iris)];
40
+ this.workspaceCandidateIrisCache.set(normalizedReferenceType, { snapshot, candidates });
41
+ this.pruneCache(this.workspaceCandidateIrisCache, MaxReferenceTypeCaches);
42
+ return candidates;
43
+ }
44
+ getWorkspaceCandidates(referenceType) {
45
+ const snapshot = getWorkspaceSnapshot(this.langiumDocuments);
46
+ const cached = this.referenceCandidatesCache.get(referenceType);
47
+ if (cached && cached.snapshot === snapshot) {
48
+ return cached.candidates;
49
+ }
50
+ const candidates = this.indexManager.allElements(referenceType).toArray();
51
+ this.referenceCandidatesCache.set(referenceType, { snapshot, candidates });
52
+ this.pruneCache(this.referenceCandidatesCache, MaxReferenceTypeCaches);
53
+ return candidates;
54
+ }
55
+ resolveNodeIri(node) {
56
+ if (isMember(node)) {
57
+ const iri = getIriForNode(node);
58
+ if (iri) {
59
+ return iri;
60
+ }
61
+ }
62
+ if (isConceptInstance(node) || isRelationInstance(node)) {
63
+ const refText = node.ref?.$refText;
64
+ if (typeof refText === 'string' && refText.trim().length > 0) {
65
+ return refText.replace(/^<|>$/g, '').trim();
66
+ }
67
+ }
68
+ return undefined;
69
+ }
70
+ resolveDescriptionNode(description) {
71
+ if (description.node) {
72
+ return description.node;
73
+ }
74
+ const document = this.langiumDocuments.getDocument(description.documentUri);
75
+ const root = document?.parseResult?.value;
76
+ if (!root) {
77
+ return undefined;
78
+ }
79
+ return this.astNodeLocator.getAstNode(root, description.path);
80
+ }
81
+ pruneCache(cache, maxSize) {
82
+ if (cache.size <= maxSize) {
83
+ return;
84
+ }
85
+ const overflow = cache.size - maxSize;
86
+ const keys = cache.keys();
87
+ for (let i = 0; i < overflow; i += 1) {
88
+ const next = keys.next();
89
+ if (next.done) {
90
+ break;
91
+ }
92
+ cache.delete(next.value);
93
+ }
94
+ }
95
+ }
96
+ export function registerOmlCandidatesRequests(connection, shared) {
97
+ const candidates = new OmlCandidates(shared.workspace.IndexManager, shared.workspace.LangiumDocuments, shared.workspace.AstNodeLocator);
98
+ connection.onRequest(OmlCandidatesRequest, async (params) => {
99
+ await ensureWorkspaceIndexed(shared);
100
+ const referenceType = (params?.referenceType ?? '').trim();
101
+ if (!referenceType) {
102
+ return { candidates: [] };
103
+ }
104
+ return { candidates: candidates.getWorkspaceCandidateIris(referenceType) };
105
+ });
106
+ }
107
+ async function ensureWorkspaceIndexed(shared) {
108
+ const key = shared;
109
+ const existing = workspacePreloadState.get(key);
110
+ if (existing?.completed) {
111
+ return;
112
+ }
113
+ if (existing?.promise) {
114
+ await existing.promise;
115
+ return;
116
+ }
117
+ const state = existing ?? { completed: false };
118
+ const promise = (async () => {
119
+ const workspace = shared.workspace.WorkspaceManager;
120
+ const documents = shared.workspace.LangiumDocuments;
121
+ const builder = shared.workspace.DocumentBuilder;
122
+ await workspace.ready;
123
+ const folderUris = workspace.workspaceFolders ?? [];
124
+ const omlUris = new Set();
125
+ for (const folder of folderUris) {
126
+ const entries = await workspace.searchFolder(URI.parse(folder.uri));
127
+ for (const entry of entries) {
128
+ const entryUri = entry.toString();
129
+ if (entryUri.toLowerCase().endsWith('.oml')) {
130
+ omlUris.add(entryUri);
131
+ }
132
+ }
133
+ }
134
+ if (omlUris.size > 0) {
135
+ const docs = await Promise.all([...omlUris].map((uri) => documents.getOrCreateDocument(URI.parse(uri))));
136
+ await builder.build(docs, { validation: { categories: ['built-in', 'fast'] } });
137
+ }
138
+ state.completed = true;
139
+ })().finally(() => {
140
+ state.promise = undefined;
141
+ });
142
+ state.promise = promise;
143
+ workspacePreloadState.set(key, state);
144
+ await promise;
145
+ }
146
+ //# sourceMappingURL=oml-candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oml-candidates.js","sourceRoot":"","sources":["../../src/oml/oml-candidates.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAuG,MAAM,SAAS,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAUrD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAA2D,CAAC;AAMrG,MAAM,OAAO,aAAa;IAItB,YACqB,YAA0B,EAC1B,gBAAkC,EAClC,cAA8B;QAF9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,mBAAc,GAAd,cAAc,CAAgB;QANlC,6BAAwB,GAAG,IAAI,GAAG,EAAkE,CAAC;QACrG,gCAA2B,GAAG,IAAI,GAAG,EAAsD,CAAC;IAM1G,CAAC;IAEJ,sBAAsB,CAAC,aAAqB,EAAE,QAAoC;QAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,yBAAyB,CAAC,aAAqB;QAC3C,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,UAAU,CAAC;QAC7B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;QACvE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,WAAW,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,CAAC;QAC1E,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,sBAAsB,CAAC,aAAqB;QAChD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,UAAU,CAAC;QAC7B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1E,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,IAAa;QAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;YACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,sBAAsB,CAAC,WAA+B;QAC1D,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,WAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAEO,UAAU,CAAI,KAAqB,EAAE,OAAe;QACxD,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM;YACV,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ;AAED,MAAM,UAAU,6BAA6B,CAAC,UAA0B,EAAE,MAAW;IACjF,MAAM,UAAU,GAAG,IAAI,aAAa,CAChC,MAAM,CAAC,SAAS,CAAC,YAAY,EAC7B,MAAM,CAAC,SAAS,CAAC,gBAAgB,EACjC,MAAM,CAAC,SAAS,CAAC,cAAc,CAClC,CAAC;IACF,UAAU,CAAC,SAAS,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAA2B,EAAgC,EAAE;QAC3G,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAAW;IAC7C,MAAM,GAAG,GAAG,MAAgB,CAAC;IAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IACD,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,QAAQ,CAAC,OAAO,CAAC;QACvB,OAAO;IACX,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;QACjD,MAAM,SAAS,CAAC,KAAK,CAAC;QACtB,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1B,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAC;YACF,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,CAAC;AAClB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LangiumDocument, MaybePromise } from 'langium';
2
+ import type { CodeActionProvider } from 'langium/lsp';
3
+ import type { CodeAction, CodeActionParams, Command } from 'vscode-languageserver';
4
+ export declare class OmlCodeActionProvider implements CodeActionProvider {
5
+ getCodeActions(document: LangiumDocument, params: CodeActionParams): MaybePromise<Array<Command | CodeAction> | undefined>;
6
+ }
@@ -0,0 +1,79 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import { CodeActionKind } from 'vscode-languageserver';
3
+ import { OmlEmptyDocumentDiagnosticCode } from './oml-document-validator.js';
4
+ export class OmlCodeActionProvider {
5
+ getCodeActions(document, params) {
6
+ const hasEmptyDocumentDiagnostic = params.context.diagnostics.some(diagnostic => diagnostic.data?.code === OmlEmptyDocumentDiagnosticCode || diagnostic.code === OmlEmptyDocumentDiagnosticCode);
7
+ if (!hasEmptyDocumentDiagnostic) {
8
+ return [];
9
+ }
10
+ const initializer = deriveOntologyInitializer(document.textDocument.uri);
11
+ if (!initializer) {
12
+ return [];
13
+ }
14
+ const text = document.textDocument.getText();
15
+ const replaceRange = {
16
+ start: document.textDocument.positionAt(0),
17
+ end: document.textDocument.positionAt(text.length)
18
+ };
19
+ return [
20
+ createInitializeCodeAction(document.textDocument.uri, replaceRange, `Initialize as description`, renderOntologyStub('description', initializer.iri, initializer.prefix)),
21
+ createInitializeCodeAction(document.textDocument.uri, replaceRange, `Initialize as vocabulary`, renderOntologyStub('vocabulary', initializer.iri, initializer.prefix)),
22
+ createInitializeCodeAction(document.textDocument.uri, replaceRange, `Initialize as description bundle`, renderOntologyStub('description bundle', initializer.iri, initializer.prefix)),
23
+ createInitializeCodeAction(document.textDocument.uri, replaceRange, `Initialize as vocabulary bundle`, renderOntologyStub('vocabulary bundle', initializer.iri, initializer.prefix))
24
+ ];
25
+ }
26
+ }
27
+ function createInitializeCodeAction(uri, range, title, newText) {
28
+ return {
29
+ title,
30
+ kind: CodeActionKind.QuickFix,
31
+ edit: {
32
+ changes: {
33
+ [uri]: [{
34
+ range,
35
+ newText
36
+ }]
37
+ }
38
+ }
39
+ };
40
+ }
41
+ function renderOntologyStub(kind, iri, prefix) {
42
+ return `${kind} <${iri}> as ${prefix} {\n}\n`;
43
+ }
44
+ function deriveOntologyInitializer(uri) {
45
+ let parsed;
46
+ try {
47
+ parsed = new URL(uri);
48
+ }
49
+ catch {
50
+ return undefined;
51
+ }
52
+ const decodedPath = decodeURIComponent(parsed.pathname);
53
+ const omlMarker = '/oml/';
54
+ const markerIndex = decodedPath.lastIndexOf(omlMarker);
55
+ if (markerIndex < 0) {
56
+ return undefined;
57
+ }
58
+ const relativePath = decodedPath.slice(markerIndex + omlMarker.length);
59
+ if (!relativePath.endsWith('.oml')) {
60
+ return undefined;
61
+ }
62
+ const withoutExtension = relativePath.slice(0, -'.oml'.length);
63
+ const segments = withoutExtension.split('/').filter(Boolean);
64
+ if (segments.length === 0) {
65
+ return undefined;
66
+ }
67
+ const prefix = sanitizePrefix(segments[segments.length - 1]);
68
+ if (!prefix) {
69
+ return undefined;
70
+ }
71
+ return {
72
+ iri: `http://${segments.join('/')}#`,
73
+ prefix
74
+ };
75
+ }
76
+ function sanitizePrefix(value) {
77
+ return value.replace(/[^A-Za-z0-9_-]/g, '').trim();
78
+ }
79
+ //# sourceMappingURL=oml-code-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oml-code-actions.js","sourceRoot":"","sources":["../../src/oml/oml-code-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { AstNodeDescription, ReferenceInfo, Stream, LangiumDocuments, AstNodeLocator, IndexManager } from 'langium';
2
+ import type { CompletionItem, TextEdit } from 'vscode-languageserver-types';
3
+ import { DefaultCompletionProvider, type CompletionContext, type CompletionValueItem, type LangiumServices } from 'langium/lsp';
4
+ import { Element, Member, Ontology } from './generated/ast.js';
5
+ /**
6
+ * OML Completion Provider - Grammar-aware completions using Langium LSP
7
+ * Extends Langium's DefaultCompletionProvider to customize completion behavior for OML
8
+ */
9
+ export declare class OmlCompletionProvider extends DefaultCompletionProvider {
10
+ private static readonly MaxResolvedMemberCaches;
11
+ protected readonly indexManager: IndexManager;
12
+ protected readonly langiumDocuments: LangiumDocuments;
13
+ protected readonly astNodeLocator: AstNodeLocator;
14
+ private readonly candidates;
15
+ private readonly resolvedMemberCache;
16
+ private preparedCompletionContext?;
17
+ constructor(services: LangiumServices);
18
+ /**
19
+ * Get reference candidates - include both local definitions and imported IRIs
20
+ * Local definitions don't start with '<', imported ones do
21
+ */
22
+ protected getReferenceCandidates(refInfo: ReferenceInfo, _context: CompletionContext): Stream<AstNodeDescription>;
23
+ /**
24
+ * Customize completion text edit to replace the entire token
25
+ */
26
+ protected buildCompletionTextEdit(context: CompletionContext, _label: string, newText: string): TextEdit | undefined;
27
+ /**
28
+ * Fill completion item with OML-specific details:
29
+ * - Show abbreviated IRIs (prefix:name) instead of full IRIs
30
+ * - Include namespace in detail
31
+ * - Auto-generate import statements for cross-file references
32
+ */
33
+ protected fillCompletionItem(context: CompletionContext, item: CompletionValueItem): CompletionItem | undefined;
34
+ protected resolveMember(desc: AstNodeDescription): Member | undefined;
35
+ /**
36
+ * Extract IRI components (namespace and name) from a member
37
+ */
38
+ getIri(member: Member): [string, string];
39
+ /**
40
+ * Get the ontology containing an element
41
+ */
42
+ getOntology(element: Element): Ontology;
43
+ /**
44
+ * Generate appropriate import statement based on ontology types
45
+ */
46
+ getImportStatement(importing: Ontology, imported: Ontology): string | undefined;
47
+ private getImportNamespace;
48
+ private getPreparedCompletionContext;
49
+ private pruneCache;
50
+ }
@@ -0,0 +1,188 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import { DefaultCompletionProvider } from 'langium/lsp';
3
+ import { isDescription, isDescriptionBox, isMember, isOntology, isVocabulary, isVocabularyBundle } from './generated/ast.js';
4
+ import { getLangiumDocumentVersion } from './oml-utils.js';
5
+ import { OmlCandidates } from './oml-candidates.js';
6
+ /**
7
+ * OML Completion Provider - Grammar-aware completions using Langium LSP
8
+ * Extends Langium's DefaultCompletionProvider to customize completion behavior for OML
9
+ */
10
+ export class OmlCompletionProvider extends DefaultCompletionProvider {
11
+ constructor(services) {
12
+ super(services);
13
+ this.resolvedMemberCache = new Map();
14
+ this.indexManager = services.shared.workspace.IndexManager;
15
+ this.langiumDocuments = services.shared.workspace.LangiumDocuments;
16
+ this.astNodeLocator = services.workspace.AstNodeLocator;
17
+ this.candidates = new OmlCandidates(this.indexManager, this.langiumDocuments, this.astNodeLocator);
18
+ }
19
+ /**
20
+ * Get reference candidates - include both local definitions and imported IRIs
21
+ * Local definitions don't start with '<', imported ones do
22
+ */
23
+ getReferenceCandidates(refInfo, _context) {
24
+ const referenceType = this.astReflection.getReferenceType(refInfo);
25
+ const linkable = this.scopeProvider.getScope(refInfo).getAllElements();
26
+ return this.candidates.getReferenceCandidates(referenceType, linkable);
27
+ }
28
+ /**
29
+ * Customize completion text edit to replace the entire token
30
+ */
31
+ buildCompletionTextEdit(context, _label, newText) {
32
+ const start = context.textDocument.positionAt(context.tokenOffset);
33
+ const end = context.position;
34
+ return { newText, range: { start, end } };
35
+ }
36
+ /**
37
+ * Fill completion item with OML-specific details:
38
+ * - Show abbreviated IRIs (prefix:name) instead of full IRIs
39
+ * - Include namespace in detail
40
+ * - Auto-generate import statements for cross-file references
41
+ */
42
+ fillCompletionItem(context, item) {
43
+ if ('nodeDescription' in item) {
44
+ const desc = item.nodeDescription;
45
+ const prepared = this.getPreparedCompletionContext(context);
46
+ if (!prepared) {
47
+ return super.fillCompletionItem(context, item);
48
+ }
49
+ // Check if this is a member reference (could be a cross-file reference)
50
+ const member = this.resolveMember(desc);
51
+ if (member) {
52
+ const [namespace, name] = this.getIri(member);
53
+ const ontology = prepared.ontology;
54
+ // Find existing import for this namespace
55
+ const imp = prepared.importsByNamespace.get(namespace);
56
+ const importedOntology = this.getOntology(member);
57
+ const prefix = (imp && imp.prefix) ? imp.prefix : importedOntology.prefix;
58
+ // Build abbreviated IRI: prefix:name (or just name if same ontology)
59
+ const abbreviatedIri = (ontology !== importedOntology && prefix) ? `${prefix}:${name}` : name;
60
+ item = { ...item, detail: namespace, label: abbreviatedIri };
61
+ // Auto-generate import statement if not already imported and from different ontology
62
+ if (!imp && ontology !== importedOntology) {
63
+ const importStatement = this.getImportStatement(ontology, importedOntology);
64
+ if (importStatement) {
65
+ const start = context.textDocument.positionAt(prepared.importInsertOffset);
66
+ const addImportStatement = {
67
+ newText: '\n\n\t' + importStatement,
68
+ range: { start, end: start }
69
+ };
70
+ item = { ...item, additionalTextEdits: [addImportStatement] };
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return super.fillCompletionItem(context, item);
76
+ }
77
+ resolveMember(desc) {
78
+ if (desc.node && isMember(desc.node)) {
79
+ return desc.node;
80
+ }
81
+ const doc = this.langiumDocuments.getDocument(desc.documentUri);
82
+ const root = doc?.parseResult?.value;
83
+ if (!root) {
84
+ return undefined;
85
+ }
86
+ const key = `${desc.documentUri.toString()}@${getLangiumDocumentVersion(doc)}|${desc.path}`;
87
+ const cached = this.resolvedMemberCache.get(key);
88
+ if (cached !== undefined) {
89
+ return cached ?? undefined;
90
+ }
91
+ const resolved = this.astNodeLocator.getAstNode(root, desc.path);
92
+ const member = resolved && isMember(resolved) ? resolved : undefined;
93
+ this.resolvedMemberCache.set(key, member ?? null);
94
+ this.pruneCache(this.resolvedMemberCache, OmlCompletionProvider.MaxResolvedMemberCaches);
95
+ return member;
96
+ }
97
+ /**
98
+ * Extract IRI components (namespace and name) from a member
99
+ */
100
+ getIri(member) {
101
+ return [this.getOntology(member).namespace.replace(/^<|>$/g, ''), member.name];
102
+ }
103
+ /**
104
+ * Get the ontology containing an element
105
+ */
106
+ getOntology(element) {
107
+ while (element && !isOntology(element)) {
108
+ element = element.$container;
109
+ }
110
+ return element;
111
+ }
112
+ /**
113
+ * Generate appropriate import statement based on ontology types
114
+ */
115
+ getImportStatement(importing, imported) {
116
+ const namespace = imported.namespace.replace(/^<|>$/g, '');
117
+ const prefixPart = imported.prefix ? ` as ${imported.prefix}` : '';
118
+ if (importing.$type === imported.$type) {
119
+ return `extends <${namespace}>${prefixPart}`;
120
+ }
121
+ else if (isVocabulary(importing) && isDescription(imported)) {
122
+ return `uses <${namespace}>${prefixPart}`;
123
+ }
124
+ else if (isDescriptionBox(importing) && isVocabulary(imported)) {
125
+ return `uses <${namespace}>${prefixPart}`;
126
+ }
127
+ else if (isVocabularyBundle(importing) && isVocabulary(imported)) {
128
+ return `includes <${namespace}>${prefixPart}`;
129
+ }
130
+ return undefined;
131
+ }
132
+ getImportNamespace(ownedImport) {
133
+ const raw = ownedImport?.imported?.$refText ?? ownedImport?.imported ?? '';
134
+ return typeof raw === 'string' ? raw.replace(/^<|>$/g, '') : '';
135
+ }
136
+ getPreparedCompletionContext(context) {
137
+ const ontology = context.document.parseResult?.value;
138
+ if (!ontology || !isOntology(ontology)) {
139
+ return undefined;
140
+ }
141
+ const uri = context.document.uri?.toString() ?? context.textDocument.uri;
142
+ const version = context.textDocument.version ?? 0;
143
+ const key = `${uri}@${version}@${context.tokenOffset}`;
144
+ if (this.preparedCompletionContext?.key === key) {
145
+ return this.preparedCompletionContext;
146
+ }
147
+ const importsByNamespace = new Map();
148
+ for (const ownedImport of ontology.ownedImports ?? []) {
149
+ const ns = this.getImportNamespace(ownedImport);
150
+ if (!ns || importsByNamespace.has(ns)) {
151
+ continue;
152
+ }
153
+ importsByNamespace.set(ns, { prefix: ownedImport.prefix });
154
+ }
155
+ const lastImport = ontology.ownedImports?.at(-1);
156
+ let importInsertOffset = 0;
157
+ if (lastImport?.$cstNode) {
158
+ importInsertOffset = lastImport.$cstNode.offset + lastImport.$cstNode.length;
159
+ }
160
+ else {
161
+ const openBrace = context.textDocument.getText().indexOf('{');
162
+ importInsertOffset = openBrace >= 0 ? openBrace + 1 : 0;
163
+ }
164
+ this.preparedCompletionContext = {
165
+ key,
166
+ ontology,
167
+ importsByNamespace,
168
+ importInsertOffset
169
+ };
170
+ return this.preparedCompletionContext;
171
+ }
172
+ pruneCache(cache, maxSize) {
173
+ if (cache.size <= maxSize) {
174
+ return;
175
+ }
176
+ const overflow = cache.size - maxSize;
177
+ const keys = cache.keys();
178
+ for (let i = 0; i < overflow; i += 1) {
179
+ const next = keys.next();
180
+ if (next.done) {
181
+ break;
182
+ }
183
+ cache.delete(next.value);
184
+ }
185
+ }
186
+ }
187
+ OmlCompletionProvider.MaxResolvedMemberCaches = 5000;
188
+ //# sourceMappingURL=oml-completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oml-completion.js","sourceRoot":"","sources":["../../src/oml/oml-completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { DefaultValueConverter, GrammarAST } from 'langium';
2
+ import type { CstNode, ValueType } from 'langium';
3
+ /**
4
+ * Normalizes NAMESPACE tokens by stripping surrounding angle brackets when used via RuleCall.
5
+ * This ensures that namespace values stored in the AST are consistent and don't include the brackets.
6
+ */
7
+ export declare class OmlValueConverter extends DefaultValueConverter {
8
+ protected runConverter(rule: GrammarAST.AbstractRule, input: string, cstNode: CstNode): ValueType;
9
+ private stripIndentation;
10
+ }