@reqlan/language 1.4.0 → 1.4.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 (181) hide show
  1. package/README.md +115 -24
  2. package/README.template.md +32 -0
  3. package/package.json +2 -2
  4. package/out/src/file-path-rewrite.d.ts +0 -25
  5. package/out/src/file-path-rewrite.js +0 -56
  6. package/out/src/file-path-rewrite.js.map +0 -1
  7. package/out/src/generated/ast.d.ts +0 -1173
  8. package/out/src/generated/ast.js +0 -994
  9. package/out/src/generated/ast.js.map +0 -1
  10. package/out/src/generated/grammar.d.ts +0 -7
  11. package/out/src/generated/grammar.js +0 -3045
  12. package/out/src/generated/grammar.js.map +0 -1
  13. package/out/src/generated/module.d.ts +0 -20
  14. package/out/src/generated/module.js +0 -32
  15. package/out/src/generated/module.js.map +0 -1
  16. package/out/src/index.d.ts +0 -29
  17. package/out/src/index.js +0 -30
  18. package/out/src/index.js.map +0 -1
  19. package/out/src/reqlan-attribute-catalog.d.ts +0 -19
  20. package/out/src/reqlan-attribute-catalog.js +0 -87
  21. package/out/src/reqlan-attribute-catalog.js.map +0 -1
  22. package/out/src/reqlan-code-action-provider.d.ts +0 -34
  23. package/out/src/reqlan-code-action-provider.js +0 -206
  24. package/out/src/reqlan-code-action-provider.js.map +0 -1
  25. package/out/src/reqlan-comment-resolver.d.ts +0 -35
  26. package/out/src/reqlan-comment-resolver.js +0 -308
  27. package/out/src/reqlan-comment-resolver.js.map +0 -1
  28. package/out/src/reqlan-completion-context.d.ts +0 -46
  29. package/out/src/reqlan-completion-context.js +0 -244
  30. package/out/src/reqlan-completion-context.js.map +0 -1
  31. package/out/src/reqlan-completion-provider.d.ts +0 -41
  32. package/out/src/reqlan-completion-provider.js +0 -320
  33. package/out/src/reqlan-completion-provider.js.map +0 -1
  34. package/out/src/reqlan-definition-provider.d.ts +0 -31
  35. package/out/src/reqlan-definition-provider.js +0 -240
  36. package/out/src/reqlan-definition-provider.js.map +0 -1
  37. package/out/src/reqlan-document-highlight-provider.d.ts +0 -10
  38. package/out/src/reqlan-document-highlight-provider.js +0 -11
  39. package/out/src/reqlan-document-highlight-provider.js.map +0 -1
  40. package/out/src/reqlan-document-link-provider.d.ts +0 -14
  41. package/out/src/reqlan-document-link-provider.js +0 -24
  42. package/out/src/reqlan-document-link-provider.js.map +0 -1
  43. package/out/src/reqlan-embedded-file-references.d.ts +0 -11
  44. package/out/src/reqlan-embedded-file-references.js +0 -50
  45. package/out/src/reqlan-embedded-file-references.js.map +0 -1
  46. package/out/src/reqlan-file-link-resolver.d.ts +0 -44
  47. package/out/src/reqlan-file-link-resolver.js +0 -347
  48. package/out/src/reqlan-file-link-resolver.js.map +0 -1
  49. package/out/src/reqlan-file-references.d.ts +0 -15
  50. package/out/src/reqlan-file-references.js +0 -72
  51. package/out/src/reqlan-file-references.js.map +0 -1
  52. package/out/src/reqlan-grammar-config.d.ts +0 -5
  53. package/out/src/reqlan-grammar-config.js +0 -9
  54. package/out/src/reqlan-grammar-config.js.map +0 -1
  55. package/out/src/reqlan-idea-summary.d.ts +0 -6
  56. package/out/src/reqlan-idea-summary.js +0 -78
  57. package/out/src/reqlan-idea-summary.js.map +0 -1
  58. package/out/src/reqlan-ignore-error.d.ts +0 -10
  59. package/out/src/reqlan-ignore-error.js +0 -42
  60. package/out/src/reqlan-ignore-error.js.map +0 -1
  61. package/out/src/reqlan-import-bindings.d.ts +0 -12
  62. package/out/src/reqlan-import-bindings.js +0 -65
  63. package/out/src/reqlan-import-bindings.js.map +0 -1
  64. package/out/src/reqlan-import-edits.d.ts +0 -17
  65. package/out/src/reqlan-import-edits.js +0 -96
  66. package/out/src/reqlan-import-edits.js.map +0 -1
  67. package/out/src/reqlan-imports.d.ts +0 -22
  68. package/out/src/reqlan-imports.js +0 -61
  69. package/out/src/reqlan-imports.js.map +0 -1
  70. package/out/src/reqlan-inbound-reference-inlay-label.d.ts +0 -23
  71. package/out/src/reqlan-inbound-reference-inlay-label.js +0 -128
  72. package/out/src/reqlan-inbound-reference-inlay-label.js.map +0 -1
  73. package/out/src/reqlan-inlay-hint-provider.d.ts +0 -15
  74. package/out/src/reqlan-inlay-hint-provider.js +0 -54
  75. package/out/src/reqlan-inlay-hint-provider.js.map +0 -1
  76. package/out/src/reqlan-inlay-hint-settings.d.ts +0 -10
  77. package/out/src/reqlan-inlay-hint-settings.js +0 -10
  78. package/out/src/reqlan-inlay-hint-settings.js.map +0 -1
  79. package/out/src/reqlan-linker.d.ts +0 -26
  80. package/out/src/reqlan-linker.js +0 -86
  81. package/out/src/reqlan-linker.js.map +0 -1
  82. package/out/src/reqlan-markdown-links.d.ts +0 -28
  83. package/out/src/reqlan-markdown-links.js +0 -113
  84. package/out/src/reqlan-markdown-links.js.map +0 -1
  85. package/out/src/reqlan-module.d.ts +0 -41
  86. package/out/src/reqlan-module.js +0 -76
  87. package/out/src/reqlan-module.js.map +0 -1
  88. package/out/src/reqlan-name-catalog.d.ts +0 -23
  89. package/out/src/reqlan-name-catalog.js +0 -63
  90. package/out/src/reqlan-name-catalog.js.map +0 -1
  91. package/out/src/reqlan-name-provider.d.ts +0 -10
  92. package/out/src/reqlan-name-provider.js +0 -38
  93. package/out/src/reqlan-name-provider.js.map +0 -1
  94. package/out/src/reqlan-namespace-import-links.d.ts +0 -10
  95. package/out/src/reqlan-namespace-import-links.js +0 -81
  96. package/out/src/reqlan-namespace-import-links.js.map +0 -1
  97. package/out/src/reqlan-path-completion.d.ts +0 -50
  98. package/out/src/reqlan-path-completion.js +0 -304
  99. package/out/src/reqlan-path-completion.js.map +0 -1
  100. package/out/src/reqlan-path-references.d.ts +0 -5
  101. package/out/src/reqlan-path-references.js +0 -124
  102. package/out/src/reqlan-path-references.js.map +0 -1
  103. package/out/src/reqlan-path-resolve.d.ts +0 -59
  104. package/out/src/reqlan-path-resolve.js +0 -173
  105. package/out/src/reqlan-path-resolve.js.map +0 -1
  106. package/out/src/reqlan-quoted-strings.d.ts +0 -9
  107. package/out/src/reqlan-quoted-strings.js +0 -26
  108. package/out/src/reqlan-quoted-strings.js.map +0 -1
  109. package/out/src/reqlan-reference-at-position.d.ts +0 -20
  110. package/out/src/reqlan-reference-at-position.js +0 -89
  111. package/out/src/reqlan-reference-at-position.js.map +0 -1
  112. package/out/src/reqlan-references.d.ts +0 -16
  113. package/out/src/reqlan-references.js +0 -51
  114. package/out/src/reqlan-references.js.map +0 -1
  115. package/out/src/reqlan-scope.d.ts +0 -25
  116. package/out/src/reqlan-scope.js +0 -266
  117. package/out/src/reqlan-scope.js.map +0 -1
  118. package/out/src/reqlan-semantic-token-provider.d.ts +0 -8
  119. package/out/src/reqlan-semantic-token-provider.js +0 -97
  120. package/out/src/reqlan-semantic-token-provider.js.map +0 -1
  121. package/out/src/reqlan-token-builder.d.ts +0 -12
  122. package/out/src/reqlan-token-builder.js +0 -459
  123. package/out/src/reqlan-token-builder.js.map +0 -1
  124. package/out/src/reqlan-validator.d.ts +0 -25
  125. package/out/src/reqlan-validator.js +0 -119
  126. package/out/src/reqlan-validator.js.map +0 -1
  127. package/out/src/reqlan-workspace-attribute-catalog.d.ts +0 -6
  128. package/out/src/reqlan-workspace-attribute-catalog.js +0 -54
  129. package/out/src/reqlan-workspace-attribute-catalog.js.map +0 -1
  130. package/out/test/code-actions.test.d.ts +0 -1
  131. package/out/test/code-actions.test.js +0 -126
  132. package/out/test/code-actions.test.js.map +0 -1
  133. package/out/test/comment-in-string.test.d.ts +0 -1
  134. package/out/test/comment-in-string.test.js +0 -100
  135. package/out/test/comment-in-string.test.js.map +0 -1
  136. package/out/test/completion.test.d.ts +0 -1
  137. package/out/test/completion.test.js +0 -467
  138. package/out/test/completion.test.js.map +0 -1
  139. package/out/test/file-path-rewrite.test.d.ts +0 -1
  140. package/out/test/file-path-rewrite.test.js +0 -64
  141. package/out/test/file-path-rewrite.test.js.map +0 -1
  142. package/out/test/ignore-error.test.d.ts +0 -1
  143. package/out/test/ignore-error.test.js +0 -87
  144. package/out/test/ignore-error.test.js.map +0 -1
  145. package/out/test/implicit-import-extension.test.d.ts +0 -1
  146. package/out/test/implicit-import-extension.test.js +0 -203
  147. package/out/test/implicit-import-extension.test.js.map +0 -1
  148. package/out/test/import-edits.test.d.ts +0 -1
  149. package/out/test/import-edits.test.js +0 -20
  150. package/out/test/import-edits.test.js.map +0 -1
  151. package/out/test/inlay-hints.test.d.ts +0 -1
  152. package/out/test/inlay-hints.test.js +0 -238
  153. package/out/test/inlay-hints.test.js.map +0 -1
  154. package/out/test/linking.test.d.ts +0 -1
  155. package/out/test/linking.test.js +0 -754
  156. package/out/test/linking.test.js.map +0 -1
  157. package/out/test/naked-strings.test.d.ts +0 -1
  158. package/out/test/naked-strings.test.js +0 -50
  159. package/out/test/naked-strings.test.js.map +0 -1
  160. package/out/test/parsing.test.d.ts +0 -1
  161. package/out/test/parsing.test.js +0 -773
  162. package/out/test/parsing.test.js.map +0 -1
  163. package/out/test/path-resolve.test.d.ts +0 -1
  164. package/out/test/path-resolve.test.js +0 -88
  165. package/out/test/path-resolve.test.js.map +0 -1
  166. package/out/test/references.test.d.ts +0 -1
  167. package/out/test/references.test.js +0 -168
  168. package/out/test/references.test.js.map +0 -1
  169. package/out/test/rqconfig.test.d.ts +0 -1
  170. package/out/test/rqconfig.test.js +0 -275
  171. package/out/test/rqconfig.test.js.map +0 -1
  172. package/out/test/test-requirement-refs.d.ts +0 -8
  173. package/out/test/test-requirement-refs.js +0 -35
  174. package/out/test/test-requirement-refs.js.map +0 -1
  175. package/out/test/testing.test.d.ts +0 -1
  176. package/out/test/testing.test.js +0 -23
  177. package/out/test/testing.test.js.map +0 -1
  178. package/out/test/validating.test.d.ts +0 -1
  179. package/out/test/validating.test.js +0 -117
  180. package/out/test/validating.test.js.map +0 -1
  181. package/out/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"reqlan-definition-provider.js","sourceRoot":"","sources":["../../src/reqlan-definition-provider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Document highlights for requirement references, excluding markdown link labels.
3
- */
4
- import type { LangiumDocument } from 'langium';
5
- import { DefaultDocumentHighlightProvider } from 'langium/lsp';
6
- import type { MaybePromise } from 'langium';
7
- import type { DocumentHighlight, DocumentHighlightParams } from 'vscode-languageserver';
8
- export declare class ReqlanDocumentHighlightProvider extends DefaultDocumentHighlightProvider {
9
- getDocumentHighlight(document: LangiumDocument, params: DocumentHighlightParams): MaybePromise<DocumentHighlight[] | undefined>;
10
- }
@@ -1,11 +0,0 @@
1
- import { DefaultDocumentHighlightProvider } from 'langium/lsp';
2
- import { isMarkdownLinkLabelPosition } from './reqlan-markdown-links.js';
3
- export class ReqlanDocumentHighlightProvider extends DefaultDocumentHighlightProvider {
4
- getDocumentHighlight(document, params) {
5
- if (isMarkdownLinkLabelPosition(document, params.position)) {
6
- return undefined;
7
- }
8
- return super.getDocumentHighlight(document, params);
9
- }
10
- }
11
- //# sourceMappingURL=reqlan-document-highlight-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reqlan-document-highlight-provider.js","sourceRoot":"","sources":["../../src/reqlan-document-highlight-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,OAAO,+BAAgC,SAAQ,gCAAgC;IAExE,oBAAoB,CACzB,QAAyB,EACzB,MAA+B;QAE/B,IAAI,2BAA2B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;CACJ"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Clickable document links for file references and import paths.
3
- */
4
- import type { LangiumDocument } from 'langium';
5
- import type { DocumentLinkProvider } from 'langium/lsp';
6
- import type { DocumentLink, DocumentLinkParams } from 'vscode-languageserver';
7
- import type { ReqlanServices } from './reqlan-module.js';
8
- export declare class ReqlanDocumentLinkProvider implements DocumentLinkProvider {
9
- private readonly documents;
10
- private readonly fileSystem;
11
- private readonly services;
12
- constructor(services: ReqlanServices);
13
- getDocumentLinks(document: LangiumDocument, _params: DocumentLinkParams): DocumentLink[];
14
- }
@@ -1,24 +0,0 @@
1
- import { DocumentLink as LspDocumentLink } from 'vscode-languageserver';
2
- import { collectFileLinks, resolvedFileLinkTargetUri } from './reqlan-file-link-resolver.js';
3
- import { folderReferenceCommandTarget } from './reqlan-reference-at-position.js';
4
- import { pathResolveContextFromServices } from './reqlan-path-resolve.js';
5
- export class ReqlanDocumentLinkProvider {
6
- constructor(services) {
7
- this.documents = services.shared.workspace.LangiumDocuments;
8
- this.fileSystem = services.shared.workspace.FileSystemProvider;
9
- this.services = services;
10
- }
11
- getDocumentLinks(document, _params) {
12
- return collectFileLinks(document, this.documents, this.fileSystem, pathResolveContextFromServices(this.services)).flatMap(link => {
13
- if (link.resolution === 'folder') {
14
- return [LspDocumentLink.create(link.sourceRange, folderReferenceCommandTarget(link.targetUri))];
15
- }
16
- const target = resolvedFileLinkTargetUri(link);
17
- if (!target) {
18
- return [];
19
- }
20
- return [LspDocumentLink.create(link.sourceRange, target)];
21
- });
22
- }
23
- }
24
- //# sourceMappingURL=reqlan-document-link-provider.js.map
@@ -1 +0,0 @@
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,11 +0,0 @@
1
- /**
2
- * Locates quoted file paths embedded in .rq source text, including @tests list entries.
3
- */
4
- import type { LangiumDocument } from 'langium';
5
- import type { Position, Range } from 'vscode-languageserver';
6
- export interface EmbeddedFileReference {
7
- file: string;
8
- range: Range;
9
- }
10
- export declare function findEmbeddedFileReferencesInText(text: string, lineOffset?: number): EmbeddedFileReference[];
11
- export declare function findEmbeddedFileReferenceAt(document: LangiumDocument, position: Position): EmbeddedFileReference | undefined;
@@ -1,50 +0,0 @@
1
- import { isRangeInsideMarkdownLinkLabel } from './reqlan-markdown-links.js';
2
- import { parseReqlanQuotedString, REQLAN_QUOTED_STRING_CAPTURE } from './reqlan-quoted-strings.js';
3
- const BRACKETED_FILE_REFERENCE_PATTERN = new RegExp(`\\[\\s*(${REQLAN_QUOTED_STRING_CAPTURE})\\s*\\]`, 'g');
4
- const QUOTED_FILE_REFERENCE_PATTERN = new RegExp(`(${REQLAN_QUOTED_STRING_CAPTURE})`, 'g');
5
- const FILE_REFERENCE_LIKE = /(?:\.\w[\w.]*|\/)/;
6
- export function findEmbeddedFileReferencesInText(text, lineOffset = 0) {
7
- const references = [];
8
- const lines = text.split(/\r?\n/);
9
- for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
10
- const line = lines[lineIndex];
11
- for (const match of line.matchAll(BRACKETED_FILE_REFERENCE_PATTERN)) {
12
- pushEmbeddedReference(references, match, lineIndex, lineOffset, line);
13
- }
14
- for (const match of line.matchAll(QUOTED_FILE_REFERENCE_PATTERN)) {
15
- if (line.slice(Math.max(0, (match.index ?? 0) - 1), match.index).includes('[')) {
16
- continue;
17
- }
18
- pushEmbeddedReference(references, match, lineIndex, lineOffset, line);
19
- }
20
- }
21
- return references;
22
- }
23
- function pushEmbeddedReference(references, match, lineIndex, lineOffset, line) {
24
- const quoted = match[1];
25
- const file = parseReqlanQuotedString(quoted);
26
- if (!FILE_REFERENCE_LIKE.test(file)) {
27
- return;
28
- }
29
- const start = match.index ?? 0;
30
- if (isRangeInsideMarkdownLinkLabel(line, start, start + match[0].length)) {
31
- return;
32
- }
33
- references.push({
34
- file,
35
- range: {
36
- start: { line: lineOffset + lineIndex, character: start },
37
- end: { line: lineOffset + lineIndex, character: start + match[0].length }
38
- }
39
- });
40
- }
41
- export function findEmbeddedFileReferenceAt(document, position) {
42
- const offset = document.textDocument.offsetAt(position);
43
- return findEmbeddedFileReferencesInText(document.textDocument.getText())
44
- .find(reference => {
45
- const start = document.textDocument.offsetAt(reference.range.start);
46
- const end = document.textDocument.offsetAt(reference.range.end);
47
- return offset >= start && offset <= end;
48
- });
49
- }
50
- //# sourceMappingURL=reqlan-embedded-file-references.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reqlan-embedded-file-references.js","sourceRoot":"","sources":["../../src/reqlan-embedded-file-references.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAOnG,MAAM,gCAAgC,GAAG,IAAI,MAAM,CAAC,WAAW,4BAA4B,UAAU,EAAE,GAAG,CAAC,CAAC;AAC5G,MAAM,6BAA6B,GAAG,IAAI,MAAM,CAAC,IAAI,4BAA4B,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3F,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD,MAAM,UAAU,gCAAgC,CAAC,IAAY,EAAE,UAAU,GAAG,CAAC;IACzE,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;YAClE,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7E,SAAS;YACb,CAAC;YACD,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAC1B,UAAmC,EACnC,KAAuB,EACvB,SAAiB,EACjB,UAAkB,EAClB,IAAY;IAEZ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO;IACX,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/B,IAAI,8BAA8B,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,OAAO;IACX,CAAC;IACD,UAAU,CAAC,IAAI,CAAC;QACZ,IAAI;QACJ,KAAK,EAAE;YACH,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE;YACzD,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;SAC5E;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,QAAyB,EACzB,QAAkB;IAElB,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,gCAAgC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SACnE,IAAI,CAAC,SAAS,CAAC,EAAE;QACd,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC;IAC5C,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Resolves file references and import paths to target URIs and editor ranges.
3
- */
4
- import type { CstNode, FileSystemProvider, LangiumDocument, LangiumDocuments, URI } from 'langium';
5
- import type { Range } from 'vscode-languageserver';
6
- import type { EmbeddedFileReference } from './reqlan-embedded-file-references.js';
7
- import type { PathResolveContext } from './reqlan-path-resolve.js';
8
- 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';
11
- export type FileLinkTargetIssue = 'empty' | 'parse-error';
12
- export interface ResolvedFileLink {
13
- sourceRange: Range;
14
- targetUri: string;
15
- targetRange?: Range;
16
- resolution?: ReferenceResolution;
17
- folderFiles?: string[];
18
- targetIssue?: FileLinkTargetIssue;
19
- }
20
- export declare function classifyReferenceUri(targetUri: URI, documents: LangiumDocuments, fileSystem: FileSystemProvider): ReferenceResolution;
21
- export declare function listFolderFileNames(fileSystem: FileSystemProvider, folderUri: URI): string[];
22
- export declare function resolveFileReferenceLink(reference: FileReference | FileSymbolReference, documents: LangiumDocuments, fileSystem: FileSystemProvider, context?: PathResolveContext): ResolvedFileLink | undefined;
23
- export declare function resolveImportPathLink(importDecl: Import, documents: LangiumDocuments, context?: PathResolveContext): ResolvedFileLink | undefined;
24
- export declare function resolveQualifiedReferencePathLink(reference: QualifiedReference, documents: LangiumDocuments, context?: PathResolveContext): ResolvedFileLink | undefined;
25
- export declare function resolveMarkdownLinkTargetLink(link: MarkdownLink, document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, context?: PathResolveContext): ResolvedFileLink | undefined;
26
- export declare function resolveEmbeddedFileReferenceLink(reference: EmbeddedFileReference, document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, context?: PathResolveContext): ResolvedFileLink | undefined;
27
- export declare function resolveParsedFileLink(document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, parsed: ParsedFileReference, pathNode: CstNode, context?: PathResolveContext): ResolvedFileLink | undefined;
28
- export declare function detectFileLinkTargetIssue(text: string, targetDocument: LangiumDocument | undefined): FileLinkTargetIssue | undefined;
29
- export declare function fileLinkTargetIssueMessage(issue: FileLinkTargetIssue): string;
30
- export declare function bindingNameSourceRange(bindingNode: CstNode, bindingName: string): Range;
31
- export declare function resolveImportedFileLink(document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, filePath: string, sourceRange: Range, context?: PathResolveContext): ResolvedFileLink | undefined;
32
- export declare function filePathRangeInStringNode(pathNode: CstNode, parsed: ParsedFileReference): Range;
33
- export declare function collectFileLinks(document: LangiumDocument, documents: LangiumDocuments, fileSystem: FileSystemProvider, context?: PathResolveContext): ResolvedFileLink[];
34
- export declare function resolvedFileLinkTargetUri(link: ResolvedFileLink): string | undefined;
35
- export declare function resolvedFileLinkToGoToTarget(link: ResolvedFileLink, sourceNode: CstNode, targetDocument: LangiumDocument): {
36
- source: CstNode;
37
- target: CstNode;
38
- targetDocument: LangiumDocument;
39
- } | undefined;
40
- export declare function resolvedFileLinkToGoToTargetFromFilesystem(link: ResolvedFileLink, sourceNode: CstNode): {
41
- source: CstNode;
42
- target: CstNode;
43
- targetDocument: LangiumDocument;
44
- } | undefined;
@@ -1,347 +0,0 @@
1
- import { AstUtils, CstUtils, GrammarUtils } from 'langium';
2
- import { resolveFileUri } from './reqlan-comment-resolver.js';
3
- import { findEmbeddedFileReferencesInText } from './reqlan-embedded-file-references.js';
4
- import { findImportedDocument, resolveExistingImportUri } from './reqlan-imports.js';
5
- import { qualifiedReferenceImportPath } from './reqlan-references.js';
6
- import { findTestLineInText, parseFileReferenceString } from './reqlan-file-references.js';
7
- import { isFileReference, isFileSymbolReference, isImport, isLocalReference, isMarkdownLink, isQualifiedReference } from './generated/ast.js';
8
- import { parseMarkdownLink } from './reqlan-references.js';
9
- import { reqlanStringDelimiter } from './reqlan-quoted-strings.js';
10
- import { isNamespaceImportOnlyReference, resolveNamespaceImportReferenceLink } from './reqlan-namespace-import-links.js';
11
- function withFileSystem(fileSystem, context) {
12
- return { ...context, fileSystem: context?.fileSystem ?? fileSystem };
13
- }
14
- export function classifyReferenceUri(targetUri, documents, fileSystem) {
15
- if (findTargetDocument(targetUri, documents)) {
16
- return 'file';
17
- }
18
- if (!fileSystem.existsSync(targetUri)) {
19
- return 'missing';
20
- }
21
- return fileSystem.statSync(targetUri).isDirectory ? 'folder' : 'file';
22
- }
23
- export function listFolderFileNames(fileSystem, folderUri) {
24
- return fileSystem.readDirectorySync(folderUri)
25
- .filter(entry => entry.isFile)
26
- .map(entry => {
27
- const segments = entry.uri.path.split('/');
28
- return segments[segments.length - 1] ?? '';
29
- })
30
- .filter(name => name.length > 0)
31
- .sort((left, right) => left.localeCompare(right));
32
- }
33
- export function resolveFileReferenceLink(reference, documents, fileSystem, context) {
34
- const document = AstUtils.getDocument(reference);
35
- const parsed = parseFileReferenceString(reference.file);
36
- const pathNode = GrammarUtils.findNodeForProperty(reference.$cstNode, 'file');
37
- if (!pathNode) {
38
- return undefined;
39
- }
40
- return resolveParsedFileLink(document, documents, fileSystem, parsed, pathNode, context);
41
- }
42
- export function resolveImportPathLink(importDecl, documents, context) {
43
- const document = AstUtils.getDocument(importDecl);
44
- const pathNode = GrammarUtils.findNodeForProperty(importDecl.$cstNode, 'path');
45
- if (!pathNode) {
46
- return undefined;
47
- }
48
- const imported = findImportedDocument(importDecl.path, document, documents, context);
49
- const target = imported?.parseResult.value.$cstNode;
50
- if (!imported || !target) {
51
- return undefined;
52
- }
53
- return {
54
- sourceRange: pathNode.range,
55
- targetUri: imported.textDocument.uri,
56
- targetRange: target.range
57
- };
58
- }
59
- export function resolveQualifiedReferencePathLink(reference, documents, context) {
60
- const pathNode = reference.path?.$refNode;
61
- if (!pathNode) {
62
- return undefined;
63
- }
64
- const document = AstUtils.getDocument(reference);
65
- const path = qualifiedReferenceImportPath(reference);
66
- if (!path) {
67
- return undefined;
68
- }
69
- const imported = findImportedDocument(path, document, documents, context);
70
- const target = imported?.parseResult.value.$cstNode;
71
- if (!imported || !target) {
72
- return undefined;
73
- }
74
- return {
75
- sourceRange: pathNode.range,
76
- targetUri: imported.textDocument.uri,
77
- targetRange: target.range
78
- };
79
- }
80
- export function resolveMarkdownLinkTargetLink(link, document, documents, fileSystem, context) {
81
- const parsedLink = parseMarkdownLink(link.raw);
82
- if (!parsedLink) {
83
- return undefined;
84
- }
85
- const pathNode = GrammarUtils.findNodeForProperty(link.$cstNode, 'raw');
86
- if (!pathNode) {
87
- return undefined;
88
- }
89
- const targetStart = link.raw.indexOf('](') + 2;
90
- const targetLength = parsedLink.target.length;
91
- const sourceRange = {
92
- start: {
93
- line: pathNode.range.start.line,
94
- character: pathNode.range.start.character + targetStart
95
- },
96
- end: {
97
- line: pathNode.range.start.line,
98
- character: pathNode.range.start.character + targetStart + targetLength
99
- }
100
- };
101
- const parsed = parseFileReferenceString(parsedLink.target);
102
- const targetUri = resolveFileUri(parsed.filePath, document, withFileSystem(fileSystem, context));
103
- return resolvePathStringLink(document, documents, fileSystem, parsed, targetUri, sourceRange);
104
- }
105
- export function resolveEmbeddedFileReferenceLink(reference, document, documents, fileSystem, context) {
106
- const parsed = parseFileReferenceString(reference.file);
107
- const targetUri = resolveFileUri(parsed.filePath, document, withFileSystem(fileSystem, context));
108
- return resolvePathStringLink(document, documents, fileSystem, parsed, targetUri, reference.range);
109
- }
110
- export function resolveParsedFileLink(document, documents, fileSystem, parsed, pathNode, context) {
111
- const targetUri = resolveFileUri(parsed.filePath, document, withFileSystem(fileSystem, context));
112
- const sourceRange = parsed.testName
113
- ? stringContentRange(pathNode)
114
- : filePathRangeInStringNode(pathNode, parsed);
115
- return resolvePathStringLink(document, documents, fileSystem, parsed, targetUri, sourceRange);
116
- }
117
- function resolvePathStringLink(_document, documents, fileSystem, parsed, targetUri, sourceRange) {
118
- const resolution = classifyReferenceUri(targetUri, documents, fileSystem);
119
- if (resolution === 'missing') {
120
- return undefined;
121
- }
122
- if (resolution === 'folder') {
123
- return {
124
- sourceRange,
125
- targetUri: targetUri.toString(),
126
- resolution,
127
- folderFiles: listFolderFileNames(fileSystem, targetUri)
128
- };
129
- }
130
- const text = readTargetText(targetUri, documents, fileSystem);
131
- if (text === undefined) {
132
- return undefined;
133
- }
134
- const targetIssue = detectFileLinkTargetIssue(text, findTargetDocument(targetUri, documents));
135
- let targetRange;
136
- if (parsed.testName) {
137
- const line = findTestLineInText(text, parsed.testName);
138
- if (line !== undefined) {
139
- targetRange = lineRangeFromText(text, line);
140
- }
141
- }
142
- else if (parsed.lineStart !== undefined) {
143
- targetRange = lineRangeFromText(text, parsed.lineStart - 1);
144
- }
145
- else {
146
- targetRange = fileStartRange();
147
- }
148
- return {
149
- sourceRange,
150
- targetUri: targetUri.toString(),
151
- targetRange,
152
- resolution: 'file',
153
- targetIssue
154
- };
155
- }
156
- export function detectFileLinkTargetIssue(text, targetDocument) {
157
- if (text.length === 0) {
158
- return 'empty';
159
- }
160
- if (targetDocument && targetDocument.parseResult.parserErrors.length > 0) {
161
- return 'parse-error';
162
- }
163
- return undefined;
164
- }
165
- export function fileLinkTargetIssueMessage(issue) {
166
- switch (issue) {
167
- case 'empty':
168
- return 'Referenced file is empty.';
169
- case 'parse-error':
170
- return 'Referenced file has parse errors.';
171
- }
172
- }
173
- function findTargetDocument(targetUri, documents) {
174
- const direct = documents.getDocument(targetUri);
175
- if (direct) {
176
- return direct;
177
- }
178
- const normalizedTarget = normalizeUriPath(targetUri);
179
- for (const document of documents.all) {
180
- if (normalizeUriPath(document.uri) === normalizedTarget) {
181
- return document;
182
- }
183
- }
184
- return undefined;
185
- }
186
- function normalizeUriPath(uri) {
187
- return decodeURIComponent(uri.path).replace(/\\/g, '/');
188
- }
189
- function readTargetText(targetUri, documents, fileSystem) {
190
- const targetDocument = findTargetDocument(targetUri, documents);
191
- if (targetDocument) {
192
- return targetDocument.textDocument.getText();
193
- }
194
- if (!fileSystem.existsSync(targetUri)) {
195
- return undefined;
196
- }
197
- if (fileSystem.statSync(targetUri).isDirectory) {
198
- return undefined;
199
- }
200
- return fileSystem.readFileSync(targetUri);
201
- }
202
- export function bindingNameSourceRange(bindingNode, bindingName) {
203
- const line = bindingNode.range.start.line;
204
- const startCharacter = bindingNode.range.start.character;
205
- return {
206
- start: { line, character: startCharacter },
207
- end: { line, character: startCharacter + bindingName.length }
208
- };
209
- }
210
- export function resolveImportedFileLink(document, documents, fileSystem, filePath, sourceRange, context) {
211
- const targetUri = resolveExistingImportUri(filePath, document, documents, fileSystem, context);
212
- return resolvePathStringLink(document, documents, fileSystem, { filePath }, targetUri, sourceRange);
213
- }
214
- export function filePathRangeInStringNode(pathNode, parsed) {
215
- const text = pathNode.text;
216
- const contentStart = pathNode.range.start.character + (reqlanStringDelimiter(text) ? 1 : 0);
217
- return {
218
- start: { line: pathNode.range.start.line, character: contentStart },
219
- end: { line: pathNode.range.start.line, character: contentStart + parsed.filePath.length }
220
- };
221
- }
222
- function stringContentRange(pathNode) {
223
- const text = pathNode.text;
224
- const quoteOffset = reqlanStringDelimiter(text) ? 1 : 0;
225
- const trailingQuote = quoteOffset;
226
- return {
227
- start: { line: pathNode.range.start.line, character: pathNode.range.start.character + quoteOffset },
228
- end: { line: pathNode.range.end.line, character: pathNode.range.end.character - trailingQuote }
229
- };
230
- }
231
- function lineRangeFromText(text, line) {
232
- const lineText = text.split(/\r?\n/)[line] ?? '';
233
- return {
234
- start: { line, character: 0 },
235
- end: { line, character: lineText.length }
236
- };
237
- }
238
- function fileStartRange() {
239
- return {
240
- start: { line: 0, character: 0 },
241
- end: { line: 0, character: 0 }
242
- };
243
- }
244
- export function collectFileLinks(document, documents, fileSystem, context) {
245
- const pathContext = withFileSystem(fileSystem, context);
246
- const links = [];
247
- const linkedRanges = [];
248
- for (const node of AstUtils.streamAst(document.parseResult.value)) {
249
- if (isFileReference(node) || isFileSymbolReference(node)) {
250
- const link = resolveFileReferenceLink(node, documents, fileSystem, pathContext);
251
- if (link) {
252
- links.push(link);
253
- linkedRanges.push(rangeKey(link.sourceRange));
254
- }
255
- }
256
- if ((isLocalReference(node) || isQualifiedReference(node)) && isNamespaceImportOnlyReference(node)) {
257
- const link = resolveNamespaceImportReferenceLink(node, documents, fileSystem, pathContext);
258
- if (link) {
259
- links.push(link);
260
- linkedRanges.push(rangeKey(link.sourceRange));
261
- }
262
- }
263
- if (isImport(node)) {
264
- const link = resolveImportPathLink(node, documents, pathContext);
265
- if (link) {
266
- links.push(link);
267
- linkedRanges.push(rangeKey(link.sourceRange));
268
- }
269
- }
270
- if (isQualifiedReference(node) && node.path && !node.path.ref) {
271
- const link = resolveQualifiedReferencePathLink(node, documents, pathContext);
272
- if (link) {
273
- links.push(link);
274
- linkedRanges.push(rangeKey(link.sourceRange));
275
- }
276
- }
277
- if (isMarkdownLink(node)) {
278
- const link = resolveMarkdownLinkTargetLink(node, document, documents, fileSystem, pathContext);
279
- if (link) {
280
- links.push(link);
281
- linkedRanges.push(rangeKey(link.sourceRange));
282
- }
283
- }
284
- }
285
- for (const reference of findEmbeddedFileReferencesInText(document.textDocument.getText())) {
286
- const key = rangeKey(reference.range);
287
- if (linkedRanges.includes(key) || links.some(link => rangesOverlap(link.sourceRange, reference.range))) {
288
- continue;
289
- }
290
- const link = resolveEmbeddedFileReferenceLink(reference, document, documents, fileSystem, pathContext);
291
- if (link) {
292
- links.push(link);
293
- linkedRanges.push(key);
294
- }
295
- }
296
- return links;
297
- }
298
- function rangeKey(range) {
299
- return `${range.start.line}:${range.start.character}-${range.end.line}:${range.end.character}`;
300
- }
301
- function rangesOverlap(left, right) {
302
- if (left.start.line !== right.start.line || right.start.line !== right.end.line || left.start.line !== left.end.line) {
303
- return left.start.line === right.start.line;
304
- }
305
- return left.start.character <= right.end.character && right.start.character <= left.end.character;
306
- }
307
- export function resolvedFileLinkTargetUri(link) {
308
- if (link.resolution === 'folder' || link.resolution === 'missing') {
309
- return undefined;
310
- }
311
- if (link.targetRange) {
312
- return `${link.targetUri}#L${link.targetRange.start.line + 1}`;
313
- }
314
- return link.targetUri;
315
- }
316
- export function resolvedFileLinkToGoToTarget(link, sourceNode, targetDocument) {
317
- const root = targetDocument.parseResult.value.$cstNode;
318
- if (!root) {
319
- return undefined;
320
- }
321
- const target = link.targetRange
322
- ? {
323
- range: link.targetRange,
324
- astNode: root.astNode
325
- }
326
- : root;
327
- return {
328
- source: CstUtils.getDatatypeNode(sourceNode) ?? sourceNode,
329
- target,
330
- targetDocument
331
- };
332
- }
333
- export function resolvedFileLinkToGoToTargetFromFilesystem(link, sourceNode) {
334
- if (!link.targetRange) {
335
- return undefined;
336
- }
337
- const target = { range: link.targetRange };
338
- const targetDocument = {
339
- textDocument: { uri: link.targetUri }
340
- };
341
- return {
342
- source: CstUtils.getDatatypeNode(sourceNode) ?? sourceNode,
343
- target,
344
- targetDocument
345
- };
346
- }
347
- //# sourceMappingURL=reqlan-file-link-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reqlan-file-link-resolver.js","sourceRoot":"","sources":["../../src/reqlan-file-link-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Parses file path strings from bracket references, including L# line suffixes and :test name suffixes.
3
- */
4
- export interface ParsedFileReference {
5
- filePath: string;
6
- lineStart?: number;
7
- lineEnd?: number;
8
- testName?: string;
9
- }
10
- export declare function parseFileReferenceString(file: string): ParsedFileReference;
11
- /**
12
- * True when a bracketed quoted path is an arbitrary file reference, not an inline .rq import path.
13
- */
14
- export declare function isOpaqueFileReferencePath(path: string): boolean;
15
- export declare function findTestLineInText(text: string, testName: string): number | undefined;