@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.
- package/README.md +18 -0
- package/out/generated/ast.d.ts +31 -4
- package/out/generated/ast.js +28 -7
- package/out/generated/ast.js.map +1 -1
- package/out/generated/grammar.js +2 -3318
- package/out/generated/grammar.js.map +1 -1
- package/out/generated/module.d.ts +2 -2
- package/out/generated/module.js +2 -2
- package/out/generated/module.js.map +1 -1
- package/out/index.d.ts +4 -0
- package/out/index.js +4 -0
- package/out/index.js.map +1 -1
- package/out/reqlan-async-parser.d.ts +37 -0
- package/out/reqlan-async-parser.js +117 -0
- package/out/reqlan-async-parser.js.map +1 -0
- package/out/reqlan-code-action-provider.d.ts +15 -12
- package/out/reqlan-code-action-provider.js +55 -20
- package/out/reqlan-code-action-provider.js.map +1 -1
- package/out/reqlan-comment-resolver.js +5 -0
- package/out/reqlan-comment-resolver.js.map +1 -1
- package/out/reqlan-completion-provider.d.ts +10 -0
- package/out/reqlan-completion-provider.js +64 -30
- package/out/reqlan-completion-provider.js.map +1 -1
- package/out/reqlan-definition-provider.d.ts +7 -0
- package/out/reqlan-definition-provider.js +86 -19
- package/out/reqlan-definition-provider.js.map +1 -1
- package/out/reqlan-document-factory.d.ts +16 -0
- package/out/reqlan-document-factory.js +50 -0
- package/out/reqlan-document-factory.js.map +1 -0
- package/out/reqlan-document-link-provider.d.ts +2 -1
- package/out/reqlan-document-link-provider.js +4 -0
- package/out/reqlan-document-link-provider.js.map +1 -1
- package/out/reqlan-file-link-resolver.d.ts +17 -4
- package/out/reqlan-file-link-resolver.js +89 -14
- package/out/reqlan-file-link-resolver.js.map +1 -1
- package/out/reqlan-import-edits.d.ts +3 -1
- package/out/reqlan-import-edits.js.map +1 -1
- package/out/reqlan-inbound-reference-inlay-label.d.ts +11 -0
- package/out/reqlan-inbound-reference-inlay-label.js +60 -35
- package/out/reqlan-inbound-reference-inlay-label.js.map +1 -1
- package/out/reqlan-inlay-hint-provider.d.ts +6 -0
- package/out/reqlan-inlay-hint-provider.js +34 -6
- package/out/reqlan-inlay-hint-provider.js.map +1 -1
- package/out/reqlan-linker.js +2 -2
- package/out/reqlan-linker.js.map +1 -1
- package/out/reqlan-markdown-links.js +4 -0
- package/out/reqlan-markdown-links.js.map +1 -1
- package/out/reqlan-module.d.ts +2 -1
- package/out/reqlan-module.js +12 -2
- package/out/reqlan-module.js.map +1 -1
- package/out/reqlan-parse-budget.d.ts +50 -0
- package/out/reqlan-parse-budget.js +89 -0
- package/out/reqlan-parse-budget.js.map +1 -0
- package/out/reqlan-parse-worker.d.ts +1 -0
- package/out/reqlan-parse-worker.js +34 -0
- package/out/reqlan-parse-worker.js.map +1 -0
- package/out/reqlan-path-resolve.d.ts +8 -0
- package/out/reqlan-path-resolve.js +18 -4
- package/out/reqlan-path-resolve.js.map +1 -1
- package/out/reqlan-reference-search-site.d.ts +11 -0
- package/out/reqlan-reference-search-site.js +11 -0
- package/out/reqlan-reference-search-site.js.map +1 -1
- package/out/reqlan-scope.d.ts +11 -0
- package/out/reqlan-scope.js +28 -1
- package/out/reqlan-scope.js.map +1 -1
- package/out/reqlan-semantic-token-provider.js +6 -1
- package/out/reqlan-semantic-token-provider.js.map +1 -1
- package/out/reqlan-token-builder.d.ts +3 -2
- package/out/reqlan-token-builder.js +150 -26
- package/out/reqlan-token-builder.js.map +1 -1
- package/out/reqlan-validator.d.ts +10 -1
- package/out/reqlan-validator.js +36 -2
- package/out/reqlan-validator.js.map +1 -1
- package/out/reqlan-wildcard-resolve.d.ts +45 -0
- package/out/reqlan-wildcard-resolve.js +203 -0
- package/out/reqlan-wildcard-resolve.js.map +1 -0
- package/out/reqlan-workspace-manager.d.ts +18 -0
- package/out/reqlan-workspace-manager.js +31 -0
- package/out/reqlan-workspace-manager.js.map +1 -0
- package/package.json +1 -1
- package/src/generated/ast.ts +41 -10
- package/src/generated/grammar.ts +2 -3318
- package/src/generated/module.ts +2 -2
- package/src/index.ts +4 -0
- package/src/reqlan-async-parser.ts +178 -0
- package/src/reqlan-code-action-provider.ts +67 -32
- package/src/reqlan-comment-resolver.ts +5 -0
- package/src/reqlan-completion-provider.ts +82 -28
- package/src/reqlan-definition-provider.ts +91 -18
- package/src/reqlan-document-factory.ts +75 -0
- package/src/reqlan-document-link-provider.ts +9 -1
- package/src/reqlan-file-link-resolver.ts +112 -17
- package/src/reqlan-import-edits.ts +3 -1
- package/src/reqlan-inbound-reference-inlay-label.ts +93 -38
- package/src/reqlan-inlay-hint-provider.ts +36 -6
- package/src/reqlan-linker.ts +4 -2
- package/src/reqlan-markdown-links.ts +4 -0
- package/src/reqlan-module.ts +15 -3
- package/src/reqlan-parse-budget.ts +155 -0
- package/src/reqlan-parse-worker.ts +35 -0
- package/src/reqlan-path-resolve.ts +28 -5
- package/src/reqlan-reference-search-site.ts +25 -0
- package/src/reqlan-scope.ts +34 -1
- package/src/reqlan-semantic-token-provider.ts +6 -0
- package/src/reqlan-token-builder.ts +174 -28
- package/src/reqlan-validator.ts +56 -1
- package/src/reqlan-wildcard-resolve.ts +281 -0
- package/src/reqlan-workspace-manager.ts +47 -0
- package/src/reqlan.langium +17 -8
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Custom token builder so line comments do not match
|
|
3
|
-
*
|
|
2
|
+
* Custom token builder so line/block comments do not match inside string literals,
|
|
3
|
+
* empty slash-star-star-slash glob segments do not steal path text, and `@` only
|
|
4
|
+
* introduces attributes at the start of a line.
|
|
4
5
|
*/
|
|
5
6
|
import type { Grammar } from 'langium';
|
|
6
7
|
import { DefaultTokenBuilder, type TokenBuilderOptions } from 'langium';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DefaultTokenBuilder } from 'langium';
|
|
2
2
|
const SL_COMMENT_PATTERN = /\/\/[^\n\r]*/y;
|
|
3
|
+
const ML_COMMENT_PATTERN = /\/\*[\s\S]*?\*\//y;
|
|
3
4
|
function isInsideNakedQuote(text, offset) {
|
|
4
5
|
let inDouble = false;
|
|
5
6
|
let inSingle = false;
|
|
@@ -46,6 +47,27 @@ const slCommentPattern = (text, offset) => {
|
|
|
46
47
|
SL_COMMENT_PATTERN.lastIndex = offset;
|
|
47
48
|
return SL_COMMENT_PATTERN.exec(text);
|
|
48
49
|
};
|
|
50
|
+
// Block comments must not open inside quotes. Reject the empty four-character
|
|
51
|
+
// slash-star-star-slash form so recursive globs like ../mod/**/*.rq stay path text
|
|
52
|
+
// in prose and naked quotes (reference STRING paths already consume the whole literal).
|
|
53
|
+
const mlCommentPattern = (text, offset) => {
|
|
54
|
+
if (text.charCodeAt(offset) !== 47 || text.charCodeAt(offset + 1) !== 42) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
if (isInsideNakedQuote(text, offset)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
ML_COMMENT_PATTERN.lastIndex = offset;
|
|
61
|
+
const match = ML_COMMENT_PATTERN.exec(text);
|
|
62
|
+
if (!match) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
// /* immediately followed by */ — recursive glob segment, not a comment.
|
|
66
|
+
if (match[0].length === 4) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return match;
|
|
70
|
+
};
|
|
49
71
|
function makeMatch(text, offset, length) {
|
|
50
72
|
const image = text.slice(offset, offset + length);
|
|
51
73
|
const match = [image];
|
|
@@ -98,7 +120,13 @@ const markdownLink = (text, offset) => {
|
|
|
98
120
|
}
|
|
99
121
|
return null;
|
|
100
122
|
};
|
|
101
|
-
const
|
|
123
|
+
const blockOpenerLine = /^[ \t]*(?:[A-Za-z_.][\w.-]*|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')\s*$/;
|
|
124
|
+
function lineStartOffset(text, offset) {
|
|
125
|
+
return text.lastIndexOf('\n', offset - 1) + 1;
|
|
126
|
+
}
|
|
127
|
+
function textBeforeOnLine(text, offset) {
|
|
128
|
+
return text.slice(lineStartOffset(text, offset), offset).replace(/[ \t]+$/, '');
|
|
129
|
+
}
|
|
102
130
|
function isEscapedAt(text, offset) {
|
|
103
131
|
let backslashes = 0;
|
|
104
132
|
for (let index = offset - 1; index >= 0 && text[index] === '\\'; index--) {
|
|
@@ -113,8 +141,10 @@ function isStructuralOpenBraceAtDepth(text, offset, depth) {
|
|
|
113
141
|
if (isEscapedAt(text, offset)) {
|
|
114
142
|
return false;
|
|
115
143
|
}
|
|
116
|
-
const before = text
|
|
117
|
-
|
|
144
|
+
const before = textBeforeOnLine(text, offset);
|
|
145
|
+
// Top-level named blocks (`name {`) and nameless recoverable blocks (`{` alone).
|
|
146
|
+
// Leading indentation is allowed — top-level ideas are often indented in fixtures.
|
|
147
|
+
if (depth === 0 && (blockOpenerLine.test(before) || (isLineStartAt(text, offset) && before.trim().length === 0))) {
|
|
118
148
|
return true;
|
|
119
149
|
}
|
|
120
150
|
if (/@[A-Za-z_][\w-]*(?::)?\s*$/.test(before)) {
|
|
@@ -124,8 +154,7 @@ function isStructuralOpenBraceAtDepth(text, offset, depth) {
|
|
|
124
154
|
return true;
|
|
125
155
|
}
|
|
126
156
|
if (depth >= 1 && /[A-Za-z_][\w-]*\s*$/.test(before) && !isLineStartAt(text, offset)) {
|
|
127
|
-
|
|
128
|
-
return /^[ \t]*(?:\r?\n|$)/.test(after);
|
|
157
|
+
return restOfLineIsBlank(text, offset);
|
|
129
158
|
}
|
|
130
159
|
return false;
|
|
131
160
|
}
|
|
@@ -142,12 +171,10 @@ function isStructuralCloseBraceAt(text, offset) {
|
|
|
142
171
|
if (isEscapedAt(text, offset)) {
|
|
143
172
|
return false;
|
|
144
173
|
}
|
|
145
|
-
|
|
146
|
-
const restOfLine = after.split(/\r?\n/, 1)[0] ?? '';
|
|
147
|
-
if (restOfLine.trim().length !== 0) {
|
|
174
|
+
if (!restOfLineIsBlank(text, offset)) {
|
|
148
175
|
return false;
|
|
149
176
|
}
|
|
150
|
-
const { structuralDepth, proseDepth } =
|
|
177
|
+
const { structuralDepth, proseDepth } = braceStateBefore(text, offset);
|
|
151
178
|
if (structuralDepth <= 0) {
|
|
152
179
|
return false;
|
|
153
180
|
}
|
|
@@ -156,14 +183,64 @@ function isStructuralCloseBraceAt(text, offset) {
|
|
|
156
183
|
}
|
|
157
184
|
return proseDepth === 0;
|
|
158
185
|
}
|
|
159
|
-
|
|
186
|
+
let braceScanCache;
|
|
187
|
+
function fenceEndAfter(text, openOffset) {
|
|
188
|
+
// Match CODE_FENCE: ```…``` including optional body; return index after closing fence.
|
|
189
|
+
if (text.charCodeAt(openOffset) !== 96
|
|
190
|
+
|| text.charCodeAt(openOffset + 1) !== 96
|
|
191
|
+
|| text.charCodeAt(openOffset + 2) !== 96) {
|
|
192
|
+
return openOffset;
|
|
193
|
+
}
|
|
194
|
+
const afterOpen = openOffset + 3;
|
|
195
|
+
const firstNewline = text.indexOf('\n', afterOpen);
|
|
196
|
+
if (firstNewline < 0) {
|
|
197
|
+
const sameLineClose = text.indexOf('```', afterOpen);
|
|
198
|
+
return sameLineClose < 0 ? text.length : sameLineClose + 3;
|
|
199
|
+
}
|
|
200
|
+
const close = text.indexOf('```', firstNewline + 1);
|
|
201
|
+
return close < 0 ? text.length : close + 3;
|
|
202
|
+
}
|
|
203
|
+
function restOfLineIsBlank(text, offset) {
|
|
204
|
+
for (let index = offset + 1; index < text.length; index++) {
|
|
205
|
+
const char = text[index];
|
|
206
|
+
if (char === '\n' || char === '\r') {
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
if (char !== ' ' && char !== '\t') {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
function buildBraceScanCache(text) {
|
|
160
216
|
let structuralDepth = 0;
|
|
161
217
|
const proseDepthByStructural = [0];
|
|
218
|
+
const offsets = [0];
|
|
219
|
+
const structuralDepthAt = [0];
|
|
220
|
+
const proseDepthAtOffsets = [0];
|
|
162
221
|
const proseDepthAt = () => proseDepthByStructural[structuralDepth] ?? 0;
|
|
163
222
|
const setProseDepth = (value) => {
|
|
164
223
|
proseDepthByStructural[structuralDepth] = value;
|
|
165
224
|
};
|
|
166
|
-
|
|
225
|
+
const recordStateFrom = (offset) => {
|
|
226
|
+
const last = offsets.length - 1;
|
|
227
|
+
if (offsets[last] === offset) {
|
|
228
|
+
structuralDepthAt[last] = structuralDepth;
|
|
229
|
+
proseDepthAtOffsets[last] = proseDepthAt();
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
offsets.push(offset);
|
|
233
|
+
structuralDepthAt.push(structuralDepth);
|
|
234
|
+
proseDepthAtOffsets.push(proseDepthAt());
|
|
235
|
+
};
|
|
236
|
+
for (let index = 0; index < text.length; index++) {
|
|
237
|
+
// Fenced snippets are opaque to the parser; braces inside must not change depth.
|
|
238
|
+
if (text.charCodeAt(index) === 96
|
|
239
|
+
&& text.charCodeAt(index + 1) === 96
|
|
240
|
+
&& text.charCodeAt(index + 2) === 96) {
|
|
241
|
+
index = fenceEndAfter(text, index) - 1;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
167
244
|
const char = text[index];
|
|
168
245
|
if (char === '{') {
|
|
169
246
|
if (isEscapedAt(text, index)) {
|
|
@@ -176,6 +253,7 @@ function scanBraceState(text, offset) {
|
|
|
176
253
|
else {
|
|
177
254
|
setProseDepth(proseDepthAt() + 1);
|
|
178
255
|
}
|
|
256
|
+
recordStateFrom(index + 1);
|
|
179
257
|
continue;
|
|
180
258
|
}
|
|
181
259
|
if (char !== '}') {
|
|
@@ -184,23 +262,24 @@ function scanBraceState(text, offset) {
|
|
|
184
262
|
if (isEscapedAt(text, index)) {
|
|
185
263
|
continue;
|
|
186
264
|
}
|
|
187
|
-
const
|
|
188
|
-
const restOfLine = after.split(/\r?\n/, 1)[0] ?? '';
|
|
189
|
-
const atEndOfLine = restOfLine.trim().length === 0;
|
|
265
|
+
const atEndOfLine = restOfLineIsBlank(text, index);
|
|
190
266
|
if (!atEndOfLine) {
|
|
191
267
|
if (proseDepthAt() > 0) {
|
|
192
268
|
setProseDepth(proseDepthAt() - 1);
|
|
269
|
+
recordStateFrom(index + 1);
|
|
193
270
|
}
|
|
194
271
|
continue;
|
|
195
272
|
}
|
|
196
273
|
if (structuralDepth <= 0) {
|
|
197
274
|
if (proseDepthAt() > 0) {
|
|
198
275
|
setProseDepth(proseDepthAt() - 1);
|
|
276
|
+
recordStateFrom(index + 1);
|
|
199
277
|
}
|
|
200
278
|
continue;
|
|
201
279
|
}
|
|
202
280
|
if (isLineStartAt(text, index)) {
|
|
203
281
|
structuralDepth--;
|
|
282
|
+
recordStateFrom(index + 1);
|
|
204
283
|
continue;
|
|
205
284
|
}
|
|
206
285
|
if (proseDepthAt() > 0) {
|
|
@@ -209,17 +288,38 @@ function scanBraceState(text, offset) {
|
|
|
209
288
|
else {
|
|
210
289
|
structuralDepth--;
|
|
211
290
|
}
|
|
291
|
+
recordStateFrom(index + 1);
|
|
292
|
+
}
|
|
293
|
+
return { text, offsets, structuralDepth: structuralDepthAt, proseDepth: proseDepthAtOffsets };
|
|
294
|
+
}
|
|
295
|
+
function braceStateAtOffset(cache, offset) {
|
|
296
|
+
const { offsets, structuralDepth, proseDepth } = cache;
|
|
297
|
+
let low = 0;
|
|
298
|
+
let high = offsets.length - 1;
|
|
299
|
+
while (low <= high) {
|
|
300
|
+
const mid = (low + high) >> 1;
|
|
301
|
+
if (offsets[mid] <= offset) {
|
|
302
|
+
low = mid + 1;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
high = mid - 1;
|
|
306
|
+
}
|
|
212
307
|
}
|
|
308
|
+
const index = Math.max(0, high);
|
|
213
309
|
return {
|
|
214
|
-
structuralDepth,
|
|
215
|
-
proseDepth:
|
|
310
|
+
structuralDepth: structuralDepth[index] ?? 0,
|
|
311
|
+
proseDepth: proseDepth[index] ?? 0
|
|
216
312
|
};
|
|
217
313
|
}
|
|
218
|
-
function
|
|
219
|
-
|
|
314
|
+
function braceStateBefore(text, offset) {
|
|
315
|
+
if (braceScanCache?.text !== text) {
|
|
316
|
+
braceScanCache = buildBraceScanCache(text);
|
|
317
|
+
}
|
|
318
|
+
const boundedOffset = Math.max(0, Math.min(offset, text.length));
|
|
319
|
+
return braceStateAtOffset(braceScanCache, boundedOffset);
|
|
220
320
|
}
|
|
221
321
|
function isStructuralOpenBraceAt(text, offset) {
|
|
222
|
-
return isStructuralOpenBraceAtDepth(text, offset,
|
|
322
|
+
return isStructuralOpenBraceAtDepth(text, offset, braceStateBefore(text, offset).structuralDepth);
|
|
223
323
|
}
|
|
224
324
|
const structuralOpenBrace = (text, offset) => {
|
|
225
325
|
if (text[offset] !== '{') {
|
|
@@ -246,7 +346,7 @@ const proseCloseBrace = (text, offset) => {
|
|
|
246
346
|
return isStructuralCloseBraceAt(text, offset) ? null : makeMatch(text, offset, 1);
|
|
247
347
|
};
|
|
248
348
|
function braceDepthBefore(text, offset) {
|
|
249
|
-
return
|
|
349
|
+
return braceStateBefore(text, offset).structuralDepth;
|
|
250
350
|
}
|
|
251
351
|
function isLineStartAt(text, offset) {
|
|
252
352
|
let previousIndex = offset - 1;
|
|
@@ -257,15 +357,14 @@ function isLineStartAt(text, offset) {
|
|
|
257
357
|
}
|
|
258
358
|
function isStringLiteralContext(text, offset) {
|
|
259
359
|
const depth = braceDepthBefore(text, offset);
|
|
260
|
-
const trimmed = text
|
|
360
|
+
const trimmed = textBeforeOnLine(text, offset);
|
|
261
361
|
if (depth === 0 && /\b(?:from|import)\s*$/.test(trimmed)) {
|
|
262
362
|
return true;
|
|
263
363
|
}
|
|
264
364
|
if (/\[\s*$/.test(trimmed)) {
|
|
265
365
|
return true;
|
|
266
366
|
}
|
|
267
|
-
|
|
268
|
-
if (trimmed.slice(lineStart).length === 0 && depth === 0) {
|
|
367
|
+
if (trimmed.length === 0 && depth === 0) {
|
|
269
368
|
return true;
|
|
270
369
|
}
|
|
271
370
|
return false;
|
|
@@ -299,7 +398,7 @@ function topLevelImportKeyword(text, offset) {
|
|
|
299
398
|
if (isLineStartAt(text, offset)) {
|
|
300
399
|
return makeMatch(text, offset, 6);
|
|
301
400
|
}
|
|
302
|
-
const before = text
|
|
401
|
+
const before = textBeforeOnLine(text, offset);
|
|
303
402
|
if (/(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')$/.test(before)) {
|
|
304
403
|
return makeMatch(text, offset, 6);
|
|
305
404
|
}
|
|
@@ -317,8 +416,15 @@ function topLevelAsKeyword(text, offset) {
|
|
|
317
416
|
if (braceDepthBefore(text, offset) !== 0) {
|
|
318
417
|
return null;
|
|
319
418
|
}
|
|
320
|
-
|
|
321
|
-
|
|
419
|
+
// `as` is reserved only on from/import lines — not after arbitrary top-level identifiers
|
|
420
|
+
// (e.g. one-liner prose "such as this").
|
|
421
|
+
const linePrefix = text.slice(lineStartOffset(text, offset), offset);
|
|
422
|
+
if (!/^[ \t]*(?:from|import)\b/.test(linePrefix)) {
|
|
423
|
+
return null;
|
|
424
|
+
}
|
|
425
|
+
const before = textBeforeOnLine(text, offset);
|
|
426
|
+
// After import path (optionally qualified) or after a from-import specifier name.
|
|
427
|
+
if (/(?:(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')(?:\.[A-Za-z_][\w-]*)*|[A-Za-z_][\w-]*)$/.test(before)) {
|
|
322
428
|
return makeMatch(text, offset, 2);
|
|
323
429
|
}
|
|
324
430
|
return null;
|
|
@@ -421,6 +527,16 @@ export class ReqlanTokenBuilder extends DefaultTokenBuilder {
|
|
|
421
527
|
};
|
|
422
528
|
other.LINE_BREAKS = false;
|
|
423
529
|
}
|
|
530
|
+
// ID is a prefix of WILDCARD_NAME (e.g. import_ vs import_*) — require longer-alt check.
|
|
531
|
+
const idToken = tokens.find(entry => entry.name === 'ID');
|
|
532
|
+
const wildcardToken = tokens.find(entry => entry.name === 'WILDCARD_NAME');
|
|
533
|
+
if (idToken && wildcardToken) {
|
|
534
|
+
const existing = idToken.LONGER_ALT;
|
|
535
|
+
const alts = Array.isArray(existing) ? existing : existing ? [existing] : [];
|
|
536
|
+
if (!alts.includes(wildcardToken)) {
|
|
537
|
+
idToken.LONGER_ALT = [...alts, wildcardToken];
|
|
538
|
+
}
|
|
539
|
+
}
|
|
424
540
|
return tokens;
|
|
425
541
|
}
|
|
426
542
|
buildTerminalToken(terminal) {
|
|
@@ -432,6 +548,14 @@ export class ReqlanTokenBuilder extends DefaultTokenBuilder {
|
|
|
432
548
|
PATTERN: slCommentPattern
|
|
433
549
|
};
|
|
434
550
|
}
|
|
551
|
+
if (terminal.name === 'ML_COMMENT') {
|
|
552
|
+
return {
|
|
553
|
+
name: 'ML_COMMENT',
|
|
554
|
+
GROUP: 'hidden',
|
|
555
|
+
LINE_BREAKS: true,
|
|
556
|
+
PATTERN: mlCommentPattern
|
|
557
|
+
};
|
|
558
|
+
}
|
|
435
559
|
if (terminal.name === 'MARKDOWN_LINK') {
|
|
436
560
|
return {
|
|
437
561
|
name: 'MARKDOWN_LINK',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-token-builder.js","sourceRoot":"","sources":["../src/reqlan-token-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reqlan-token-builder.js","sourceRoot":"","sources":["../src/reqlan-token-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ValidationAcceptor } from 'langium';
|
|
2
|
-
import { type Model } from './generated/ast.js';
|
|
2
|
+
import { type AnonymousBlock, type Model } from './generated/ast.js';
|
|
3
3
|
import type { ReqlanServices } from './reqlan-module.js';
|
|
4
4
|
/**
|
|
5
5
|
* Registers validation hooks for the requirement graph AST.
|
|
6
6
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
7
7
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
8
8
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
9
|
+
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
9
10
|
*/
|
|
10
11
|
export declare function registerValidationChecks(services: ReqlanServices): void;
|
|
11
12
|
/**
|
|
@@ -13,11 +14,18 @@ export declare function registerValidationChecks(services: ReqlanServices): void
|
|
|
13
14
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
14
15
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
15
16
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
17
|
+
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
16
18
|
*/
|
|
17
19
|
export declare class ReqlanValidator {
|
|
18
20
|
private readonly services;
|
|
19
21
|
constructor(services: ReqlanServices);
|
|
20
22
|
checkModelDuplicates(model: Model, accept: ValidationAcceptor): void;
|
|
23
|
+
/**
|
|
24
|
+
* Top-level nameless `{ ... }` blocks parse so the rest of the file stays alive,
|
|
25
|
+
* but they need a name to be addressable ideas.
|
|
26
|
+
* List-item anonymous blocks remain valid (see lists).
|
|
27
|
+
*/
|
|
28
|
+
checkNamelessIdeaBlock(block: AnonymousBlock, accept: ValidationAcceptor): void;
|
|
21
29
|
/**
|
|
22
30
|
* Local diagnostics for recoverable but invalid import shapes.
|
|
23
31
|
* Keeps the rest of the file parseable — see import_error_recovery.
|
|
@@ -35,4 +43,5 @@ export declare class ReqlanValidator {
|
|
|
35
43
|
*/
|
|
36
44
|
checkImportTargets(model: Model, accept: ValidationAcceptor): void;
|
|
37
45
|
checkFileReferenceTargets(model: Model, accept: ValidationAcceptor): void;
|
|
46
|
+
checkWildcardReferences(model: Model, accept: ValidationAcceptor): void;
|
|
38
47
|
}
|
package/out/reqlan-validator.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { AstUtils } from 'langium';
|
|
2
|
-
import { isFromImport, isIdea, isInvalidFromImport, isOneLinerIdea } from './generated/ast.js';
|
|
2
|
+
import { isFromImport, isIdea, isInvalidFromImport, isModel, isOneLinerIdea, isWildcardReference } from './generated/ast.js';
|
|
3
3
|
import { collectFileLinks, fileLinkTargetIssueMessage } from './reqlan-file-link-resolver.js';
|
|
4
4
|
import { importBindings, importPathOf, isWellFormedFromImport } from './reqlan-import-bindings.js';
|
|
5
5
|
import { isResolvableImportPath } from './reqlan-imports.js';
|
|
6
6
|
import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
|
|
7
7
|
import { unquoteReqlanString } from './reqlan-quoted-strings.js';
|
|
8
|
+
import { resolveWildcardReferenceMatches, parseWildcardPathPattern, wildcardReferenceLabel } from './reqlan-wildcard-resolve.js';
|
|
8
9
|
/**
|
|
9
10
|
* Registers validation hooks for the requirement graph AST.
|
|
10
11
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
11
12
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
12
13
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
14
|
+
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
13
15
|
*/
|
|
14
16
|
export function registerValidationChecks(services) {
|
|
15
17
|
const registry = services.validation.ValidationRegistry;
|
|
16
18
|
const validator = services.validation.ReqlanValidator;
|
|
17
19
|
const checks = {
|
|
18
|
-
Model: validator.checkModelDuplicates
|
|
20
|
+
Model: validator.checkModelDuplicates,
|
|
21
|
+
AnonymousBlock: validator.checkNamelessIdeaBlock
|
|
19
22
|
};
|
|
20
23
|
registry.register(checks, validator);
|
|
21
24
|
}
|
|
@@ -24,6 +27,7 @@ export function registerValidationChecks(services) {
|
|
|
24
27
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
25
28
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
26
29
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
30
|
+
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
27
31
|
*/
|
|
28
32
|
export class ReqlanValidator {
|
|
29
33
|
constructor(services) {
|
|
@@ -35,6 +39,18 @@ export class ReqlanValidator {
|
|
|
35
39
|
this.checkImportSyntax(model, accept);
|
|
36
40
|
this.checkImportTargets(model, accept);
|
|
37
41
|
this.checkFileReferenceTargets(model, accept);
|
|
42
|
+
this.checkWildcardReferences(model, accept);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Top-level nameless `{ ... }` blocks parse so the rest of the file stays alive,
|
|
46
|
+
* but they need a name to be addressable ideas.
|
|
47
|
+
* List-item anonymous blocks remain valid (see lists).
|
|
48
|
+
*/
|
|
49
|
+
checkNamelessIdeaBlock(block, accept) {
|
|
50
|
+
if (!isModel(block.$container)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
accept('warning', 'Nameless idea block: add a name before `{` (for example `my_idea { ... }`). The block was kept so the rest of the file still parses.', { node: block });
|
|
38
54
|
}
|
|
39
55
|
/**
|
|
40
56
|
* Local diagnostics for recoverable but invalid import shapes.
|
|
@@ -142,6 +158,24 @@ export class ReqlanValidator {
|
|
|
142
158
|
});
|
|
143
159
|
}
|
|
144
160
|
}
|
|
161
|
+
checkWildcardReferences(model, accept) {
|
|
162
|
+
const { shared } = this.services;
|
|
163
|
+
const context = pathResolveContextFromServices(this.services);
|
|
164
|
+
for (const node of AstUtils.streamAst(model)) {
|
|
165
|
+
if (!isWildcardReference(node)) {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const path = parseWildcardPathPattern(node.pathPattern);
|
|
169
|
+
if (!path.trim()) {
|
|
170
|
+
accept('warning', 'Wildcard path pattern is empty.', { node, property: 'pathPattern' });
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const matches = resolveWildcardReferenceMatches(node, shared.workspace.LangiumDocuments, context);
|
|
174
|
+
if (matches.length === 0) {
|
|
175
|
+
accept('warning', `No ideas match wildcard reference [${wildcardReferenceLabel(path, node.ideaPattern)}].`, { node });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
145
179
|
}
|
|
146
180
|
function isRemoteImportPath(path) {
|
|
147
181
|
return /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-validator.js","sourceRoot":"","sources":["../src/reqlan-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EACH,YAAY,EACZ,MAAM,EACN,mBAAmB,EACnB,cAAc,
|
|
1
|
+
{"version":3,"file":"reqlan-validator.js","sourceRoot":"","sources":["../src/reqlan-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve qualified path + idea-pattern wildcard references.
|
|
3
|
+
* rq:["../../../reqlan rq/language/imports.rq".wildcard_references]
|
|
4
|
+
*/
|
|
5
|
+
import type { LangiumDocument, LangiumDocuments } from 'langium';
|
|
6
|
+
import type { Range } from 'vscode-languageserver';
|
|
7
|
+
import { type WildcardReference } from './generated/ast.js';
|
|
8
|
+
import { type PathResolveContext } from './reqlan-path-resolve.js';
|
|
9
|
+
export declare const REQLAN_OPEN_WILDCARD_COMMAND = "reqlan.openWildcardReference";
|
|
10
|
+
export declare const REQLAN_WILDCARD_REFERENCE_AT_REQUEST = "reqlan/wildcardReferenceAt";
|
|
11
|
+
export interface WildcardMatch {
|
|
12
|
+
fileUri: string;
|
|
13
|
+
ideaName: string;
|
|
14
|
+
range?: Range;
|
|
15
|
+
}
|
|
16
|
+
/** Lightweight catalog entry for index-time expansion without full Langium docs. */
|
|
17
|
+
export interface WildcardIdeaCandidate {
|
|
18
|
+
fileUri: string;
|
|
19
|
+
/** Absolute or workspace path used for path-glob matching. */
|
|
20
|
+
filePath: string;
|
|
21
|
+
ideaName: string;
|
|
22
|
+
range?: Range;
|
|
23
|
+
}
|
|
24
|
+
export interface WildcardReferenceArgs {
|
|
25
|
+
pathPattern: string;
|
|
26
|
+
ideaPattern: string;
|
|
27
|
+
fromUri: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function pathHasGlobMeta(path: string): boolean;
|
|
30
|
+
export declare function ideaHasGlobMeta(name: string): boolean;
|
|
31
|
+
/** Convert a shell-style glob to an anchored RegExp. */
|
|
32
|
+
export declare function globToRegExp(glob: string, mode?: 'path' | 'name'): RegExp;
|
|
33
|
+
export declare function wildcardReferenceCommandTarget(args: WildcardReferenceArgs): string;
|
|
34
|
+
export declare function wildcardReferenceLabel(pathPattern: string, ideaPattern: string): string;
|
|
35
|
+
export declare function parseWildcardPathPattern(pathPatternQuoted: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the path glob against the document directory / import-root alias,
|
|
38
|
+
* returning a regex that matches absolute file paths (posix-style).
|
|
39
|
+
*/
|
|
40
|
+
export declare function pathPatternToAbsoluteRegex(pathPatternQuoted: string, document: LangiumDocument, context?: PathResolveContext): RegExp;
|
|
41
|
+
export declare function collectIdeaCandidatesFromDocuments(documents: Iterable<LangiumDocument>): WildcardIdeaCandidate[];
|
|
42
|
+
export declare function matchWildcardAgainstCatalog(pathPatternQuoted: string, ideaPattern: string, document: LangiumDocument, candidates: readonly WildcardIdeaCandidate[], context?: PathResolveContext): WildcardMatch[];
|
|
43
|
+
export declare function resolveWildcardReferenceMatches(reference: WildcardReference, documents: LangiumDocuments | Iterable<LangiumDocument>, context?: PathResolveContext): WildcardMatch[];
|
|
44
|
+
export declare function wildcardArgsFromReference(reference: WildcardReference): WildcardReferenceArgs;
|
|
45
|
+
export declare function findWildcardReferenceAtPosition(document: LangiumDocument, offset: number): WildcardReference | undefined;
|