@reqlan/language 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +24 -0
  2. package/out/file-path-rewrite.d.ts +25 -0
  3. package/out/file-path-rewrite.js +56 -0
  4. package/out/file-path-rewrite.js.map +1 -0
  5. package/out/generated/ast.d.ts +1157 -0
  6. package/out/generated/ast.js +980 -0
  7. package/out/generated/ast.js.map +1 -0
  8. package/out/generated/grammar.d.ts +7 -0
  9. package/out/generated/grammar.js +3071 -0
  10. package/out/generated/grammar.js.map +1 -0
  11. package/out/generated/module.d.ts +20 -0
  12. package/out/generated/module.js +32 -0
  13. package/out/generated/module.js.map +1 -0
  14. package/out/index.d.ts +34 -0
  15. package/out/index.js +35 -0
  16. package/out/index.js.map +1 -0
  17. package/out/reqlan-attribute-catalog.d.ts +19 -0
  18. package/out/reqlan-attribute-catalog.js +87 -0
  19. package/out/reqlan-attribute-catalog.js.map +1 -0
  20. package/out/reqlan-code-action-provider.d.ts +55 -0
  21. package/out/reqlan-code-action-provider.js +269 -0
  22. package/out/reqlan-code-action-provider.js.map +1 -0
  23. package/out/reqlan-code-lens-provider.d.ts +13 -0
  24. package/out/reqlan-code-lens-provider.js +27 -0
  25. package/out/reqlan-code-lens-provider.js.map +1 -0
  26. package/out/reqlan-code-lens-settings.d.ts +34 -0
  27. package/out/reqlan-code-lens-settings.js +12 -0
  28. package/out/reqlan-code-lens-settings.js.map +1 -0
  29. package/out/reqlan-comment-resolver.d.ts +35 -0
  30. package/out/reqlan-comment-resolver.js +308 -0
  31. package/out/reqlan-comment-resolver.js.map +1 -0
  32. package/out/reqlan-completion-context.d.ts +46 -0
  33. package/out/reqlan-completion-context.js +244 -0
  34. package/out/reqlan-completion-context.js.map +1 -0
  35. package/out/reqlan-completion-provider.d.ts +41 -0
  36. package/out/reqlan-completion-provider.js +317 -0
  37. package/out/reqlan-completion-provider.js.map +1 -0
  38. package/out/reqlan-definition-provider.d.ts +31 -0
  39. package/out/reqlan-definition-provider.js +240 -0
  40. package/out/reqlan-definition-provider.js.map +1 -0
  41. package/out/reqlan-document-highlight-provider.d.ts +10 -0
  42. package/out/reqlan-document-highlight-provider.js +11 -0
  43. package/out/reqlan-document-highlight-provider.js.map +1 -0
  44. package/out/reqlan-document-link-provider.d.ts +14 -0
  45. package/out/reqlan-document-link-provider.js +24 -0
  46. package/out/reqlan-document-link-provider.js.map +1 -0
  47. package/out/reqlan-embedded-file-references.d.ts +11 -0
  48. package/out/reqlan-embedded-file-references.js +50 -0
  49. package/out/reqlan-embedded-file-references.js.map +1 -0
  50. package/out/reqlan-file-link-resolver.d.ts +44 -0
  51. package/out/reqlan-file-link-resolver.js +347 -0
  52. package/out/reqlan-file-link-resolver.js.map +1 -0
  53. package/out/reqlan-file-references.d.ts +15 -0
  54. package/out/reqlan-file-references.js +72 -0
  55. package/out/reqlan-file-references.js.map +1 -0
  56. package/out/reqlan-grammar-config.d.ts +5 -0
  57. package/out/reqlan-grammar-config.js +9 -0
  58. package/out/reqlan-grammar-config.js.map +1 -0
  59. package/out/reqlan-idea-reference-site.d.ts +14 -0
  60. package/out/reqlan-idea-reference-site.js +47 -0
  61. package/out/reqlan-idea-reference-site.js.map +1 -0
  62. package/out/reqlan-idea-summary.d.ts +6 -0
  63. package/out/reqlan-idea-summary.js +134 -0
  64. package/out/reqlan-idea-summary.js.map +1 -0
  65. package/out/reqlan-ignore-error.d.ts +10 -0
  66. package/out/reqlan-ignore-error.js +42 -0
  67. package/out/reqlan-ignore-error.js.map +1 -0
  68. package/out/reqlan-import-bindings.d.ts +12 -0
  69. package/out/reqlan-import-bindings.js +65 -0
  70. package/out/reqlan-import-bindings.js.map +1 -0
  71. package/out/reqlan-import-edits.d.ts +17 -0
  72. package/out/reqlan-import-edits.js +96 -0
  73. package/out/reqlan-import-edits.js.map +1 -0
  74. package/out/reqlan-imports.d.ts +22 -0
  75. package/out/reqlan-imports.js +61 -0
  76. package/out/reqlan-imports.js.map +1 -0
  77. package/out/reqlan-inbound-reference-inlay-label.d.ts +27 -0
  78. package/out/reqlan-inbound-reference-inlay-label.js +142 -0
  79. package/out/reqlan-inbound-reference-inlay-label.js.map +1 -0
  80. package/out/reqlan-inlay-hint-provider.d.ts +15 -0
  81. package/out/reqlan-inlay-hint-provider.js +54 -0
  82. package/out/reqlan-inlay-hint-provider.js.map +1 -0
  83. package/out/reqlan-inlay-hint-settings.d.ts +10 -0
  84. package/out/reqlan-inlay-hint-settings.js +10 -0
  85. package/out/reqlan-inlay-hint-settings.js.map +1 -0
  86. package/out/reqlan-linker.d.ts +26 -0
  87. package/out/reqlan-linker.js +83 -0
  88. package/out/reqlan-linker.js.map +1 -0
  89. package/out/reqlan-markdown-links.d.ts +28 -0
  90. package/out/reqlan-markdown-links.js +113 -0
  91. package/out/reqlan-markdown-links.js.map +1 -0
  92. package/out/reqlan-module.d.ts +41 -0
  93. package/out/reqlan-module.js +78 -0
  94. package/out/reqlan-module.js.map +1 -0
  95. package/out/reqlan-name-catalog.d.ts +23 -0
  96. package/out/reqlan-name-catalog.js +63 -0
  97. package/out/reqlan-name-catalog.js.map +1 -0
  98. package/out/reqlan-name-provider.d.ts +10 -0
  99. package/out/reqlan-name-provider.js +38 -0
  100. package/out/reqlan-name-provider.js.map +1 -0
  101. package/out/reqlan-namespace-import-links.d.ts +10 -0
  102. package/out/reqlan-namespace-import-links.js +69 -0
  103. package/out/reqlan-namespace-import-links.js.map +1 -0
  104. package/out/reqlan-path-completion.d.ts +50 -0
  105. package/out/reqlan-path-completion.js +304 -0
  106. package/out/reqlan-path-completion.js.map +1 -0
  107. package/out/reqlan-path-references.d.ts +5 -0
  108. package/out/reqlan-path-references.js +124 -0
  109. package/out/reqlan-path-references.js.map +1 -0
  110. package/out/reqlan-path-resolve.d.ts +81 -0
  111. package/out/reqlan-path-resolve.js +245 -0
  112. package/out/reqlan-path-resolve.js.map +1 -0
  113. package/out/reqlan-quoted-strings.d.ts +9 -0
  114. package/out/reqlan-quoted-strings.js +26 -0
  115. package/out/reqlan-quoted-strings.js.map +1 -0
  116. package/out/reqlan-reference-at-position.d.ts +20 -0
  117. package/out/reqlan-reference-at-position.js +89 -0
  118. package/out/reqlan-reference-at-position.js.map +1 -0
  119. package/out/reqlan-reference-code-lens.d.ts +32 -0
  120. package/out/reqlan-reference-code-lens.js +240 -0
  121. package/out/reqlan-reference-code-lens.js.map +1 -0
  122. package/out/reqlan-reference-search-site.d.ts +34 -0
  123. package/out/reqlan-reference-search-site.js +136 -0
  124. package/out/reqlan-reference-search-site.js.map +1 -0
  125. package/out/reqlan-references.d.ts +16 -0
  126. package/out/reqlan-references.js +51 -0
  127. package/out/reqlan-references.js.map +1 -0
  128. package/out/reqlan-scope.d.ts +25 -0
  129. package/out/reqlan-scope.js +259 -0
  130. package/out/reqlan-scope.js.map +1 -0
  131. package/out/reqlan-semantic-token-provider.d.ts +8 -0
  132. package/out/reqlan-semantic-token-provider.js +91 -0
  133. package/out/reqlan-semantic-token-provider.js.map +1 -0
  134. package/out/reqlan-token-builder.d.ts +12 -0
  135. package/out/reqlan-token-builder.js +459 -0
  136. package/out/reqlan-token-builder.js.map +1 -0
  137. package/out/reqlan-validator.d.ts +25 -0
  138. package/out/reqlan-validator.js +119 -0
  139. package/out/reqlan-validator.js.map +1 -0
  140. package/out/reqlan-workspace-attribute-catalog.d.ts +6 -0
  141. package/out/reqlan-workspace-attribute-catalog.js +54 -0
  142. package/out/reqlan-workspace-attribute-catalog.js.map +1 -0
  143. package/out/src/file-path-rewrite.d.ts +25 -0
  144. package/out/src/file-path-rewrite.js +56 -0
  145. package/out/src/file-path-rewrite.js.map +1 -0
  146. package/out/src/generated/ast.d.ts +1173 -0
  147. package/out/src/generated/ast.js +994 -0
  148. package/out/src/generated/ast.js.map +1 -0
  149. package/out/src/generated/grammar.d.ts +7 -0
  150. package/out/src/generated/grammar.js +3045 -0
  151. package/out/src/generated/grammar.js.map +1 -0
  152. package/out/src/generated/module.d.ts +20 -0
  153. package/out/src/generated/module.js +32 -0
  154. package/out/src/generated/module.js.map +1 -0
  155. package/out/src/index.d.ts +29 -0
  156. package/out/src/index.js +30 -0
  157. package/out/src/index.js.map +1 -0
  158. package/out/src/reqlan-attribute-catalog.d.ts +19 -0
  159. package/out/src/reqlan-attribute-catalog.js +87 -0
  160. package/out/src/reqlan-attribute-catalog.js.map +1 -0
  161. package/out/src/reqlan-code-action-provider.d.ts +34 -0
  162. package/out/src/reqlan-code-action-provider.js +206 -0
  163. package/out/src/reqlan-code-action-provider.js.map +1 -0
  164. package/out/src/reqlan-comment-resolver.d.ts +35 -0
  165. package/out/src/reqlan-comment-resolver.js +308 -0
  166. package/out/src/reqlan-comment-resolver.js.map +1 -0
  167. package/out/src/reqlan-completion-context.d.ts +46 -0
  168. package/out/src/reqlan-completion-context.js +244 -0
  169. package/out/src/reqlan-completion-context.js.map +1 -0
  170. package/out/src/reqlan-completion-provider.d.ts +41 -0
  171. package/out/src/reqlan-completion-provider.js +320 -0
  172. package/out/src/reqlan-completion-provider.js.map +1 -0
  173. package/out/src/reqlan-definition-provider.d.ts +31 -0
  174. package/out/src/reqlan-definition-provider.js +240 -0
  175. package/out/src/reqlan-definition-provider.js.map +1 -0
  176. package/out/src/reqlan-document-highlight-provider.d.ts +10 -0
  177. package/out/src/reqlan-document-highlight-provider.js +11 -0
  178. package/out/src/reqlan-document-highlight-provider.js.map +1 -0
  179. package/out/src/reqlan-document-link-provider.d.ts +14 -0
  180. package/out/src/reqlan-document-link-provider.js +24 -0
  181. package/out/src/reqlan-document-link-provider.js.map +1 -0
  182. package/out/src/reqlan-embedded-file-references.d.ts +11 -0
  183. package/out/src/reqlan-embedded-file-references.js +50 -0
  184. package/out/src/reqlan-embedded-file-references.js.map +1 -0
  185. package/out/src/reqlan-file-link-resolver.d.ts +44 -0
  186. package/out/src/reqlan-file-link-resolver.js +347 -0
  187. package/out/src/reqlan-file-link-resolver.js.map +1 -0
  188. package/out/src/reqlan-file-references.d.ts +15 -0
  189. package/out/src/reqlan-file-references.js +72 -0
  190. package/out/src/reqlan-file-references.js.map +1 -0
  191. package/out/src/reqlan-grammar-config.d.ts +5 -0
  192. package/out/src/reqlan-grammar-config.js +9 -0
  193. package/out/src/reqlan-grammar-config.js.map +1 -0
  194. package/out/src/reqlan-idea-summary.d.ts +6 -0
  195. package/out/src/reqlan-idea-summary.js +78 -0
  196. package/out/src/reqlan-idea-summary.js.map +1 -0
  197. package/out/src/reqlan-ignore-error.d.ts +10 -0
  198. package/out/src/reqlan-ignore-error.js +42 -0
  199. package/out/src/reqlan-ignore-error.js.map +1 -0
  200. package/out/src/reqlan-import-bindings.d.ts +12 -0
  201. package/out/src/reqlan-import-bindings.js +65 -0
  202. package/out/src/reqlan-import-bindings.js.map +1 -0
  203. package/out/src/reqlan-import-edits.d.ts +17 -0
  204. package/out/src/reqlan-import-edits.js +96 -0
  205. package/out/src/reqlan-import-edits.js.map +1 -0
  206. package/out/src/reqlan-imports.d.ts +22 -0
  207. package/out/src/reqlan-imports.js +61 -0
  208. package/out/src/reqlan-imports.js.map +1 -0
  209. package/out/src/reqlan-inbound-reference-inlay-label.d.ts +23 -0
  210. package/out/src/reqlan-inbound-reference-inlay-label.js +128 -0
  211. package/out/src/reqlan-inbound-reference-inlay-label.js.map +1 -0
  212. package/out/src/reqlan-inlay-hint-provider.d.ts +15 -0
  213. package/out/src/reqlan-inlay-hint-provider.js +54 -0
  214. package/out/src/reqlan-inlay-hint-provider.js.map +1 -0
  215. package/out/src/reqlan-inlay-hint-settings.d.ts +10 -0
  216. package/out/src/reqlan-inlay-hint-settings.js +10 -0
  217. package/out/src/reqlan-inlay-hint-settings.js.map +1 -0
  218. package/out/src/reqlan-linker.d.ts +26 -0
  219. package/out/src/reqlan-linker.js +86 -0
  220. package/out/src/reqlan-linker.js.map +1 -0
  221. package/out/src/reqlan-markdown-links.d.ts +28 -0
  222. package/out/src/reqlan-markdown-links.js +113 -0
  223. package/out/src/reqlan-markdown-links.js.map +1 -0
  224. package/out/src/reqlan-module.d.ts +41 -0
  225. package/out/src/reqlan-module.js +76 -0
  226. package/out/src/reqlan-module.js.map +1 -0
  227. package/out/src/reqlan-name-catalog.d.ts +23 -0
  228. package/out/src/reqlan-name-catalog.js +63 -0
  229. package/out/src/reqlan-name-catalog.js.map +1 -0
  230. package/out/src/reqlan-name-provider.d.ts +10 -0
  231. package/out/src/reqlan-name-provider.js +38 -0
  232. package/out/src/reqlan-name-provider.js.map +1 -0
  233. package/out/src/reqlan-namespace-import-links.d.ts +10 -0
  234. package/out/src/reqlan-namespace-import-links.js +81 -0
  235. package/out/src/reqlan-namespace-import-links.js.map +1 -0
  236. package/out/src/reqlan-path-completion.d.ts +50 -0
  237. package/out/src/reqlan-path-completion.js +304 -0
  238. package/out/src/reqlan-path-completion.js.map +1 -0
  239. package/out/src/reqlan-path-references.d.ts +5 -0
  240. package/out/src/reqlan-path-references.js +124 -0
  241. package/out/src/reqlan-path-references.js.map +1 -0
  242. package/out/src/reqlan-path-resolve.d.ts +59 -0
  243. package/out/src/reqlan-path-resolve.js +173 -0
  244. package/out/src/reqlan-path-resolve.js.map +1 -0
  245. package/out/src/reqlan-quoted-strings.d.ts +9 -0
  246. package/out/src/reqlan-quoted-strings.js +26 -0
  247. package/out/src/reqlan-quoted-strings.js.map +1 -0
  248. package/out/src/reqlan-reference-at-position.d.ts +20 -0
  249. package/out/src/reqlan-reference-at-position.js +89 -0
  250. package/out/src/reqlan-reference-at-position.js.map +1 -0
  251. package/out/src/reqlan-references.d.ts +16 -0
  252. package/out/src/reqlan-references.js +51 -0
  253. package/out/src/reqlan-references.js.map +1 -0
  254. package/out/src/reqlan-scope.d.ts +25 -0
  255. package/out/src/reqlan-scope.js +266 -0
  256. package/out/src/reqlan-scope.js.map +1 -0
  257. package/out/src/reqlan-semantic-token-provider.d.ts +8 -0
  258. package/out/src/reqlan-semantic-token-provider.js +97 -0
  259. package/out/src/reqlan-semantic-token-provider.js.map +1 -0
  260. package/out/src/reqlan-token-builder.d.ts +12 -0
  261. package/out/src/reqlan-token-builder.js +459 -0
  262. package/out/src/reqlan-token-builder.js.map +1 -0
  263. package/out/src/reqlan-validator.d.ts +25 -0
  264. package/out/src/reqlan-validator.js +119 -0
  265. package/out/src/reqlan-validator.js.map +1 -0
  266. package/out/src/reqlan-workspace-attribute-catalog.d.ts +6 -0
  267. package/out/src/reqlan-workspace-attribute-catalog.js +54 -0
  268. package/out/src/reqlan-workspace-attribute-catalog.js.map +1 -0
  269. package/out/test/code-actions.test.d.ts +1 -0
  270. package/out/test/code-actions.test.js +126 -0
  271. package/out/test/code-actions.test.js.map +1 -0
  272. package/out/test/comment-in-string.test.d.ts +1 -0
  273. package/out/test/comment-in-string.test.js +100 -0
  274. package/out/test/comment-in-string.test.js.map +1 -0
  275. package/out/test/completion.test.d.ts +1 -0
  276. package/out/test/completion.test.js +467 -0
  277. package/out/test/completion.test.js.map +1 -0
  278. package/out/test/file-path-rewrite.test.d.ts +1 -0
  279. package/out/test/file-path-rewrite.test.js +64 -0
  280. package/out/test/file-path-rewrite.test.js.map +1 -0
  281. package/out/test/ignore-error.test.d.ts +1 -0
  282. package/out/test/ignore-error.test.js +87 -0
  283. package/out/test/ignore-error.test.js.map +1 -0
  284. package/out/test/implicit-import-extension.test.d.ts +1 -0
  285. package/out/test/implicit-import-extension.test.js +203 -0
  286. package/out/test/implicit-import-extension.test.js.map +1 -0
  287. package/out/test/import-edits.test.d.ts +1 -0
  288. package/out/test/import-edits.test.js +20 -0
  289. package/out/test/import-edits.test.js.map +1 -0
  290. package/out/test/inlay-hints.test.d.ts +1 -0
  291. package/out/test/inlay-hints.test.js +238 -0
  292. package/out/test/inlay-hints.test.js.map +1 -0
  293. package/out/test/linking.test.d.ts +1 -0
  294. package/out/test/linking.test.js +754 -0
  295. package/out/test/linking.test.js.map +1 -0
  296. package/out/test/naked-strings.test.d.ts +1 -0
  297. package/out/test/naked-strings.test.js +50 -0
  298. package/out/test/naked-strings.test.js.map +1 -0
  299. package/out/test/parsing.test.d.ts +1 -0
  300. package/out/test/parsing.test.js +773 -0
  301. package/out/test/parsing.test.js.map +1 -0
  302. package/out/test/path-resolve.test.d.ts +1 -0
  303. package/out/test/path-resolve.test.js +88 -0
  304. package/out/test/path-resolve.test.js.map +1 -0
  305. package/out/test/references.test.d.ts +1 -0
  306. package/out/test/references.test.js +168 -0
  307. package/out/test/references.test.js.map +1 -0
  308. package/out/test/rqconfig.test.d.ts +1 -0
  309. package/out/test/rqconfig.test.js +275 -0
  310. package/out/test/rqconfig.test.js.map +1 -0
  311. package/out/test/test-requirement-refs.d.ts +8 -0
  312. package/out/test/test-requirement-refs.js +35 -0
  313. package/out/test/test-requirement-refs.js.map +1 -0
  314. package/out/test/testing.test.d.ts +1 -0
  315. package/out/test/testing.test.js +23 -0
  316. package/out/test/testing.test.js.map +1 -0
  317. package/out/test/validating.test.d.ts +1 -0
  318. package/out/test/validating.test.js +117 -0
  319. package/out/test/validating.test.js.map +1 -0
  320. package/out/tsconfig.tsbuildinfo +1 -0
  321. package/package.json +54 -0
  322. package/src/chevrotain.d.ts +8 -0
  323. package/src/file-path-rewrite.ts +96 -0
  324. package/src/generated/ast.ts +1481 -0
  325. package/src/generated/grammar.ts +3074 -0
  326. package/src/generated/module.ts +38 -0
  327. package/src/index.ts +34 -0
  328. package/src/reqlan-attribute-catalog.ts +100 -0
  329. package/src/reqlan-code-action-provider.ts +385 -0
  330. package/src/reqlan-code-lens-provider.ts +54 -0
  331. package/src/reqlan-code-lens-settings.ts +42 -0
  332. package/src/reqlan-comment-resolver.ts +372 -0
  333. package/src/reqlan-comment.langium +23 -0
  334. package/src/reqlan-completion-context.ts +330 -0
  335. package/src/reqlan-completion-provider.ts +400 -0
  336. package/src/reqlan-definition-provider.ts +319 -0
  337. package/src/reqlan-document-highlight-provider.ts +21 -0
  338. package/src/reqlan-document-link-provider.ts +45 -0
  339. package/src/reqlan-embedded-file-references.ts +72 -0
  340. package/src/reqlan-file-link-resolver.ts +485 -0
  341. package/src/reqlan-file-references.ts +84 -0
  342. package/src/reqlan-grammar-config.ts +14 -0
  343. package/src/reqlan-idea-reference-site.ts +74 -0
  344. package/src/reqlan-idea-summary.ts +162 -0
  345. package/src/reqlan-ignore-error.ts +50 -0
  346. package/src/reqlan-import-bindings.ts +87 -0
  347. package/src/reqlan-import-edits.ts +124 -0
  348. package/src/reqlan-imports.ts +115 -0
  349. package/src/reqlan-inbound-reference-inlay-label.ts +194 -0
  350. package/src/reqlan-inlay-hint-provider.ts +88 -0
  351. package/src/reqlan-inlay-hint-settings.ts +15 -0
  352. package/src/reqlan-linker.ts +108 -0
  353. package/src/reqlan-markdown-links.ts +136 -0
  354. package/src/reqlan-module.ts +104 -0
  355. package/src/reqlan-name-catalog.ts +81 -0
  356. package/src/reqlan-name-provider.ts +56 -0
  357. package/src/reqlan-namespace-import-links.ts +92 -0
  358. package/src/reqlan-path-completion.ts +420 -0
  359. package/src/reqlan-path-references.ts +140 -0
  360. package/src/reqlan-path-resolve.ts +346 -0
  361. package/src/reqlan-quoted-strings.ts +30 -0
  362. package/src/reqlan-reference-at-position.ts +154 -0
  363. package/src/reqlan-reference-code-lens.ts +323 -0
  364. package/src/reqlan-reference-search-site.ts +202 -0
  365. package/src/reqlan-references.ts +76 -0
  366. package/src/reqlan-scope.ts +312 -0
  367. package/src/reqlan-semantic-token-provider.ts +113 -0
  368. package/src/reqlan-token-builder.ts +492 -0
  369. package/src/reqlan-validator.ts +149 -0
  370. package/src/reqlan-workspace-attribute-catalog.ts +62 -0
  371. package/src/reqlan.langium +236 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-definition-provider.js","sourceRoot":"","sources":["../../src/reqlan-definition-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,14 @@
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
+ }
@@ -0,0 +1,24 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-document-link-provider.js","sourceRoot":"","sources":["../../src/reqlan-document-link-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,OAAO,0BAA0B;IAMnC,YAAY,QAAwB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAyB,EAAE,OAA2B;QACnE,OAAO,gBAAgB,CACnB,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,eAAe,CAAC,MAAM,CAC1B,IAAI,CAAC,WAAW,EAChB,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAC/C,CAAC,CAAC;YACP,CAAC;YACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,11 @@
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;
@@ -0,0 +1,50 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-embedded-file-references.js","sourceRoot":"","sources":["../../src/reqlan-embedded-file-references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
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;
@@ -0,0 +1,347 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-file-link-resolver.js","sourceRoot":"","sources":["../../src/reqlan-file-link-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EAE3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EAMvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACH,8BAA8B,EAC9B,mCAAmC,EACtC,MAAM,oCAAoC,CAAC;AAe5C,SAAS,cAAc,CACnB,UAA8B,EAC9B,OAA4B;IAE5B,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,SAAc,EACd,SAA2B,EAC3B,UAA8B;IAE9B,IAAI,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAA8B,EAAE,SAAc;IAC9E,OAAO,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACzC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;SAC7B,GAAG,CAAC,KAAK,CAAC,EAAE;QACT,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC,CAAC;SACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,wBAAwB,CACpC,SAA8C,EAC9C,SAA2B,EAC3B,UAA8B,EAC9B,OAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,UAAkB,EAClB,SAA2B,EAC3B,OAA4B;IAE5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO;QACH,WAAW,EAAE,QAAQ,CAAC,KAAK;QAC3B,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG;QACpC,WAAW,EAAE,MAAM,CAAC,KAAK;KAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,SAA6B,EAC7B,SAA2B,EAC3B,OAA4B;IAE5B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO;QACH,WAAW,EAAE,QAAQ,CAAC,KAAK;QAC3B,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG;QACpC,WAAW,EAAE,MAAM,CAAC,KAAK;KAC5B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,IAAkB,EAClB,QAAyB,EACzB,SAA2B,EAC3B,UAA8B,EAC9B,OAA4B;IAE5B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9C,MAAM,WAAW,GAAG;QAChB,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAC/B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW;SAC1D;QACD,GAAG,EAAE;YACD,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAC/B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,GAAG,YAAY;SACzE;KACJ,CAAC;IACF,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,OAAO,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC5C,SAAgC,EAChC,QAAyB,EACzB,SAA2B,EAC3B,UAA8B,EAC9B,OAA4B;IAE5B,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,OAAO,qBAAqB,CACxB,QAAQ,EACR,SAAS,EACT,UAAU,EACV,MAAM,EACN,SAAS,EACT,SAAS,CAAC,KAAK,CAClB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,QAAyB,EACzB,SAA2B,EAC3B,UAA8B,EAC9B,MAA2B,EAC3B,QAAiB,EACjB,OAA4B;IAE5B,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ;QAC/B,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9B,CAAC,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,qBAAqB,CAC1B,SAA0B,EAC1B,SAA2B,EAC3B,UAA8B,EAC9B,MAA2B,EAC3B,SAAc,EACd,WAAkB;IAElB,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACH,WAAW;YACX,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,UAAU;YACV,WAAW,EAAE,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC;SAC1D,CAAC;IACN,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9F,IAAI,WAA8B,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACxC,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACJ,WAAW,GAAG,cAAc,EAAE,CAAC;IACnC,CAAC;IACD,OAAO;QACH,WAAW;QACX,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;QAC/B,WAAW;QACX,UAAU,EAAE,MAAM;QAClB,WAAW;KACd,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,IAAY,EACZ,cAA2C;IAE3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,cAAc,IAAI,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAA0B;IACjE,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,OAAO;YACR,OAAO,2BAA2B,CAAC;QACvC,KAAK,aAAa;YACd,OAAO,mCAAmC,CAAC;IACnD,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAc,EAAE,SAA2B;IACnE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACrD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE,CAAC;YACtD,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAQ;IAC9B,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,cAAc,CAAC,SAAc,EAAE,SAA2B,EAAE,UAA8B;IAC/F,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAoB,EAAE,WAAmB;IAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;IACzD,OAAO;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE;QAC1C,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE;KAChE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAAyB,EACzB,SAA2B,EAC3B,UAA8B,EAC9B,QAAgB,EAChB,WAAkB,EAClB,OAA4B;IAE5B,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/F,OAAO,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,QAAiB,EAAE,MAA2B;IACpF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE;QACnE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;KAC7F,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,WAAW,CAAC;IAClC,OAAO;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,EAAE;QACnG,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,aAAa,EAAE;KAClG,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAAY;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE;QAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE;KAC5C,CAAC;AACN,CAAC;AAED,SAAS,cAAc;IACnB,OAAO;QACH,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAChC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;KACjC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,QAAyB,EACzB,SAA2B,EAC3B,UAA8B,EAC9B,OAA4B;IAE5B,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAChF,IAAI,IAAI,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,GAAG,mCAAmC,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC3F,IAAI,IAAI,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YACjE,IAAI,IAAI,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,iCAAiC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC7E,IAAI,IAAI,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC/F,IAAI,IAAI,EAAE,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,gCAAgC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACxF,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACrG,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,gCAAgC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvG,IAAI,IAAI,EAAE,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAY;IAC1B,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;AACnG,CAAC;AAED,SAAS,aAAa,CAAC,IAAW,EAAE,KAAY;IAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAsB;IAC5D,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,IAAsB,EACtB,UAAmB,EACnB,cAA+B;IAE/B,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW;QAC3B,CAAC,CAAE;YACC,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACZ;QACb,CAAC,CAAC,IAAI,CAAC;IACX,OAAO;QACH,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,UAAU;QAC1D,MAAM;QACN,cAAc;KACjB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0CAA0C,CACtD,IAAsB,EACtB,UAAmB;IAEnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAa,CAAC;IACtD,MAAM,cAAc,GAAG;QACnB,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE;KACrB,CAAC;IACrB,OAAO;QACH,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,UAAU;QAC1D,MAAM;QACN,cAAc;KACjB,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
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;