@reqlan/language 1.9.6 → 1.10.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 +42 -0
- package/README.template.md +2 -0
- package/out/file-path-rewrite.d.ts +1 -1
- package/out/generated/ast.d.ts +2 -2
- package/out/generated/ast.js +1 -1
- package/out/generated/ast.js.map +1 -1
- package/out/generated/grammar.js +1 -1
- package/out/generated/grammar.js.map +1 -1
- package/out/index.d.ts +3 -1
- package/out/index.js +3 -1
- package/out/index.js.map +1 -1
- package/out/reqlan-code-action-provider.d.ts +1 -0
- package/out/reqlan-code-action-provider.js +12 -21
- package/out/reqlan-code-action-provider.js.map +1 -1
- package/out/reqlan-comment-diagnostics.d.ts +11 -0
- package/out/reqlan-comment-diagnostics.js +81 -11
- package/out/reqlan-comment-diagnostics.js.map +1 -1
- package/out/reqlan-comment-resolver.d.ts +1 -1
- package/out/reqlan-completion-provider.d.ts +2 -2
- package/out/reqlan-definition-provider.js +1 -1
- package/out/reqlan-definition-provider.js.map +1 -1
- package/out/reqlan-document-builder.d.ts +9 -0
- package/out/reqlan-document-builder.js +26 -0
- package/out/reqlan-document-builder.js.map +1 -0
- package/out/reqlan-document-link-provider.d.ts +5 -1
- package/out/reqlan-document-link-provider.js +9 -1
- package/out/reqlan-document-link-provider.js.map +1 -1
- package/out/reqlan-embedded-file-references.d.ts +3 -0
- package/out/reqlan-embedded-file-references.js +47 -5
- package/out/reqlan-embedded-file-references.js.map +1 -1
- package/out/reqlan-file-link-resolver.d.ts +8 -0
- package/out/reqlan-file-link-resolver.js +46 -11
- package/out/reqlan-file-link-resolver.js.map +1 -1
- package/out/reqlan-file-references.d.ts +1 -0
- package/out/reqlan-file-references.js +24 -16
- package/out/reqlan-file-references.js.map +1 -1
- package/out/reqlan-idea-move-imports.d.ts +24 -0
- package/out/reqlan-idea-move-imports.js +309 -0
- package/out/reqlan-idea-move-imports.js.map +1 -0
- package/out/reqlan-idea-refactor.d.ts +12 -4
- package/out/reqlan-idea-refactor.js +85 -13
- package/out/reqlan-idea-refactor.js.map +1 -1
- package/out/reqlan-ignore-error.d.ts +2 -1
- package/out/reqlan-ignore-error.js +4 -17
- package/out/reqlan-ignore-error.js.map +1 -1
- package/out/reqlan-import-edits.d.ts +1 -0
- package/out/reqlan-import-edits.js +8 -0
- package/out/reqlan-import-edits.js.map +1 -1
- package/out/reqlan-imports.d.ts +3 -1
- package/out/reqlan-imports.js +2 -5
- package/out/reqlan-imports.js.map +1 -1
- package/out/reqlan-module.js +4 -1
- package/out/reqlan-module.js.map +1 -1
- package/out/reqlan-reference-at-position.d.ts +3 -0
- package/out/reqlan-reference-at-position.js +8 -2
- package/out/reqlan-reference-at-position.js.map +1 -1
- package/out/reqlan-scope.d.ts +14 -0
- package/out/reqlan-scope.js +58 -15
- package/out/reqlan-scope.js.map +1 -1
- package/out/reqlan-validator.d.ts +12 -1
- package/out/reqlan-validator.js +38 -4
- package/out/reqlan-validator.js.map +1 -1
- package/package.json +3 -2
- package/src/file-path-rewrite.ts +1 -1
- package/src/generated/ast.ts +2 -2
- package/src/generated/grammar.ts +1 -1
- package/src/index.ts +9 -0
- package/src/reqlan-code-action-provider.ts +12 -24
- package/src/reqlan-comment-diagnostics.ts +108 -11
- package/src/reqlan-comment-resolver.ts +1 -1
- package/src/reqlan-completion-provider.ts +2 -2
- package/src/reqlan-definition-provider.ts +1 -1
- package/src/reqlan-document-builder.ts +35 -0
- package/src/reqlan-document-link-provider.ts +23 -3
- package/src/reqlan-embedded-file-references.ts +54 -5
- package/src/reqlan-file-link-resolver.ts +56 -11
- package/src/reqlan-file-references.ts +26 -16
- package/src/reqlan-idea-move-imports.ts +398 -0
- package/src/reqlan-idea-refactor.ts +116 -14
- package/src/reqlan-ignore-error.ts +4 -18
- package/src/reqlan-import-edits.ts +9 -0
- package/src/reqlan-imports.ts +4 -5
- package/src/reqlan-module.ts +4 -1
- package/src/reqlan-reference-at-position.ts +16 -2
- package/src/reqlan-scope.ts +73 -16
- package/src/reqlan-validator.ts +48 -4
- package/src/reqlan.langium +4 -1
package/out/reqlan-imports.js
CHANGED
|
@@ -2,7 +2,7 @@ import { resolveDocumentPathUri } from './reqlan-path-resolve.js';
|
|
|
2
2
|
export const IMPLICIT_IMPORT_EXTENSION = '.rq';
|
|
3
3
|
/**
|
|
4
4
|
* Import paths written without an extension mean `.rq`; the literal path stays a fallback so
|
|
5
|
-
* extensionless files on disk keep resolving.
|
|
5
|
+
* extensionless files and folders on disk keep resolving.
|
|
6
6
|
*/
|
|
7
7
|
export function importPathCandidates(path) {
|
|
8
8
|
const implicit = importPathWithImplicitExtension(path);
|
|
@@ -47,10 +47,7 @@ function isImportTarget(uri, documents, fileSystem) {
|
|
|
47
47
|
if (documents.getDocument(uri)) {
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
return !fileSystem.statSync(uri).isDirectory;
|
|
50
|
+
return fileSystem?.existsSync(uri) === true;
|
|
54
51
|
}
|
|
55
52
|
function withFileSystem(context, fileSystem) {
|
|
56
53
|
if (!fileSystem && !context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-imports.js","sourceRoot":"","sources":["../src/reqlan-imports.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reqlan-imports.js","sourceRoot":"","sources":["../src/reqlan-imports.ts"],"names":[],"mappings":"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"}
|
package/out/reqlan-module.js
CHANGED
|
@@ -21,6 +21,7 @@ import { ReqlanValidator, registerValidationChecks } from './reqlan-validator.js
|
|
|
21
21
|
import { ReqlanWorkspaceManager } from './reqlan-workspace-manager.js';
|
|
22
22
|
import { ReqlanAsyncParser } from './reqlan-async-parser.js';
|
|
23
23
|
import { ReqlanLangiumDocumentFactory } from './reqlan-document-factory.js';
|
|
24
|
+
import { ReqlanDocumentBuilder } from './reqlan-document-builder.js';
|
|
24
25
|
/**
|
|
25
26
|
* Dependency injection module that overrides Langium default services and contributes the
|
|
26
27
|
* declared custom services. The Langium defaults can be partially specified to override only
|
|
@@ -29,7 +30,8 @@ import { ReqlanLangiumDocumentFactory } from './reqlan-document-factory.js';
|
|
|
29
30
|
export const ReqlanSharedModule = {
|
|
30
31
|
workspace: {
|
|
31
32
|
WorkspaceManager: services => new ReqlanWorkspaceManager(services),
|
|
32
|
-
LangiumDocumentFactory: services => new ReqlanLangiumDocumentFactory(services)
|
|
33
|
+
LangiumDocumentFactory: services => new ReqlanLangiumDocumentFactory(services),
|
|
34
|
+
DocumentBuilder: services => new ReqlanDocumentBuilder(services)
|
|
33
35
|
}
|
|
34
36
|
};
|
|
35
37
|
export const ReqlanModule = {
|
|
@@ -79,6 +81,7 @@ export function createReqlanServices(context) {
|
|
|
79
81
|
const Reqlan = inject(createDefaultModule({ shared }), ReqlanGeneratedModule, ReqlanModule);
|
|
80
82
|
shared.ServiceRegistry.register(Reqlan);
|
|
81
83
|
registerValidationChecks(Reqlan);
|
|
84
|
+
// rq:["../../../reqlan rq/language/syntax.rq".comment_reference_ignore]
|
|
82
85
|
registerRqIgnoreErrorFiltering(shared);
|
|
83
86
|
if (!context.connection) {
|
|
84
87
|
// We don't run inside a language server
|
package/out/reqlan-module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAyC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAkH,MAAM,aAAa,CAAC;AAC7L,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Locates file path references at a cursor position and resolves them to files, folders, or missing paths.
|
|
3
|
+
* Missing targets are omitted here so go-to-definition can still try import-path resolution
|
|
4
|
+
* (for example `from "./target"` → `./target.rq`). Diagnostics still underline those refs.
|
|
5
|
+
* rq:["../../../reqlan rq/extension/language-support/language-server-errors.rq".file_reference_errors]
|
|
3
6
|
*/
|
|
4
7
|
import type { FileSystemProvider, LangiumDocument, LangiumDocuments } from 'langium';
|
|
5
8
|
import type { Position, LocationLink } from 'vscode-languageserver';
|
|
@@ -17,14 +17,20 @@ export function findFileReferenceAtPosition(document, position, documents, fileS
|
|
|
17
17
|
}
|
|
18
18
|
const embeddedReference = findEmbeddedFileReferenceAt(document, position);
|
|
19
19
|
if (embeddedReference) {
|
|
20
|
-
return resolveEmbeddedFileReferenceLink(embeddedReference, document, documents, fileSystem, pathContext);
|
|
20
|
+
return navigableFileLink(resolveEmbeddedFileReferenceLink(embeddedReference, document, documents, fileSystem, pathContext));
|
|
21
21
|
}
|
|
22
22
|
const fileReference = findFileReferenceNodeAtPosition(document, position);
|
|
23
23
|
if (fileReference) {
|
|
24
|
-
return resolveFileReferenceLink(fileReference.node, documents, fileSystem, pathContext);
|
|
24
|
+
return navigableFileLink(resolveFileReferenceLink(fileReference.node, documents, fileSystem, pathContext));
|
|
25
25
|
}
|
|
26
26
|
return undefined;
|
|
27
27
|
}
|
|
28
|
+
function navigableFileLink(link) {
|
|
29
|
+
if (!link || link.resolution === 'missing') {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
return link;
|
|
33
|
+
}
|
|
28
34
|
function resolvePathReference(document, path, sourceRange, documents, fileSystem, context) {
|
|
29
35
|
const targetUri = resolveFileUri(path, document, context);
|
|
30
36
|
const resolution = classifyReferenceUri(targetUri, documents, fileSystem);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-reference-at-position.js","sourceRoot":"","sources":["../src/reqlan-reference-at-position.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reqlan-reference-at-position.js","sourceRoot":"","sources":["../src/reqlan-reference-at-position.ts"],"names":[],"mappings":"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"}
|
package/out/reqlan-scope.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Publishes idea and ideaset declarations for file-local and cross-file reference resolution.
|
|
3
|
+
* Local declarations are collected first; imports are consulted only when a name is not local.
|
|
4
|
+
* rq:["../../../reqlan rq/language/syntax.rq".same_file_reference]
|
|
5
|
+
* rq:["../../../reqlan rq/language/syntax.rq".reference_resolution_order]
|
|
3
6
|
*/
|
|
4
7
|
import type { AstNodeDescription, LangiumDocument, ReferenceInfo } from 'langium';
|
|
5
8
|
import { DefaultScopeComputation, DefaultScopeProvider, type Scope } from 'langium';
|
|
@@ -24,6 +27,17 @@ export declare class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
24
27
|
getScope(context: ReferenceInfo): Scope;
|
|
25
28
|
private scopeForFileIdeas;
|
|
26
29
|
private buildFileIdeasScope;
|
|
30
|
+
/**
|
|
31
|
+
* Every named top-level declaration in the file, regardless of source order.
|
|
32
|
+
* Bare `[name]` and ideaset members resolve against this set first.
|
|
33
|
+
*/
|
|
34
|
+
private localDeclarationDescriptions;
|
|
35
|
+
/**
|
|
36
|
+
* Imported bindings only. Built lazily so a fully-local file never walks import `.ref`s
|
|
37
|
+
* while resolving same-file names.
|
|
38
|
+
*/
|
|
39
|
+
private importedIdeaScope;
|
|
40
|
+
private importedIdeaDescriptions;
|
|
27
41
|
private scopeForIdeasetMembers;
|
|
28
42
|
private scopeForIdeasets;
|
|
29
43
|
private scopeForReferenceQualifiers;
|
package/out/reqlan-scope.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AstUtils, DefaultScopeComputation, DefaultScopeProvider, StreamScope, stream } from 'langium';
|
|
2
|
-
import { isFromImport, isFromImportSpecifier,
|
|
2
|
+
import { isFromImport, isFromImportSpecifier, isIdeaDeclaration, isIdeaSet, isInvalidFromImport, isLocalReference, isModel, isNamespaceImport, isQualifiedImport, isQualifiedReference } from './generated/ast.js';
|
|
3
3
|
import { findFromImportSpecifierByBinding, importPathOf, specifierBindingName } from './reqlan-import-bindings.js';
|
|
4
4
|
import { findImportedDocument } from './reqlan-imports.js';
|
|
5
5
|
import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
|
|
@@ -10,7 +10,7 @@ export class ReqlanScopeComputation extends DefaultScopeComputation {
|
|
|
10
10
|
const model = document.parseResult.value;
|
|
11
11
|
if (isModel(model)) {
|
|
12
12
|
for (const element of model.elements) {
|
|
13
|
-
if (
|
|
13
|
+
if (isIdeaDeclaration(element)) {
|
|
14
14
|
this.addExportedSymbol(element, exports, document);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -109,20 +109,42 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
109
109
|
return scope;
|
|
110
110
|
}
|
|
111
111
|
buildFileIdeasScope(document) {
|
|
112
|
+
const locals = this.localDeclarationDescriptions(document);
|
|
113
|
+
return new StreamScope(stream(locals), new LazyScope(() => this.importedIdeaScope(document)), { concatOuterScope: false });
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Every named top-level declaration in the file, regardless of source order.
|
|
117
|
+
* Bare `[name]` and ideaset members resolve against this set first.
|
|
118
|
+
*/
|
|
119
|
+
localDeclarationDescriptions(document) {
|
|
112
120
|
const model = document.parseResult.value;
|
|
113
121
|
if (!isModel(model)) {
|
|
114
|
-
return
|
|
122
|
+
return [];
|
|
115
123
|
}
|
|
116
|
-
|
|
117
|
-
.filter(
|
|
118
|
-
.map(
|
|
124
|
+
return model.elements
|
|
125
|
+
.filter(isIdeaDeclaration)
|
|
126
|
+
.map(element => this.descriptions.createDescription(element, element.name, document));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Imported bindings only. Built lazily so a fully-local file never walks import `.ref`s
|
|
130
|
+
* while resolving same-file names.
|
|
131
|
+
*/
|
|
132
|
+
importedIdeaScope(document) {
|
|
133
|
+
return new StreamScope(stream(this.importedIdeaDescriptions(document)));
|
|
134
|
+
}
|
|
135
|
+
importedIdeaDescriptions(document) {
|
|
136
|
+
const model = document.parseResult.value;
|
|
137
|
+
if (!isModel(model)) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
const descriptions = [];
|
|
119
141
|
// Imported ideas enter scope under their binding name only (alias when present).
|
|
120
142
|
// See import_tokenisation: aliased base names are not reserved locally.
|
|
121
143
|
for (const importDecl of model.imports) {
|
|
122
144
|
if (isFromImport(importDecl)) {
|
|
123
145
|
for (const specifier of importDecl.specifiers) {
|
|
124
146
|
const target = specifier.idea.ref;
|
|
125
|
-
if (!target ||
|
|
147
|
+
if (!target || !isIdeaDeclaration(target)) {
|
|
126
148
|
continue;
|
|
127
149
|
}
|
|
128
150
|
const name = specifierBindingName(specifier) ?? target.name;
|
|
@@ -132,19 +154,19 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
132
154
|
}
|
|
133
155
|
if (isQualifiedImport(importDecl)) {
|
|
134
156
|
const target = importDecl.idea.ref;
|
|
135
|
-
if (!target ||
|
|
157
|
+
if (!target || !isIdeaDeclaration(target)) {
|
|
136
158
|
continue;
|
|
137
159
|
}
|
|
138
160
|
const name = importDecl.alias ?? target.name;
|
|
139
161
|
descriptions.push(this.descriptions.createDescription(target, name, AstUtils.getDocument(target)));
|
|
140
162
|
}
|
|
141
163
|
}
|
|
142
|
-
return
|
|
164
|
+
return descriptions;
|
|
143
165
|
}
|
|
144
166
|
scopeForIdeasetMembers(ideaset, document) {
|
|
145
167
|
const descriptions = ideaset.members
|
|
146
168
|
.map(member => member.ref)
|
|
147
|
-
.filter((target) => target !== undefined && (
|
|
169
|
+
.filter((target) => target !== undefined && isIdeaDeclaration(target))
|
|
148
170
|
.map(target => this.descriptions.createDescription(target, target.name, AstUtils.getDocument(target)));
|
|
149
171
|
if (descriptions.length > 0) {
|
|
150
172
|
return new StreamScope(stream(descriptions));
|
|
@@ -167,7 +189,7 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
167
189
|
return new StreamScope(stream([]));
|
|
168
190
|
}
|
|
169
191
|
const locals = model.elements
|
|
170
|
-
.filter(
|
|
192
|
+
.filter(isIdeaDeclaration)
|
|
171
193
|
.map(element => this.descriptions.createDescription(element, element.name, document));
|
|
172
194
|
const namedImports = model.imports.flatMap(importDecl => {
|
|
173
195
|
if (isFromImport(importDecl)) {
|
|
@@ -203,7 +225,7 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
203
225
|
return undefined;
|
|
204
226
|
}
|
|
205
227
|
const target = importDecl.idea.ref;
|
|
206
|
-
if (!target ||
|
|
228
|
+
if (!target || !isIdeaDeclaration(target)) {
|
|
207
229
|
return undefined;
|
|
208
230
|
}
|
|
209
231
|
const description = this.descriptions.createDescription(target, target.name, imported);
|
|
@@ -216,7 +238,7 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
216
238
|
}
|
|
217
239
|
const descriptions = importDecl.specifiers
|
|
218
240
|
.map(specifier => specifier.idea.ref)
|
|
219
|
-
.filter((target) => target !== undefined && (
|
|
241
|
+
.filter((target) => target !== undefined && isIdeaDeclaration(target))
|
|
220
242
|
.map(target => this.descriptions.createDescription(target, target.name, imported));
|
|
221
243
|
return new StreamScope(stream(descriptions));
|
|
222
244
|
}
|
|
@@ -226,7 +248,7 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
226
248
|
return undefined;
|
|
227
249
|
}
|
|
228
250
|
const target = importDecl.idea.ref;
|
|
229
|
-
if (!target ||
|
|
251
|
+
if (!target || !isIdeaDeclaration(target)) {
|
|
230
252
|
return undefined;
|
|
231
253
|
}
|
|
232
254
|
const description = this.descriptions.createDescription(target, target.name, imported);
|
|
@@ -267,7 +289,7 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
|
|
|
267
289
|
return undefined;
|
|
268
290
|
}
|
|
269
291
|
const descriptions = model.elements
|
|
270
|
-
.filter(
|
|
292
|
+
.filter(isIdeaDeclaration)
|
|
271
293
|
.map(idea => this.descriptions.createDescription(idea, idea.name, imported));
|
|
272
294
|
const scope = new StreamScope(stream(descriptions));
|
|
273
295
|
this.importPathCache.set(key, { version: imported.textDocument.version, scope });
|
|
@@ -290,4 +312,25 @@ function importAlias(entry) {
|
|
|
290
312
|
}
|
|
291
313
|
return entry.alias;
|
|
292
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Defers outer-scope construction until a local lookup misses.
|
|
317
|
+
* StreamScope `getElement` does not call the outer scope when a local name matches.
|
|
318
|
+
*/
|
|
319
|
+
class LazyScope {
|
|
320
|
+
constructor(load) {
|
|
321
|
+
this.load = load;
|
|
322
|
+
}
|
|
323
|
+
getElement(name) {
|
|
324
|
+
return this.inner().getElement(name);
|
|
325
|
+
}
|
|
326
|
+
getElements(name) {
|
|
327
|
+
return this.inner().getElements(name);
|
|
328
|
+
}
|
|
329
|
+
getAllElements() {
|
|
330
|
+
return this.inner().getAllElements();
|
|
331
|
+
}
|
|
332
|
+
inner() {
|
|
333
|
+
return this.resolved ?? (this.resolved = this.load());
|
|
334
|
+
}
|
|
335
|
+
}
|
|
293
336
|
//# sourceMappingURL=reqlan-scope.js.map
|
package/out/reqlan-scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-scope.js","sourceRoot":"","sources":["../src/reqlan-scope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAc,MAAM,SAAS,CAAC;AACnH,OAAO,EACH,YAAY,EACZ,qBAAqB,EACrB,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EAMvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gCAAgC,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IAEtD,KAAK,CAAC,sBAAsB,CAAC,QAAyB;QAC3D,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QACzC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAOD,MAAM,OAAO,mBAAoB,SAAQ,oBAAoB;IAezD,YAAY,QAAwB;QAChC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAZpB;;;WAGG;QACc,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChE;;;WAGG;QACc,oBAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;QAI7D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEQ,QAAQ,CAAC,OAAsB;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpG,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC;YACvB,CAAC;YACD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACjF,IAAI,gBAAgB,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;gBAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;gBACnE,IAAI,UAAU,EAAE,CAAC;oBACb,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACzE,IAAI,WAAW,EAAE,CAAC;wBACd,OAAO,WAAW,CAAC;oBACvB,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACP,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC5D,IAAI,WAAW,EAAE,CAAC;wBACd,OAAO,WAAW,CAAC;oBACvB,CAAC;gBACL,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACtF,IAAI,UAAU,EAAE,CAAC;oBACb,OAAO,UAAU,CAAC;gBACtB,CAAC;gBACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEO,iBAAiB,CAAC,QAAyB;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,mBAAmB,CAAC,QAAyB;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAc,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;aAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;aAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,iFAAiF;QACjF,wEAAwE;QACxE,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;oBAClC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;wBAC1D,SAAS;oBACb,CAAC;oBACD,MAAM,IAAI,GAAG,oBAAoB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC;oBAC5D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvG,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBAC1D,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvG,CAAC;QACL,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,sBAAsB,CAAC,OAAgB,EAAE,QAAyB;QACtE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO;aAC/B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;aACzB,MAAM,CAAC,CAAC,MAAM,EAAwC,EAAE,CACrD,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CACrE;aACA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3G,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEO,gBAAgB,CAAC,QAAyB;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAc,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;aAC9B,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,2BAA2B,CAAC,QAAyB;QACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAc,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ;aACxB,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;aACnF,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBAC7C,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO,KAAK;wBACR,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACnE,CAAC,CAAC,EAAE,CAAC;gBACb,CAAC,CAAC,CAAC;YACP,CAAC;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,mBAAmB,CAAC,QAAyB;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAc,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,IAAI;gBACP,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnE,CAAC,CAAC,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,yBAAyB,CAAC,UAAwC,EAAE,QAAyB;QACjG,IAAI,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvF,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU;iBACrC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpC,MAAM,CAAC,CAAC,MAAM,EAAwC,EAAE,CACrD,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CACrE;iBACA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvF,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvF,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,uBAAuB,CAAC,KAAa,EAAE,QAAyB;QACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAc,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEO,kBAAkB,CAAC,IAAY,EAAE,QAAyB;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7D,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;aAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;aAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,QAAyB;QAChE,OAAO,oBAAoB,CACvB,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChD,CAAC;IACN,CAAC;IAEO,6BAA6B,CACjC,SAA6B,EAC7B,QAAyB;QAEzB,MAAM,IAAI,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;CACJ;AAED,SAAS,WAAW,CAAC,KAAa;IAC9B,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"reqlan-scope.js","sourceRoot":"","sources":["../src/reqlan-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,25 @@ 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
|
+
* rq:["../../../reqlan rq/extension/language-support/language-server-errors.rq".file_reference_errors]
|
|
7
8
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
8
9
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
9
10
|
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
11
|
+
* rq:["../../../reqlan rq/language/syntax.rq".comment_reference_resolution_error]
|
|
12
|
+
* rq:["../../../reqlan rq/extension/features-non-rq-code-comment/functional-code-comment-references.rq".comment_reference_resolution_error_state]
|
|
10
13
|
*/
|
|
11
14
|
export declare function registerValidationChecks(services: ReqlanServices): void;
|
|
12
15
|
/**
|
|
13
16
|
* Custom validations for Reqlan documents.
|
|
14
17
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
18
|
+
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_folder_targets]
|
|
19
|
+
* rq:["../../../reqlan rq/extension/language-support/language-server-errors.rq".file_reference_errors]
|
|
15
20
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
16
21
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
17
22
|
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
23
|
+
* rq:["../../../reqlan rq/language/syntax.rq".comment_reference_resolution_error]
|
|
24
|
+
* rq:["../../../reqlan rq/core_analysis/check.rq".check_wildcard_sparse]
|
|
25
|
+
* rq:["../../../reqlan rq/extension/features-non-rq-code-comment/functional-code-comment-references.rq".comment_reference_resolution_error_state]
|
|
18
26
|
*/
|
|
19
27
|
export declare class ReqlanValidator {
|
|
20
28
|
private readonly services;
|
|
@@ -35,13 +43,16 @@ export declare class ReqlanValidator {
|
|
|
35
43
|
/**
|
|
36
44
|
* Duplicate check uses import *bindings* only (alias when present, otherwise the idea name).
|
|
37
45
|
* An aliased import does not reserve the imported base name for local ideas.
|
|
46
|
+
* Ideasets share the same name space as ideas in the file.
|
|
47
|
+
* rq:["../../../reqlan rq/language/syntax.rq".idea_name]
|
|
38
48
|
*/
|
|
39
49
|
checkDuplicateIdeaNames(model: Model, accept: ValidationAcceptor): void;
|
|
40
50
|
/**
|
|
41
|
-
* Error underline when an `import` / `from` path does not resolve to a file.
|
|
51
|
+
* Error underline when an `import` / `from` path does not resolve to a file or folder.
|
|
42
52
|
* Missing imported ideas are reported by the linker as unresolved references.
|
|
43
53
|
*/
|
|
44
54
|
checkImportTargets(model: Model, accept: ValidationAcceptor): void;
|
|
45
55
|
checkFileReferenceTargets(model: Model, accept: ValidationAcceptor): void;
|
|
56
|
+
checkCommentReferences(model: Model, accept: ValidationAcceptor): void;
|
|
46
57
|
checkWildcardReferences(model: Model, accept: ValidationAcceptor): void;
|
|
47
58
|
}
|
package/out/reqlan-validator.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AstUtils } from 'langium';
|
|
2
|
-
import { isFromImport,
|
|
3
|
-
import {
|
|
2
|
+
import { isFromImport, isIdeaDeclaration, isInvalidFromImport, isModel, isWildcardReference } from './generated/ast.js';
|
|
3
|
+
import { collectCommentReferenceIssues } from './reqlan-comment-diagnostics.js';
|
|
4
|
+
import { collectFileLinks, FILE_REFERENCE_MISSING, fileLinkMissingMessage, fileLinkTargetIssueMessage } from './reqlan-file-link-resolver.js';
|
|
4
5
|
import { importBindings, importPathOf, isWellFormedFromImport } from './reqlan-import-bindings.js';
|
|
5
6
|
import { isResolvableImportPath } from './reqlan-imports.js';
|
|
6
7
|
import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
|
|
@@ -9,9 +10,12 @@ import { resolveWildcardReferenceMatches, parseWildcardPathPattern, wildcardRefe
|
|
|
9
10
|
/**
|
|
10
11
|
* Registers validation hooks for the requirement graph AST.
|
|
11
12
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
13
|
+
* rq:["../../../reqlan rq/extension/language-support/language-server-errors.rq".file_reference_errors]
|
|
12
14
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
13
15
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
14
16
|
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
17
|
+
* rq:["../../../reqlan rq/language/syntax.rq".comment_reference_resolution_error]
|
|
18
|
+
* rq:["../../../reqlan rq/extension/features-non-rq-code-comment/functional-code-comment-references.rq".comment_reference_resolution_error_state]
|
|
15
19
|
*/
|
|
16
20
|
export function registerValidationChecks(services) {
|
|
17
21
|
const registry = services.validation.ValidationRegistry;
|
|
@@ -25,9 +29,14 @@ export function registerValidationChecks(services) {
|
|
|
25
29
|
/**
|
|
26
30
|
* Custom validations for Reqlan documents.
|
|
27
31
|
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_does_not_exist_error]
|
|
32
|
+
* rq:["../../../reqlan rq/extension/language-support/features-imports.rq".import_folder_targets]
|
|
33
|
+
* rq:["../../../reqlan rq/extension/language-support/language-server-errors.rq".file_reference_errors]
|
|
28
34
|
* rq:["../../../reqlan rq/language/imports.rq".import_error_recovery]
|
|
29
35
|
* rq:["../../../reqlan rq/language/imports.rq".import_tokenisation]
|
|
30
36
|
* rq:["../../../reqlan rq/language/syntax.rq".no_name_idea_safe_warning]
|
|
37
|
+
* rq:["../../../reqlan rq/language/syntax.rq".comment_reference_resolution_error]
|
|
38
|
+
* rq:["../../../reqlan rq/core_analysis/check.rq".check_wildcard_sparse]
|
|
39
|
+
* rq:["../../../reqlan rq/extension/features-non-rq-code-comment/functional-code-comment-references.rq".comment_reference_resolution_error_state]
|
|
31
40
|
*/
|
|
32
41
|
export class ReqlanValidator {
|
|
33
42
|
constructor(services) {
|
|
@@ -39,6 +48,7 @@ export class ReqlanValidator {
|
|
|
39
48
|
this.checkImportSyntax(model, accept);
|
|
40
49
|
this.checkImportTargets(model, accept);
|
|
41
50
|
this.checkFileReferenceTargets(model, accept);
|
|
51
|
+
this.checkCommentReferences(model, accept);
|
|
42
52
|
this.checkWildcardReferences(model, accept);
|
|
43
53
|
}
|
|
44
54
|
/**
|
|
@@ -93,6 +103,8 @@ export class ReqlanValidator {
|
|
|
93
103
|
/**
|
|
94
104
|
* Duplicate check uses import *bindings* only (alias when present, otherwise the idea name).
|
|
95
105
|
* An aliased import does not reserve the imported base name for local ideas.
|
|
106
|
+
* Ideasets share the same name space as ideas in the file.
|
|
107
|
+
* rq:["../../../reqlan rq/language/syntax.rq".idea_name]
|
|
96
108
|
*/
|
|
97
109
|
checkDuplicateIdeaNames(model, accept) {
|
|
98
110
|
const seen = new Map();
|
|
@@ -102,7 +114,7 @@ export class ReqlanValidator {
|
|
|
102
114
|
}
|
|
103
115
|
}
|
|
104
116
|
for (const element of model.elements) {
|
|
105
|
-
if (!
|
|
117
|
+
if (!isIdeaDeclaration(element)) {
|
|
106
118
|
continue;
|
|
107
119
|
}
|
|
108
120
|
const name = element.name;
|
|
@@ -117,7 +129,7 @@ export class ReqlanValidator {
|
|
|
117
129
|
}
|
|
118
130
|
}
|
|
119
131
|
/**
|
|
120
|
-
* Error underline when an `import` / `from` path does not resolve to a file.
|
|
132
|
+
* Error underline when an `import` / `from` path does not resolve to a file or folder.
|
|
121
133
|
* Missing imported ideas are reported by the linker as unresolved references.
|
|
122
134
|
*/
|
|
123
135
|
checkImportTargets(model, accept) {
|
|
@@ -149,6 +161,14 @@ export class ReqlanValidator {
|
|
|
149
161
|
const document = AstUtils.getDocument(model);
|
|
150
162
|
const { shared } = this.services;
|
|
151
163
|
for (const link of collectFileLinks(document, shared.workspace.LangiumDocuments, shared.workspace.FileSystemProvider, pathResolveContextFromServices(this.services))) {
|
|
164
|
+
if (link.resolution === 'missing') {
|
|
165
|
+
accept('error', fileLinkMissingMessage(link.authoredPath ?? ''), {
|
|
166
|
+
node: model,
|
|
167
|
+
range: link.sourceRange,
|
|
168
|
+
code: FILE_REFERENCE_MISSING
|
|
169
|
+
});
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
152
172
|
if (!link.targetIssue) {
|
|
153
173
|
continue;
|
|
154
174
|
}
|
|
@@ -158,6 +178,17 @@ export class ReqlanValidator {
|
|
|
158
178
|
});
|
|
159
179
|
}
|
|
160
180
|
}
|
|
181
|
+
checkCommentReferences(model, accept) {
|
|
182
|
+
const document = AstUtils.getDocument(model);
|
|
183
|
+
const { shared } = this.services;
|
|
184
|
+
for (const issue of collectCommentReferenceIssues(document, shared.workspace.LangiumDocuments, shared.workspace.FileSystemProvider, pathResolveContextFromServices(this.services))) {
|
|
185
|
+
accept('error', issue.message, {
|
|
186
|
+
node: model,
|
|
187
|
+
range: issue.range,
|
|
188
|
+
code: issue.code
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
161
192
|
checkWildcardReferences(model, accept) {
|
|
162
193
|
const { shared } = this.services;
|
|
163
194
|
const context = pathResolveContextFromServices(this.services);
|
|
@@ -174,6 +205,9 @@ export class ReqlanValidator {
|
|
|
174
205
|
if (matches.length === 0) {
|
|
175
206
|
accept('warning', `No ideas match wildcard reference [${wildcardReferenceLabel(path, node.ideaPattern)}].`, { node });
|
|
176
207
|
}
|
|
208
|
+
else if (matches.length === 1) {
|
|
209
|
+
accept('warning', `Wildcard reference [${wildcardReferenceLabel(path, node.ideaPattern)}] matches only 1 idea.`, { node });
|
|
210
|
+
}
|
|
177
211
|
}
|
|
178
212
|
}
|
|
179
213
|
}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"reqlan-validator.js","sourceRoot":"","sources":["../src/reqlan-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reqlan/language",
|
|
3
3
|
"description": "Langium language definition for reqlan (.rq) requirement files",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.10.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"langium": "~4.3.0",
|
|
39
39
|
"vscode-languageserver": "~10.0.0",
|
|
40
|
-
"vscode-languageserver-textdocument": "~1.0.12"
|
|
40
|
+
"vscode-languageserver-textdocument": "~1.0.12",
|
|
41
|
+
"@reqlan/analytical": "1.13.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"langium-cli": "~4.3.0",
|
package/src/file-path-rewrite.ts
CHANGED
package/src/generated/ast.ts
CHANGED
|
@@ -430,7 +430,7 @@ export function isIdea(item: unknown): item is Idea {
|
|
|
430
430
|
return reflection.isInstance(item, Idea.$type);
|
|
431
431
|
}
|
|
432
432
|
|
|
433
|
-
export type IdeaDeclaration = Idea | OneLinerIdea;
|
|
433
|
+
export type IdeaDeclaration = Idea | IdeaSet | OneLinerIdea;
|
|
434
434
|
|
|
435
435
|
export const IdeaDeclaration = {
|
|
436
436
|
$type: 'IdeaDeclaration'
|
|
@@ -1196,7 +1196,7 @@ export class reqlanAstReflection extends langium.AbstractAstReflection {
|
|
|
1196
1196
|
name: IdeaSet.name
|
|
1197
1197
|
}
|
|
1198
1198
|
},
|
|
1199
|
-
superTypes: [TopLevelElement.$type]
|
|
1199
|
+
superTypes: [IdeaDeclaration.$type, TopLevelElement.$type]
|
|
1200
1200
|
},
|
|
1201
1201
|
Import: {
|
|
1202
1202
|
name: Import.$type,
|