@reqlan/language 1.6.2 → 1.8.1

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 (109) hide show
  1. package/README.md +18 -0
  2. package/out/generated/ast.d.ts +31 -4
  3. package/out/generated/ast.js +28 -7
  4. package/out/generated/ast.js.map +1 -1
  5. package/out/generated/grammar.js +2 -3318
  6. package/out/generated/grammar.js.map +1 -1
  7. package/out/generated/module.d.ts +2 -2
  8. package/out/generated/module.js +2 -2
  9. package/out/generated/module.js.map +1 -1
  10. package/out/index.d.ts +4 -0
  11. package/out/index.js +4 -0
  12. package/out/index.js.map +1 -1
  13. package/out/reqlan-async-parser.d.ts +37 -0
  14. package/out/reqlan-async-parser.js +117 -0
  15. package/out/reqlan-async-parser.js.map +1 -0
  16. package/out/reqlan-code-action-provider.d.ts +15 -12
  17. package/out/reqlan-code-action-provider.js +55 -20
  18. package/out/reqlan-code-action-provider.js.map +1 -1
  19. package/out/reqlan-comment-resolver.js +5 -0
  20. package/out/reqlan-comment-resolver.js.map +1 -1
  21. package/out/reqlan-completion-provider.d.ts +10 -0
  22. package/out/reqlan-completion-provider.js +64 -30
  23. package/out/reqlan-completion-provider.js.map +1 -1
  24. package/out/reqlan-definition-provider.d.ts +7 -0
  25. package/out/reqlan-definition-provider.js +86 -19
  26. package/out/reqlan-definition-provider.js.map +1 -1
  27. package/out/reqlan-document-factory.d.ts +16 -0
  28. package/out/reqlan-document-factory.js +50 -0
  29. package/out/reqlan-document-factory.js.map +1 -0
  30. package/out/reqlan-document-link-provider.d.ts +2 -1
  31. package/out/reqlan-document-link-provider.js +4 -0
  32. package/out/reqlan-document-link-provider.js.map +1 -1
  33. package/out/reqlan-file-link-resolver.d.ts +17 -4
  34. package/out/reqlan-file-link-resolver.js +89 -14
  35. package/out/reqlan-file-link-resolver.js.map +1 -1
  36. package/out/reqlan-import-edits.d.ts +3 -1
  37. package/out/reqlan-import-edits.js.map +1 -1
  38. package/out/reqlan-inbound-reference-inlay-label.d.ts +11 -0
  39. package/out/reqlan-inbound-reference-inlay-label.js +60 -35
  40. package/out/reqlan-inbound-reference-inlay-label.js.map +1 -1
  41. package/out/reqlan-inlay-hint-provider.d.ts +6 -0
  42. package/out/reqlan-inlay-hint-provider.js +34 -6
  43. package/out/reqlan-inlay-hint-provider.js.map +1 -1
  44. package/out/reqlan-linker.js +2 -2
  45. package/out/reqlan-linker.js.map +1 -1
  46. package/out/reqlan-markdown-links.js +4 -0
  47. package/out/reqlan-markdown-links.js.map +1 -1
  48. package/out/reqlan-module.d.ts +2 -1
  49. package/out/reqlan-module.js +12 -2
  50. package/out/reqlan-module.js.map +1 -1
  51. package/out/reqlan-parse-budget.d.ts +50 -0
  52. package/out/reqlan-parse-budget.js +89 -0
  53. package/out/reqlan-parse-budget.js.map +1 -0
  54. package/out/reqlan-parse-worker.d.ts +1 -0
  55. package/out/reqlan-parse-worker.js +34 -0
  56. package/out/reqlan-parse-worker.js.map +1 -0
  57. package/out/reqlan-path-resolve.d.ts +8 -0
  58. package/out/reqlan-path-resolve.js +18 -4
  59. package/out/reqlan-path-resolve.js.map +1 -1
  60. package/out/reqlan-reference-search-site.d.ts +11 -0
  61. package/out/reqlan-reference-search-site.js +11 -0
  62. package/out/reqlan-reference-search-site.js.map +1 -1
  63. package/out/reqlan-scope.d.ts +11 -0
  64. package/out/reqlan-scope.js +28 -1
  65. package/out/reqlan-scope.js.map +1 -1
  66. package/out/reqlan-semantic-token-provider.js +6 -1
  67. package/out/reqlan-semantic-token-provider.js.map +1 -1
  68. package/out/reqlan-token-builder.d.ts +3 -2
  69. package/out/reqlan-token-builder.js +150 -26
  70. package/out/reqlan-token-builder.js.map +1 -1
  71. package/out/reqlan-validator.d.ts +10 -1
  72. package/out/reqlan-validator.js +36 -2
  73. package/out/reqlan-validator.js.map +1 -1
  74. package/out/reqlan-wildcard-resolve.d.ts +45 -0
  75. package/out/reqlan-wildcard-resolve.js +203 -0
  76. package/out/reqlan-wildcard-resolve.js.map +1 -0
  77. package/out/reqlan-workspace-manager.d.ts +18 -0
  78. package/out/reqlan-workspace-manager.js +31 -0
  79. package/out/reqlan-workspace-manager.js.map +1 -0
  80. package/package.json +1 -1
  81. package/src/generated/ast.ts +41 -10
  82. package/src/generated/grammar.ts +2 -3318
  83. package/src/generated/module.ts +2 -2
  84. package/src/index.ts +4 -0
  85. package/src/reqlan-async-parser.ts +178 -0
  86. package/src/reqlan-code-action-provider.ts +67 -32
  87. package/src/reqlan-comment-resolver.ts +5 -0
  88. package/src/reqlan-completion-provider.ts +82 -28
  89. package/src/reqlan-definition-provider.ts +91 -18
  90. package/src/reqlan-document-factory.ts +75 -0
  91. package/src/reqlan-document-link-provider.ts +9 -1
  92. package/src/reqlan-file-link-resolver.ts +112 -17
  93. package/src/reqlan-import-edits.ts +3 -1
  94. package/src/reqlan-inbound-reference-inlay-label.ts +93 -38
  95. package/src/reqlan-inlay-hint-provider.ts +36 -6
  96. package/src/reqlan-linker.ts +4 -2
  97. package/src/reqlan-markdown-links.ts +4 -0
  98. package/src/reqlan-module.ts +15 -3
  99. package/src/reqlan-parse-budget.ts +155 -0
  100. package/src/reqlan-parse-worker.ts +35 -0
  101. package/src/reqlan-path-resolve.ts +28 -5
  102. package/src/reqlan-reference-search-site.ts +25 -0
  103. package/src/reqlan-scope.ts +34 -1
  104. package/src/reqlan-semantic-token-provider.ts +6 -0
  105. package/src/reqlan-token-builder.ts +174 -28
  106. package/src/reqlan-validator.ts +56 -1
  107. package/src/reqlan-wildcard-resolve.ts +281 -0
  108. package/src/reqlan-workspace-manager.ts +47 -0
  109. package/src/reqlan.langium +17 -8
@@ -1,10 +1,11 @@
1
- import { AstUtils, stream } from 'langium';
1
+ import { AstUtils, UriUtils, stream } from 'langium';
2
2
  import { DefaultCompletionProvider } from 'langium/lsp';
3
3
  import { reqlanStringDelimiter } from './reqlan-quoted-strings.js';
4
4
  import { CompletionItemKind, CompletionList as LspCompletionList } from 'vscode-languageserver';
5
5
  import { isAttribute, isBracketReference, isIdea, isIdeaSet, isModel, isOneLinerIdea, isQualifiedReference, isWikiLink } from './generated/ast.js';
6
6
  import { AttributeCatalogStore, ENDORSED_ATTRIBUTE_KEYS } from './reqlan-attribute-catalog.js';
7
7
  import { findContainingIdea, getAnonymousImportPathContext, getAttributeKeyContext, getAttributeValueContext, getCompletionSite, getReferencePrefixContext } from './reqlan-completion-context.js';
8
+ import { buildFromImportEdit, relativeRqImportPath } from './reqlan-import-edits.js';
8
9
  import { collectPathCompletionCandidates, comparePathCompletionCandidates, pathCompletionFilterText, pathCompletionSortText } from './reqlan-path-completion.js';
9
10
  import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
10
11
  import { referenceIdea } from './reqlan-references.js';
@@ -61,7 +62,7 @@ export class ReqlanCompletionProvider extends DefaultCompletionProvider {
61
62
  return [];
62
63
  }
63
64
  return model.elements
64
- .filter(element => {
65
+ .filter((element) => {
65
66
  if (refInfo.property === 'ideaset') {
66
67
  return isIdeaSet(element);
67
68
  }
@@ -128,47 +129,80 @@ export class ReqlanCompletionProvider extends DefaultCompletionProvider {
128
129
  if (!context) {
129
130
  return LspCompletionList.create([], true);
130
131
  }
131
- const names = new Set();
132
132
  const docs = this.documents.all.toArray();
133
- if (!docs.some(doc => doc.uri.toString() === document.uri.toString())) {
133
+ if (!docs.some(doc => UriUtils.equals(doc.uri, document.uri))) {
134
134
  docs.push(document);
135
135
  }
136
+ const candidates = this.collectReferenceCompletionCandidates(docs, context.prefix);
137
+ const center = findContainingIdea(document, params.position)?.name;
138
+ const distances = center
139
+ ? hopDistancesFromCenter(center, buildIdeaReferenceAdjacency(docs))
140
+ : new Map();
141
+ const items = candidates.map(candidate => this.toReferenceCompletionItem(document, candidate, context, distances)).sort((left, right) => {
142
+ const leftDistance = distances.get(String(left.label)) ?? UNREACHABLE_DISTANCE;
143
+ const rightDistance = distances.get(String(right.label)) ?? UNREACHABLE_DISTANCE;
144
+ return leftDistance - rightDistance
145
+ || String(left.label).localeCompare(String(right.label))
146
+ || String(left.detail ?? '').localeCompare(String(right.detail ?? ''));
147
+ });
148
+ return LspCompletionList.create(items, true);
149
+ }
150
+ /** Collect named ideas/ideasets across loaded documents for bracket/wikilink completion. */
151
+ collectReferenceCompletionCandidates(docs, prefix) {
152
+ const byKey = new Map();
136
153
  for (const doc of docs) {
137
154
  const model = doc.parseResult.value;
138
155
  if (!isModel(model)) {
139
156
  continue;
140
157
  }
141
158
  for (const element of model.elements) {
142
- if (isIdea(element) || isOneLinerIdea(element) || isIdeaSet(element)) {
143
- names.add(element.name);
159
+ const importable = isIdea(element) || isOneLinerIdea(element);
160
+ if (!importable && !isIdeaSet(element)) {
161
+ continue;
162
+ }
163
+ if (prefix && !element.name.startsWith(prefix)) {
164
+ continue;
165
+ }
166
+ const key = `${doc.uri.toString()}::${element.name}`;
167
+ if (!byKey.has(key)) {
168
+ byKey.set(key, { name: element.name, document: doc, importable });
144
169
  }
145
170
  }
146
171
  }
147
- const center = findContainingIdea(document, params.position)?.name;
148
- const distances = center
149
- ? hopDistancesFromCenter(center, buildIdeaReferenceAdjacency(docs))
150
- : new Map();
151
- const items = [...names].flatMap(name => {
152
- if (context.prefix && !name.startsWith(context.prefix)) {
153
- return [];
172
+ return [...byKey.values()];
173
+ }
174
+ /**
175
+ * Cross-file idea completions show their import path and may insert a from-import.
176
+ * rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_code_completion_rendering]
177
+ * rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_code_completion_auto_file_import]
178
+ */
179
+ toReferenceCompletionItem(document, candidate, context, distances) {
180
+ const sameFile = UriUtils.equals(candidate.document.uri, document.uri);
181
+ const distance = distances.get(candidate.name) ?? UNREACHABLE_DISTANCE;
182
+ const item = {
183
+ label: candidate.name,
184
+ kind: CompletionItemKind.Reference,
185
+ sortText: `${String(distance).padStart(4, '0')}_${candidate.name}`,
186
+ textEdit: {
187
+ newText: candidate.name,
188
+ range: {
189
+ start: context.replaceStart,
190
+ end: context.replaceEnd
191
+ }
154
192
  }
155
- const distance = distances.get(name) ?? UNREACHABLE_DISTANCE;
156
- return [{
157
- label: name,
158
- kind: CompletionItemKind.Reference,
159
- insertText: name,
160
- sortText: `${String(distance).padStart(4, '0')}_${name}`,
161
- range: {
162
- start: context.replaceStart,
163
- end: context.replaceEnd
164
- }
165
- }];
166
- }).sort((left, right) => {
167
- const leftDistance = distances.get(String(left.label)) ?? UNREACHABLE_DISTANCE;
168
- const rightDistance = distances.get(String(right.label)) ?? UNREACHABLE_DISTANCE;
169
- return leftDistance - rightDistance || String(left.label).localeCompare(String(right.label));
170
- });
171
- return LspCompletionList.create(items, true);
193
+ };
194
+ if (sameFile) {
195
+ return item;
196
+ }
197
+ const importPath = relativeRqImportPath(document.uri, candidate.document.uri);
198
+ item.detail = importPath;
199
+ if (candidate.importable) {
200
+ const importEdit = buildFromImportEdit(document, importPath, candidate.name);
201
+ if (importEdit) {
202
+ item.additionalTextEdits = [importEdit];
203
+ }
204
+ }
205
+ return item;
172
206
  }
173
207
  completeAnonymousImportPath(document, params) {
174
208
  const context = getAnonymousImportPathContext(document, params.position);
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-completion-provider.js","sourceRoot":"","sources":["../src/reqlan-completion-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-completion-provider.js","sourceRoot":"","sources":["../src/reqlan-completion-provider.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,13 @@ export declare class ReqlanDefinitionProvider extends DefaultDefinitionProvider
13
13
  constructor(services: ReqlanServices);
14
14
  private pathContext;
15
15
  getDefinition(document: LangiumDocument, params: DefinitionParams): MaybePromise<LocationLink[] | undefined>;
16
+ /**
17
+ * Returns true when the cursor sits on an idea/ideaset name token inside a bracket or
18
+ * wikilink reference (LocalReference or QualifiedReference) but NOT on the path/qualifier
19
+ * token that points to an import. This lets us skip all text-scan pre-checks and jump
20
+ * straight to the cached Langium ref resolution.
21
+ */
22
+ private isIdeaReferencePosition;
16
23
  protected findLinks(source: CstNode): GoToLink[];
17
24
  private linkForFileReference;
18
25
  private createNamespaceImportLink;
@@ -1,4 +1,4 @@
1
- import { AstUtils, CstUtils, GrammarUtils, URI } from 'langium';
1
+ import { CstUtils, GrammarUtils, URI } from 'langium';
2
2
  import { DefaultDefinitionProvider } from 'langium/lsp';
3
3
  import { LocationLink } from 'vscode-languageserver';
4
4
  import { findCommentReferencePartAt, resolveCommentDefinitionLinks } from './reqlan-comment-resolver.js';
@@ -6,8 +6,9 @@ import { resolveFileReferenceLink, resolveImportPathLink, resolveQualifiedRefere
6
6
  import { isNamespaceImportOnlyReference, resolveNamespaceImportReferenceLink } from './reqlan-namespace-import-links.js';
7
7
  import { findFileReferenceAtPosition } from './reqlan-reference-at-position.js';
8
8
  import { isMarkdownLinkLabelPosition } from './reqlan-markdown-links.js';
9
- import { isFileReference, isFileSymbolReference, isFromImport, isImport, isInvalidFromImport, isLocalReference, isQualifiedReference } from './generated/ast.js';
9
+ import { isFileReference, isFileSymbolReference, isFromImport, isImport, isInvalidFromImport, isLocalReference, isQualifiedReference, isWildcardReference } from './generated/ast.js';
10
10
  import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
11
+ import { findWildcardReferenceAtPosition } from './reqlan-wildcard-resolve.js';
11
12
  export class ReqlanDefinitionProvider extends DefaultDefinitionProvider {
12
13
  constructor(services) {
13
14
  super(services);
@@ -19,16 +20,29 @@ export class ReqlanDefinitionProvider extends DefaultDefinitionProvider {
19
20
  return pathResolveContextFromServices(this.services);
20
21
  }
21
22
  getDefinition(document, params) {
23
+ // Fast path: when the cursor is on an idea token inside a bracket/wiki reference the
24
+ // answer is just the cached Langium ref target — no text scans, no file-system calls.
25
+ // Same-file and cross-file idea refs both take this path, so neither is slower than the other.
26
+ if (this.isIdeaReferencePosition(document, params.position)) {
27
+ return super.getDefinition(document, params);
28
+ }
22
29
  if (isMarkdownLinkLabelPosition(document, params.position)) {
23
30
  return undefined;
24
31
  }
32
+ // Wildcard refs open the activity-bar search pane via extension command (document link / middleware).
33
+ const offset = document.textDocument.offsetAt(params.position);
34
+ if (findWildcardReferenceAtPosition(document, offset)) {
35
+ return undefined;
36
+ }
25
37
  const commentPart = findCommentReferencePartAt(document, params.position);
26
38
  if (commentPart?.property === 'idea') {
27
39
  return this.createCommentIdeaReferenceLinks(document, commentPart.reference);
28
40
  }
29
41
  const fileReference = findFileReferenceAtPosition(document, params.position, this.documents, this.fileSystem, this.pathContext());
30
42
  if (fileReference) {
31
- if (fileReference.resolution === 'folder' || fileReference.resolution === 'missing') {
43
+ if (fileReference.resolution === 'folder'
44
+ || fileReference.resolution === 'missing'
45
+ || fileReference.resolution === 'wildcard') {
32
46
  return undefined;
33
47
  }
34
48
  return [this.resolvedFileLinkToLocationLink(fileReference)];
@@ -47,6 +61,53 @@ export class ReqlanDefinitionProvider extends DefaultDefinitionProvider {
47
61
  }
48
62
  return super.getDefinition(document, params);
49
63
  }
64
+ /**
65
+ * Returns true when the cursor sits on an idea/ideaset name token inside a bracket or
66
+ * wikilink reference (LocalReference or QualifiedReference) but NOT on the path/qualifier
67
+ * token that points to an import. This lets us skip all text-scan pre-checks and jump
68
+ * straight to the cached Langium ref resolution.
69
+ */
70
+ isIdeaReferencePosition(document, position) {
71
+ const root = document.parseResult.value.$cstNode;
72
+ if (!root) {
73
+ return false;
74
+ }
75
+ const offset = document.textDocument.offsetAt(position);
76
+ let current = CstUtils.findLeafNodeAtOffset(root, offset);
77
+ while (current) {
78
+ const node = current.astNode;
79
+ if (isLocalReference(node)) {
80
+ // A local ref whose idea is already resolved → fast O(1) path.
81
+ // Unresolved ones still go through the normal flow so file-link checks can try.
82
+ return node.idea?.ref !== undefined;
83
+ }
84
+ if (isQualifiedReference(node)) {
85
+ const assignment = GrammarUtils.findAssignment(current);
86
+ if (!assignment) {
87
+ current = current.container;
88
+ continue;
89
+ }
90
+ // On the path/qualifier token → defer to import-path checks.
91
+ if (assignment.feature === 'path' || assignment.feature === 'qualifier') {
92
+ return false;
93
+ }
94
+ // On the idea or ideaset token → O(1) cached ref lookup.
95
+ if (assignment.feature === 'idea' || assignment.feature === 'ideaset') {
96
+ return node.idea?.ref !== undefined || node.ideaset?.ref !== undefined;
97
+ }
98
+ return false;
99
+ }
100
+ // FileReference / FileSymbolReference / Import / WildcardReference → not idea refs, stop.
101
+ if (isFileReference(node)
102
+ || isFileSymbolReference(node)
103
+ || isImport(node)
104
+ || isWildcardReference(node)) {
105
+ return false;
106
+ }
107
+ current = current.container;
108
+ }
109
+ return false;
110
+ }
50
111
  findLinks(source) {
51
112
  const fileLink = this.linkForFileReference(source) ?? this.linkForNamespaceImportReference(source);
52
113
  if (fileLink) {
@@ -163,24 +224,30 @@ export class ReqlanDefinitionProvider extends DefaultDefinitionProvider {
163
224
  return resolveCommentDefinitionLinks(reference, document, this.documents, this.pathContext());
164
225
  }
165
226
  findAnonymousImportPathLinkAtPosition(document, position) {
227
+ const root = document.parseResult.value.$cstNode;
228
+ if (!root) {
229
+ return undefined;
230
+ }
166
231
  const offset = document.textDocument.offsetAt(position);
167
- for (const node of AstUtils.streamAst(document.parseResult.value)) {
168
- if (!isQualifiedReference(node) || node.path?.ref) {
169
- continue;
170
- }
171
- const pathNode = node.path?.$refNode ?? GrammarUtils.findNodeForProperty(node.$cstNode, 'path');
172
- if (!pathNode || offset < pathNode.offset || offset >= pathNode.end) {
173
- continue;
174
- }
175
- const resolved = resolveQualifiedReferencePathLink(node, this.documents, this.pathContext());
176
- if (!resolved) {
177
- continue;
178
- }
179
- const targetDocument = this.documents.getDocument(URI.parse(resolved.targetUri.split('#')[0]));
180
- if (!targetDocument) {
181
- continue;
232
+ // Walk up from the leaf node O(depth) rather than O(all AST nodes).
233
+ let current = CstUtils.findLeafNodeAtOffset(root, offset);
234
+ while (current) {
235
+ const node = current.astNode;
236
+ if (isQualifiedReference(node) && !node.path?.ref) {
237
+ const pathNode = node.path?.$refNode ?? GrammarUtils.findNodeForProperty(node.$cstNode, 'path');
238
+ if (pathNode && offset >= pathNode.offset && offset < pathNode.end) {
239
+ const resolved = resolveQualifiedReferencePathLink(node, this.documents, this.pathContext());
240
+ if (!resolved) {
241
+ return undefined;
242
+ }
243
+ const targetDocument = this.documents.getDocument(URI.parse(resolved.targetUri.split('#')[0]));
244
+ if (!targetDocument) {
245
+ return undefined;
246
+ }
247
+ return resolvedFileLinkToGoToTarget(resolved, pathNode, targetDocument);
248
+ }
182
249
  }
183
- return resolvedFileLinkToGoToTarget(resolved, pathNode, targetDocument);
250
+ current = current.container;
184
251
  }
185
252
  return undefined;
186
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-definition-provider.js","sourceRoot":"","sources":["../src/reqlan-definition-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-definition-provider.js","sourceRoot":"","sources":["../src/reqlan-definition-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAiB,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACH,0BAA0B,EAC1B,6BAA6B,EAEhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,iCAAiC,EACjC,4BAA4B,EAC5B,0CAA0C,EAE7C,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACH,8BAA8B,EAC9B,mCAAmC,EACtC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EAMtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,MAAM,OAAO,wBAAyB,SAAQ,yBAAyB;IAMnE,YAAY,QAAwB;QAChC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEO,WAAW;QACf,OAAO,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEQ,aAAa,CAAC,QAAyB,EAAE,MAAwB;QACtE,qFAAqF;QACrF,sFAAsF;QACtF,+FAA+F;QAC/F,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,sGAAsG;QACtG,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,WAAW,GAAG,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,WAAW,EAAE,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,aAAa,GAAG,2BAA2B,CAC7C,QAAQ,EACR,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAAE,CACrB,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAChB,IACI,aAAa,CAAC,UAAU,KAAK,QAAQ;mBAClC,aAAa,CAAC,UAAU,KAAK,SAAS;mBACtC,aAAa,CAAC,UAAU,KAAK,UAAU,EAC5C,CAAC;gBACC,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,uBAAuB,GAAG,IAAI,CAAC,qCAAqC,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtG,IAAI,uBAAuB,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,QAAyB,EAAE,QAAkB;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,OAAO,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,+DAA+D;gBAC/D,gFAAgF;gBAChF,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC;YACxC,CAAC;YACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBACD,6DAA6D;gBAC7D,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;oBACtE,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,yDAAyD;gBACzD,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACpE,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC;gBAC3E,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,0FAA0F;YAC1F,IACI,eAAe,CAAC,IAAI,CAAC;mBAClB,qBAAqB,CAAC,IAAI,CAAC;mBAC3B,QAAQ,CAAC,IAAI,CAAC;mBACd,mBAAmB,CAAC,IAAI,CAAC,EAC9B,CAAC;gBACC,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEkB,SAAS,CAAC,MAAe;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;QACnG,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1F,CAAC;IAEO,oBAAoB,CAAC,MAAe;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACpG,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,yBAAyB,CAAC,MAAe,EAAE,SAA8C;QAC7F,MAAM,QAAQ,GAAG,mCAAmC,CAChD,SAAS,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAAE,CACrB,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,0CAA0C,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAEO,+BAA+B,CAAC,MAAe;QACnD,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QACpC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC5E,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEO,iBAAiB,CAAC,MAAe;QACrC,IAAI,OAAO,GAAwB,MAAM,CAAC;QAC1C,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;YAClC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,oBAAoB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACzF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;gBACvC,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,QAAQ,GAAG,iCAAiC,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAClG,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/F,IAAI,cAAc,EAAE,CAAC;wBACjB,OAAO,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,0BAA0B,CAAC,MAAe,EAAE,SAA6B;QAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1G,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC;IAC1E,CAAC;IAEO,sBAAsB,CAAC,IAAc;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAEO,sBAAsB,CAAC,MAAe,EAAE,UAAkB;QAC9D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC;IAEO,cAAc,CAAC,MAAe,EAAE,SAA8C;QAClF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACjF,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,0CAA0C,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAEO,+BAA+B,CACnC,QAAyB,EACzB,SAAmC;QAEnC,OAAO,6BAA6B,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAClG,CAAC;IAEO,qCAAqC,CAAC,QAAyB,EAAE,QAAkB;QACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,sEAAsE;QACtE,IAAI,OAAO,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAChG,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACjE,MAAM,QAAQ,GAAG,iCAAiC,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACZ,OAAO,SAAS,CAAC;oBACrB,CAAC;oBACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/F,IAAI,CAAC,cAAc,EAAE,CAAC;wBAClB,OAAO,SAAS,CAAC;oBACrB,CAAC;oBACD,OAAO,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC5E,CAAC;YACL,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,4BAA4B,CAAC,QAAyB,EAAE,QAAkB;QAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,OAAO,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;YACpI,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,+BAA+B,CAAC,QAAyB,EAAE,QAAkB;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,OAAO,GAAwB,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;YACjG,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,IAAc;QACjC,OAAO,YAAY,CAAC,MAAM,CACtB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,EACpC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EACpD,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACpB,CAAC;IACN,CAAC;IAEO,8BAA8B,CAAC,IAAsB;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;YAChC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;SACjC,CAAC;QACF,OAAO,YAAY,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,EACd,WAAW,EACX,WAAW,EACX,IAAI,CAAC,WAAW,CACnB,CAAC;IACN,CAAC;CACJ;AAED,SAAS,kBAAkB,CAAC,IAAa,EAAE,SAAkB;IACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtI,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Document factory that never lets a sync lex/parse throw escape into workspace init.
3
+ * Async path uses [ReqlanAsyncParser]: sync fast path by default, killable worker when escalated.
4
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
5
+ */
6
+ import { DefaultLangiumDocumentFactory, type AstNode, type LangiumDocument, type LangiumSharedCoreServices, type ParseResult, type ParserOptions, URI } from 'langium';
7
+ import type { CancellationToken } from 'vscode-languageserver';
8
+ export declare class ReqlanLangiumDocumentFactory extends DefaultLangiumDocumentFactory {
9
+ /** URIs that previously hit the parse budget — keep using a killable worker. */
10
+ private readonly workerEscalateUris;
11
+ constructor(services: LangiumSharedCoreServices);
12
+ protected parse<T extends AstNode>(uri: URI, text: string, options?: ParserOptions): ParseResult<T>;
13
+ protected parseAsync<T extends AstNode>(uri: URI, text: string, cancellationToken?: CancellationToken): Promise<ParseResult<T>>;
14
+ /** Test helper: expose incomplete marker after async parse. */
15
+ static isIncompleteDocument(document: LangiumDocument): boolean;
16
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Document factory that never lets a sync lex/parse throw escape into workspace init.
3
+ * Async path uses [ReqlanAsyncParser]: sync fast path by default, killable worker when escalated.
4
+ * rq:["../../../reqlan rq/language/parser_lexer.rq".parse_budget_timeout]
5
+ */
6
+ import { DefaultLangiumDocumentFactory } from 'langium';
7
+ import { CancellationToken as CancelToken } from 'vscode-languageserver';
8
+ import { ReqlanAsyncParser } from './reqlan-async-parser.js';
9
+ import { createIncompleteParseResult } from './reqlan-parse-budget.js';
10
+ export class ReqlanLangiumDocumentFactory extends DefaultLangiumDocumentFactory {
11
+ constructor(services) {
12
+ super(services);
13
+ /** URIs that previously hit the parse budget — keep using a killable worker. */
14
+ this.workerEscalateUris = new Set();
15
+ }
16
+ parse(uri, text, options) {
17
+ const services = this.serviceRegistry.getServices(uri);
18
+ try {
19
+ return services.parser.LangiumParser.parse(text, options);
20
+ }
21
+ catch (error) {
22
+ return createIncompleteParseResult(services.parser.LangiumParser, {
23
+ reason: 'failure',
24
+ cause: error instanceof Error ? error.message : String(error)
25
+ });
26
+ }
27
+ }
28
+ async parseAsync(uri, text, cancellationToken = CancelToken.None) {
29
+ const services = this.serviceRegistry.getServices(uri);
30
+ const asyncParser = services.parser.AsyncParser;
31
+ const uriKey = uri.toString();
32
+ const forceWorker = this.workerEscalateUris.has(uriKey);
33
+ const result = asyncParser instanceof ReqlanAsyncParser
34
+ ? await asyncParser.parse(text, cancellationToken, { forceWorker })
35
+ : await asyncParser.parse(text, cancellationToken);
36
+ const reqlanResult = result;
37
+ if (reqlanResult.reqlanIncomplete?.reason === 'timeout') {
38
+ this.workerEscalateUris.add(uriKey);
39
+ }
40
+ else if (!reqlanResult.reqlanIncomplete) {
41
+ this.workerEscalateUris.delete(uriKey);
42
+ }
43
+ return result;
44
+ }
45
+ /** Test helper: expose incomplete marker after async parse. */
46
+ static isIncompleteDocument(document) {
47
+ return Boolean(document.parseResult.reqlanIncomplete);
48
+ }
49
+ }
50
+ //# sourceMappingURL=reqlan-document-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-document-factory.js","sourceRoot":"","sources":["../src/reqlan-document-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACH,6BAA6B,EAOhC,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACH,2BAA2B,EAE9B,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,4BAA6B,SAAQ,6BAA6B;IAI3E,YAAY,QAAmC;QAC3C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAJpB,gFAAgF;QAC/D,uBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAIxD,CAAC;IAEkB,KAAK,CACpB,GAAQ,EACR,IAAY,EACZ,OAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC;YACD,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,2BAA2B,CAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;gBACjE,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEkB,KAAK,CAAC,UAAU,CAC/B,GAAQ,EACR,IAAY,EACZ,oBAAuC,WAAW,CAAC,IAAI;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,WAAW,YAAY,iBAAiB;YACnD,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAI,IAAI,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC;YACtE,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAI,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAE1D,MAAM,YAAY,GAAG,MAA8B,CAAC;QACpD,IAAI,YAAY,CAAC,gBAAgB,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,oBAAoB,CAAC,QAAyB;QACjD,OAAO,OAAO,CAAE,QAAQ,CAAC,WAAiC,CAAC,gBAAgB,CAAC,CAAC;IACjF,CAAC;CACJ"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Clickable document links for file references and import paths.
2
+ * Clickable document links for idea references, file references, and import paths.
3
+ * Same-file and cross-file idea refs both get links so the editor underline is consistent.
3
4
  */
4
5
  import type { LangiumDocument } from 'langium';
5
6
  import type { DocumentLinkProvider } from 'langium/lsp';
@@ -1,6 +1,7 @@
1
1
  import { DocumentLink as LspDocumentLink } from 'vscode-languageserver';
2
2
  import { collectFileLinks, resolvedFileLinkTargetUri } from './reqlan-file-link-resolver.js';
3
3
  import { folderReferenceCommandTarget } from './reqlan-reference-at-position.js';
4
+ import { wildcardReferenceCommandTarget } from './reqlan-wildcard-resolve.js';
4
5
  import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
5
6
  export class ReqlanDocumentLinkProvider {
6
7
  constructor(services) {
@@ -13,6 +14,9 @@ export class ReqlanDocumentLinkProvider {
13
14
  if (link.resolution === 'folder') {
14
15
  return [LspDocumentLink.create(link.sourceRange, folderReferenceCommandTarget(link.targetUri))];
15
16
  }
17
+ if (link.resolution === 'wildcard' && link.wildcardArgs) {
18
+ return [LspDocumentLink.create(link.sourceRange, wildcardReferenceCommandTarget(link.wildcardArgs))];
19
+ }
16
20
  const target = resolvedFileLinkTargetUri(link);
17
21
  if (!target) {
18
22
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-document-link-provider.js","sourceRoot":"","sources":["../src/reqlan-document-link-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,OAAO,0BAA0B;IAMnC,YAAY,QAAwB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAyB,EAAE,OAA2B;QACnE,OAAO,gBAAgB,CACnB,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,eAAe,CAAC,MAAM,CAC1B,IAAI,CAAC,WAAW,EAChB,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/C,CAAC,CAAC;YACP,CAAC;YACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"reqlan-document-link-provider.js","sourceRoot":"","sources":["../src/reqlan-document-link-provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,OAAO,0BAA0B;IAMnC,YAAY,QAAwB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAyB,EAAE,OAA2B;QACnE,OAAO,gBAAgB,CACnB,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,eAAe,CAAC,MAAM,CAC1B,IAAI,CAAC,WAAW,EAChB,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/C,CAAC,CAAC;YACP,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtD,OAAO,CAAC,eAAe,CAAC,MAAM,CAC1B,IAAI,CAAC,WAAW,EAChB,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,CACpD,CAAC,CAAC;YACP,CAAC;YACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,13 +1,15 @@
1
1
  /**
2
- * Resolves file references and import paths to target URIs and editor ranges.
2
+ * Resolves file references, idea references, and import paths to target URIs and editor ranges.
3
+ * Document links use these so same-file and cross-file refs share the same underline/click affordance.
3
4
  */
4
- import type { CstNode, FileSystemProvider, LangiumDocument, LangiumDocuments, URI } from 'langium';
5
+ import type { AstNode, CstNode, FileSystemProvider, LangiumDocument, LangiumDocuments, Reference, URI } from 'langium';
5
6
  import type { Range } from 'vscode-languageserver';
6
7
  import type { EmbeddedFileReference } from './reqlan-embedded-file-references.js';
7
8
  import type { PathResolveContext } from './reqlan-path-resolve.js';
8
9
  import { type ParsedFileReference } from './reqlan-file-references.js';
9
- import { type FileReference, type FileSymbolReference, type Import, type MarkdownLink, type QualifiedReference } from './generated/ast.js';
10
- export type ReferenceResolution = 'file' | 'folder' | 'missing';
10
+ import { type FileReference, type FileSymbolReference, type Import, type LocalReference, type MarkdownLink, type QualifiedReference, type WildcardReference } from './generated/ast.js';
11
+ import { type WildcardMatch, type WildcardReferenceArgs } from './reqlan-wildcard-resolve.js';
12
+ export type ReferenceResolution = 'file' | 'folder' | 'missing' | 'wildcard';
11
13
  export type FileLinkTargetIssue = 'empty' | 'parse-error';
12
14
  export interface ResolvedFileLink {
13
15
  sourceRange: Range;
@@ -16,6 +18,9 @@ export interface ResolvedFileLink {
16
18
  resolution?: ReferenceResolution;
17
19
  folderFiles?: string[];
18
20
  targetIssue?: FileLinkTargetIssue;
21
+ /** Present when resolution is `wildcard`. */
22
+ wildcardArgs?: WildcardReferenceArgs;
23
+ wildcardMatches?: WildcardMatch[];
19
24
  }
20
25
  export declare function classifyReferenceUri(targetUri: URI, documents: LangiumDocuments, fileSystem: FileSystemProvider): ReferenceResolution;
21
26
  export declare function listFolderFileNames(fileSystem: FileSystemProvider, folderUri: URI): string[];
@@ -30,6 +35,14 @@ export declare function fileLinkTargetIssueMessage(issue: FileLinkTargetIssue):
30
35
  export declare function bindingNameSourceRange(bindingNode: CstNode, bindingName: string): Range;
31
36
  export declare function resolveImportedFileLink(document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, filePath: string, sourceRange: Range, context?: PathResolveContext): ResolvedFileLink | undefined;
32
37
  export declare function filePathRangeInStringNode(pathNode: CstNode, parsed: ParsedFileReference): Range;
38
+ /**
39
+ * Document link for a resolved Langium cross-reference (same-file or imported idea/ideaset).
40
+ * Source range is the reference name; target is the declaration name (or whole node).
41
+ */
42
+ export declare function resolveLinkedAstReferenceLink(reference: Reference<AstNode> | undefined): ResolvedFileLink | undefined;
43
+ /** Idea/ideaset name links inside bracket and qualified references (not namespace-file aliases). */
44
+ export declare function resolveIdeaReferenceLinks(reference: LocalReference | QualifiedReference): ResolvedFileLink[];
45
+ export declare function resolveWildcardReferenceLink(reference: WildcardReference, documents: LangiumDocuments, context?: PathResolveContext): ResolvedFileLink | undefined;
33
46
  export declare function collectFileLinks(document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, context?: PathResolveContext): ResolvedFileLink[];
34
47
  export declare function resolvedFileLinkTargetUri(link: ResolvedFileLink): string | undefined;
35
48
  export declare function resolvedFileLinkToGoToTarget(link: ResolvedFileLink, sourceNode: CstNode, targetDocument: LangiumDocument): {