@reqlan/language 1.5.0 → 1.6.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 (47) hide show
  1. package/README.md +26 -2
  2. package/out/file-path-rewrite.d.ts +8 -1
  3. package/out/file-path-rewrite.js +63 -12
  4. package/out/file-path-rewrite.js.map +1 -1
  5. package/out/index.d.ts +3 -0
  6. package/out/index.js +3 -0
  7. package/out/index.js.map +1 -1
  8. package/out/reqlan-code-action-provider.d.ts +13 -0
  9. package/out/reqlan-code-action-provider.js +59 -1
  10. package/out/reqlan-code-action-provider.js.map +1 -1
  11. package/out/reqlan-comment-rename.d.ts +28 -0
  12. package/out/reqlan-comment-rename.js +113 -0
  13. package/out/reqlan-comment-rename.js.map +1 -0
  14. package/out/reqlan-idea-refactor.d.ts +23 -0
  15. package/out/reqlan-idea-refactor.js +158 -0
  16. package/out/reqlan-idea-refactor.js.map +1 -0
  17. package/out/reqlan-import-bindings.d.ts +9 -1
  18. package/out/reqlan-import-bindings.js +9 -9
  19. package/out/reqlan-import-bindings.js.map +1 -1
  20. package/out/reqlan-module.js +3 -1
  21. package/out/reqlan-module.js.map +1 -1
  22. package/out/reqlan-path-references.js.map +1 -1
  23. package/out/reqlan-path-resolve.d.ts +10 -2
  24. package/out/reqlan-path-resolve.js +25 -14
  25. package/out/reqlan-path-resolve.js.map +1 -1
  26. package/out/reqlan-rename-provider.d.ts +15 -0
  27. package/out/reqlan-rename-provider.js +84 -0
  28. package/out/reqlan-rename-provider.js.map +1 -0
  29. package/out/reqlan-scope.js +2 -0
  30. package/out/reqlan-scope.js.map +1 -1
  31. package/out/reqlan-validator.d.ts +6 -0
  32. package/out/reqlan-validator.js +7 -9
  33. package/out/reqlan-validator.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/file-path-rewrite.ts +89 -12
  36. package/src/index.ts +10 -0
  37. package/src/reqlan-code-action-provider.ts +73 -1
  38. package/src/reqlan-comment-rename.ts +151 -0
  39. package/src/reqlan-idea-refactor.ts +222 -0
  40. package/src/reqlan-import-bindings.ts +9 -10
  41. package/src/reqlan-module.ts +3 -1
  42. package/src/reqlan-path-references.ts +2 -0
  43. package/src/reqlan-path-resolve.ts +30 -15
  44. package/src/reqlan-rename-provider.ts +124 -0
  45. package/src/reqlan-scope.ts +2 -0
  46. package/src/reqlan-validator.ts +6 -11
  47. package/src/reqlan.langium +5 -1
@@ -0,0 +1,158 @@
1
+ import { AstUtils } from 'langium';
2
+ import { isIdea, isModel, isOneLinerIdea } from './generated/ast.js';
3
+ import { buildFromImportEdit, findImportInsertPosition, relativeRqImportPath } from './reqlan-import-edits.js';
4
+ export function isRefactorIdeaDeclaration(node) {
5
+ return isIdea(node) || isOneLinerIdea(node);
6
+ }
7
+ export function ideaDeclarationText(document, idea) {
8
+ const range = idea.$cstNode?.range;
9
+ if (!range) {
10
+ return undefined;
11
+ }
12
+ return document.textDocument.getText(range);
13
+ }
14
+ export function planIdeaDeleteEdits(idea, references, documentsText) {
15
+ const byUri = new Map();
16
+ const declarationDoc = AstUtils.getDocument(idea);
17
+ const declarationUri = declarationDoc.uri.toString();
18
+ const declarationRange = expandDeclarationRange(idea);
19
+ if (declarationRange) {
20
+ pushEdit(byUri, declarationUri, { range: declarationRange, newText: '' });
21
+ }
22
+ for (const reference of references) {
23
+ const uri = reference.sourceUri.toString();
24
+ if (uri === declarationUri && rangesOverlap(reference.segment.range, declarationRange)) {
25
+ continue;
26
+ }
27
+ const clearRange = expandReferenceClearRange(documentsText?.get(uri), reference.segment.range);
28
+ pushEdit(byUri, uri, { range: clearRange, newText: '' });
29
+ }
30
+ if (documentsText) {
31
+ for (const [uri, text] of documentsText) {
32
+ for (const edit of planCommentReferenceRemovals(text, idea.name)) {
33
+ pushEdit(byUri, uri, edit);
34
+ }
35
+ }
36
+ }
37
+ return toDocumentEdits(byUri);
38
+ }
39
+ export function planIdeaMoveEdits(input) {
40
+ const ideaText = ideaDeclarationText(input.sourceDocument, input.idea);
41
+ if (!ideaText) {
42
+ return [];
43
+ }
44
+ const byUri = new Map();
45
+ const sourceUri = input.sourceDocument.uri.toString();
46
+ const destUri = input.destinationDocument.uri.toString();
47
+ const declarationRange = expandDeclarationRange(input.idea);
48
+ if (declarationRange) {
49
+ pushEdit(byUri, sourceUri, { range: declarationRange, newText: '' });
50
+ }
51
+ const destModel = input.destinationDocument.parseResult.value;
52
+ if (isModel(destModel)) {
53
+ const insert = findIdeaInsertPosition(destModel);
54
+ pushEdit(byUri, destUri, {
55
+ range: { start: insert, end: insert },
56
+ newText: `${ideaText}\n`
57
+ });
58
+ }
59
+ if (sourceKeepsReferences(input.references, sourceUri, declarationRange)) {
60
+ const importPath = relativeRqImportPath(input.sourceDocument.uri, input.destinationDocument.uri);
61
+ const importEdit = buildFromImportEdit(input.sourceDocument, importPath, input.idea.name);
62
+ if (importEdit) {
63
+ pushEdit(byUri, sourceUri, importEdit);
64
+ }
65
+ }
66
+ return toDocumentEdits(byUri);
67
+ }
68
+ function sourceKeepsReferences(references, sourceUri, declarationRange) {
69
+ return references.some(reference => reference.sourceUri.toString() === sourceUri
70
+ && !rangesOverlap(reference.segment.range, declarationRange));
71
+ }
72
+ function findIdeaInsertPosition(model) {
73
+ const lastElement = model.elements[model.elements.length - 1];
74
+ if (lastElement?.$cstNode) {
75
+ const end = lastElement.$cstNode.range.end;
76
+ return { line: end.line + 1, character: 0 };
77
+ }
78
+ return findImportInsertPosition(model).position;
79
+ }
80
+ function expandDeclarationRange(idea) {
81
+ const range = idea.$cstNode?.range;
82
+ if (!range) {
83
+ return undefined;
84
+ }
85
+ return {
86
+ start: { line: range.start.line, character: 0 },
87
+ end: { line: range.end.line + 1, character: 0 }
88
+ };
89
+ }
90
+ function expandReferenceClearRange(text, range) {
91
+ if (!text) {
92
+ return range;
93
+ }
94
+ const line = text.split(/\r?\n/)[range.start.line] ?? '';
95
+ const before = line.slice(0, range.start.character);
96
+ const after = line.slice(range.end.character);
97
+ const wikiOpen = before.endsWith('[[') ? 2 : before.endsWith('[') ? 1 : 0;
98
+ const wikiClose = after.startsWith(']]') ? 2 : after.startsWith(']') ? 1 : 0;
99
+ if (wikiOpen > 0 && wikiClose > 0) {
100
+ return {
101
+ start: { line: range.start.line, character: range.start.character - wikiOpen },
102
+ end: { line: range.end.line, character: range.end.character + wikiClose }
103
+ };
104
+ }
105
+ return range;
106
+ }
107
+ function planCommentReferenceRemovals(text, ideaName) {
108
+ const edits = [];
109
+ const pattern = /rq:\s*\[[^\]]*\]/g;
110
+ for (const match of text.matchAll(pattern)) {
111
+ const body = match[0];
112
+ if (!new RegExp(`(\\.|\\[)${escapeRegExp(ideaName)}(\\]|$)`).test(body)) {
113
+ continue;
114
+ }
115
+ const start = offsetToPosition(text, match.index ?? 0);
116
+ const end = offsetToPosition(text, (match.index ?? 0) + body.length);
117
+ edits.push({ range: { start, end }, newText: '' });
118
+ }
119
+ return edits;
120
+ }
121
+ function pushEdit(map, uri, edit) {
122
+ const list = map.get(uri) ?? [];
123
+ list.push(edit);
124
+ map.set(uri, list);
125
+ }
126
+ function toDocumentEdits(byUri) {
127
+ return [...byUri.entries()].map(([uri, edits]) => ({
128
+ uri,
129
+ edits: [...edits].sort((left, right) => {
130
+ if (left.range.start.line !== right.range.start.line) {
131
+ return right.range.start.line - left.range.start.line;
132
+ }
133
+ return right.range.start.character - left.range.start.character;
134
+ })
135
+ }));
136
+ }
137
+ function rangesOverlap(left, right) {
138
+ if (!right) {
139
+ return false;
140
+ }
141
+ const leftStart = left.start.line * 1e9 + left.start.character;
142
+ const leftEnd = left.end.line * 1e9 + left.end.character;
143
+ const rightStart = right.start.line * 1e9 + right.start.character;
144
+ const rightEnd = right.end.line * 1e9 + right.end.character;
145
+ return leftStart < rightEnd && rightStart < leftEnd;
146
+ }
147
+ function offsetToPosition(text, offset) {
148
+ const before = text.slice(0, offset);
149
+ const lines = before.split(/\r?\n/);
150
+ return {
151
+ line: lines.length - 1,
152
+ character: lines[lines.length - 1].length
153
+ };
154
+ }
155
+ function escapeRegExp(value) {
156
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
157
+ }
158
+ //# sourceMappingURL=reqlan-idea-refactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-idea-refactor.js","sourceRoot":"","sources":["../src/reqlan-idea-refactor.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,20 @@ export interface ImportBinding {
6
6
  property: 'alias' | 'idea';
7
7
  }
8
8
  export type PathBearingImport = Exclude<Import, InvalidFromImport>;
9
+ /**
10
+ * Local binding name for a from-import specifier.
11
+ * When `as alias` is present, only the alias is bound; the imported idea's base name
12
+ * remains free for a local idea (see import_tokenisation).
13
+ */
9
14
  export declare function specifierBindingName(specifier: FromImportSpecifier): string | undefined;
10
15
  /** True when a from-import has the required `import <idea>` clause. */
11
16
  export declare function isWellFormedFromImport(importDecl: FromImport): boolean;
12
17
  export declare function isPathBearingImport(importDecl: Import): importDecl is PathBearingImport;
13
18
  export declare function importPathOf(importDecl: Import): string | undefined;
19
+ /**
20
+ * Names bound into the importing file's local namespace.
21
+ * Aliased imports bind only the alias — never the imported idea's base name.
22
+ */
14
23
  export declare function importBindings(importDecl: Import): ImportBinding[];
15
- export declare function importedIdeaNames(importDecl: Import): string[];
16
24
  export declare function findNamespaceImportByAlias(imports: Import[], alias: string): Import | undefined;
17
25
  export declare function findFromImportSpecifierByBinding(imports: Import[], bindingName: string): FromImportSpecifier | undefined;
@@ -1,4 +1,9 @@
1
1
  import { isFromImport, isInvalidFromImport, isNamespaceImport, isQualifiedImport } from './generated/ast.js';
2
+ /**
3
+ * Local binding name for a from-import specifier.
4
+ * When `as alias` is present, only the alias is bound; the imported idea's base name
5
+ * remains free for a local idea (see import_tokenisation).
6
+ */
2
7
  export function specifierBindingName(specifier) {
3
8
  return specifier.alias ?? specifier.idea.$refText;
4
9
  }
@@ -12,6 +17,10 @@ export function isPathBearingImport(importDecl) {
12
17
  export function importPathOf(importDecl) {
13
18
  return isPathBearingImport(importDecl) ? importDecl.path : undefined;
14
19
  }
20
+ /**
21
+ * Names bound into the importing file's local namespace.
22
+ * Aliased imports bind only the alias — never the imported idea's base name.
23
+ */
15
24
  export function importBindings(importDecl) {
16
25
  if (isFromImport(importDecl)) {
17
26
  // Mistaken `from "path" as alias` (no idea specifiers) must not bind a name.
@@ -49,15 +58,6 @@ export function importBindings(importDecl) {
49
58
  }
50
59
  return [];
51
60
  }
52
- export function importedIdeaNames(importDecl) {
53
- if (isFromImport(importDecl)) {
54
- return importDecl.specifiers.map(specifier => specifier.idea.$refText);
55
- }
56
- if (isQualifiedImport(importDecl)) {
57
- return [importDecl.idea.$refText];
58
- }
59
- return [];
60
- }
61
61
  export function findNamespaceImportByAlias(imports, alias) {
62
62
  for (const importDecl of imports) {
63
63
  if (!isNamespaceImport(importDecl) || importDecl.alias !== alias) {
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-import-bindings.js","sourceRoot":"","sources":["../src/reqlan-import-bindings.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EAKpB,MAAM,oBAAoB,CAAC;AAU5B,MAAM,UAAU,oBAAoB,CAAC,SAA8B;IAC/D,OAAO,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB,CAAC,UAAsB;IACzD,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IAClD,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC3C,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC7C,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,6EAA6E;QAC7E,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,CAAC;oBACJ,IAAI;oBACJ,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAgB,CAAC,CAAC,CAAC,MAAe;iBACjE,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC;gBACJ,IAAI;gBACJ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;aAChD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAChD,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAiB,EAAE,KAAa;IACvE,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC/D,SAAS;QACb,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC5C,OAAiB,EACjB,WAAmB;IAEnB,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CACxC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,WAAW,CACvD,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"reqlan-import-bindings.js","sourceRoot":"","sources":["../src/reqlan-import-bindings.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { ReqlanCodeActionProvider } from './reqlan-code-action-provider.js';
13
13
  import { sharedAttributeCatalog } from './reqlan-attribute-catalog.js';
14
14
  import { ReqlanCodeLensProvider } from './reqlan-code-lens-provider.js';
15
15
  import { ReqlanInlayHintProvider } from './reqlan-inlay-hint-provider.js';
16
+ import { ReqlanRenameProvider } from './reqlan-rename-provider.js';
16
17
  import { ReqlanSemanticTokenProvider } from './reqlan-semantic-token-provider.js';
17
18
  import { ReqlanTokenBuilder } from './reqlan-token-builder.js';
18
19
  import { registerRqIgnoreErrorFiltering } from './reqlan-ignore-error.js';
@@ -44,7 +45,8 @@ export const ReqlanModule = {
44
45
  InlayHintProvider: services => new ReqlanInlayHintProvider(services),
45
46
  CodeLensProvider: services => new ReqlanCodeLensProvider(services),
46
47
  CompletionProvider: services => new ReqlanCompletionProvider(services, sharedAttributeCatalog),
47
- CodeActionProvider: services => new ReqlanCodeActionProvider(services)
48
+ CodeActionProvider: services => new ReqlanCodeActionProvider(services),
49
+ RenameProvider: services => new ReqlanRenameProvider(services)
48
50
  }
49
51
  };
50
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAkH,MAAM,aAAa,CAAC;AAC7L,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAiBlF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyE;IAC9F,UAAU,EAAE;QACR,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC;KAC7D;IACD,UAAU,EAAE;QACR,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC;QAC9C,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE;QAC5C,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC;QAClE,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC;KAC/D;IACD,MAAM,EAAE;QACJ,aAAa,EAAE,yBAAyB;QACxC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE;KAC/C;IACD,GAAG,EAAE;QACD,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC;QACtE,yBAAyB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,+BAA+B,CAAC,QAAQ,CAAC;QACpF,oBAAoB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,0BAA0B,CAAC,QAAQ,CAAC;QAC1E,qBAAqB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,2BAA2B,CAAC,QAAQ,CAAC;QAC5E,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,QAAQ,CAAC;QACpE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC;QAClE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,CAAC;QAC9F,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC;KACzE;CACJ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,MAAM,CACjB,yBAAyB,CAAC,OAAO,CAAC,EAClC,2BAA2B,CAC9B,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CACjB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,EAC/B,qBAAqB,EACrB,YAAY,CACf,CAAC;IACF,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACtB,wCAAwC;QACxC,6DAA6D;QAC7D,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"reqlan-module.js","sourceRoot":"","sources":["../src/reqlan-module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-path-references.js","sourceRoot":"","sources":["../src/reqlan-path-references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-path-references.js","sourceRoot":"","sources":["../src/reqlan-path-references.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,10 @@
6
6
  */
7
7
  import type { FileSystemProvider, LangiumDocument, URI } from 'langium';
8
8
  export declare const DEFAULT_IMPORT_ROOT_ALIAS = "@";
9
- export declare const RQCONFIG_FILENAME = ".rqconfig.json";
9
+ /** Base marker / application-memory directory name (must match analytical APPLICATION_MEMORY_DIR). */
10
+ export declare const REQLAN_DIR = ".reqlan";
11
+ /** Config filename under `<base>/.reqlan/`. */
12
+ export declare const CONFIG_FILENAME = "config.json";
10
13
  export interface ImportRootMapping {
11
14
  alias: string;
12
15
  /** Absolute URI of that alias’s import-root directory, when set. */
@@ -45,7 +48,7 @@ export interface PathResolveContext {
45
48
  workspaceFolderUri?: URI;
46
49
  fileSystem?: FileSystemProvider;
47
50
  /**
48
- * Preloaded config. `undefined` loads nearest `.rqconfig.json` when fileSystem is set.
51
+ * Preloaded config. `undefined` loads the owning base’s `.reqlan/config.json` when fileSystem is set.
49
52
  * `null` skips loading and uses defaults only.
50
53
  */
51
54
  config?: RqConfig | null;
@@ -58,6 +61,11 @@ export declare function matchImportRootMapping(path: string, mappings: readonly
58
61
  remainder: string;
59
62
  } | undefined;
60
63
  export declare function findWorkspaceFolderUri(documentUri: URI, folderUris: readonly URI[] | undefined): URI | undefined;
64
+ /**
65
+ * Walk ancestors from startDir. The first directory that owns `.reqlan/` is the applying base.
66
+ * Load that base’s `.reqlan/config.json` when present; otherwise return undefined (defaults).
67
+ * Does not inherit a parent base’s config.
68
+ */
61
69
  export declare function loadApplyingRqConfig(startDirUri: URI, fileSystem: FileSystemProvider): RqConfig | undefined;
62
70
  export declare function resolveRqConfig(document: LangiumDocument, context?: PathResolveContext): RqConfig;
63
71
  export declare function resolveImportRootUri(document: LangiumDocument, context: PathResolveContext | undefined, mapping: ImportRootMapping): URI | undefined;
@@ -1,6 +1,9 @@
1
1
  import { URI as UriCtor, UriUtils } from 'langium';
2
2
  export const DEFAULT_IMPORT_ROOT_ALIAS = '@';
3
- export const RQCONFIG_FILENAME = '.rqconfig.json';
3
+ /** Base marker / application-memory directory name (must match analytical APPLICATION_MEMORY_DIR). */
4
+ export const REQLAN_DIR = '.reqlan';
5
+ /** Config filename under `<base>/.reqlan/`. */
6
+ export const CONFIG_FILENAME = 'config.json';
4
7
  export function defaultRqConfig() {
5
8
  return { importRoots: [{ alias: DEFAULT_IMPORT_ROOT_ALIAS }] };
6
9
  }
@@ -49,12 +52,21 @@ export function findWorkspaceFolderUri(documentUri, folderUris) {
49
52
  }
50
53
  return best;
51
54
  }
55
+ /**
56
+ * Walk ancestors from startDir. The first directory that owns `.reqlan/` is the applying base.
57
+ * Load that base’s `.reqlan/config.json` when present; otherwise return undefined (defaults).
58
+ * Does not inherit a parent base’s config.
59
+ */
52
60
  export function loadApplyingRqConfig(startDirUri, fileSystem) {
53
61
  let dir = startDirUri;
54
62
  for (;;) {
55
- const configUri = UriUtils.joinPath(dir, RQCONFIG_FILENAME);
56
- if (fileSystem.existsSync(configUri) && !fileSystem.statSync(configUri).isDirectory) {
57
- return parseRqConfig(configUri, fileSystem);
63
+ const reqlanDir = UriUtils.joinPath(dir, REQLAN_DIR);
64
+ if (fileSystem.existsSync(reqlanDir) && fileSystem.statSync(reqlanDir).isDirectory) {
65
+ const configUri = UriUtils.joinPath(reqlanDir, CONFIG_FILENAME);
66
+ if (fileSystem.existsSync(configUri) && !fileSystem.statSync(configUri).isDirectory) {
67
+ return parseRqConfig(configUri, dir, fileSystem);
68
+ }
69
+ return undefined;
58
70
  }
59
71
  const parent = UriUtils.dirname(dir);
60
72
  if (UriUtils.equals(parent, dir)) {
@@ -63,7 +75,7 @@ export function loadApplyingRqConfig(startDirUri, fileSystem) {
63
75
  dir = parent;
64
76
  }
65
77
  }
66
- function parseRqConfig(configUri, fileSystem) {
78
+ function parseRqConfig(configUri, baseRootUri, fileSystem) {
67
79
  let raw;
68
80
  try {
69
81
  raw = JSON.parse(fileSystem.readFileSync(configUri));
@@ -75,11 +87,11 @@ function parseRqConfig(configUri, fileSystem) {
75
87
  return undefined;
76
88
  }
77
89
  const record = raw;
78
- const importRoots = parseImportRoots(record.importRoots, configUri);
90
+ const importRoots = parseImportRoots(record.importRoots, baseRootUri);
79
91
  if (record.importRoots !== undefined && importRoots === undefined) {
80
92
  return undefined;
81
93
  }
82
- const parsedExport = parseExportConfig(record.export, UriUtils.dirname(configUri));
94
+ const parsedExport = parseExportConfig(record.export, baseRootUri);
83
95
  const config = {
84
96
  importRoots: importRoots ?? defaultRqConfig().importRoots
85
97
  };
@@ -88,7 +100,7 @@ function parseRqConfig(configUri, fileSystem) {
88
100
  }
89
101
  return config;
90
102
  }
91
- function parseImportRootEntry(entry, configDir) {
103
+ function parseImportRootEntry(entry, baseRootUri) {
92
104
  if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {
93
105
  return undefined;
94
106
  }
@@ -100,28 +112,27 @@ function parseImportRootEntry(entry, configDir) {
100
112
  if (typeof record.root === 'string' && record.root.length > 0) {
101
113
  mapping.rootUri = isAbsoluteUriOrPath(record.root)
102
114
  ? toDirectoryUri(record.root)
103
- : UriUtils.resolvePath(configDir, record.root);
115
+ : UriUtils.resolvePath(baseRootUri, record.root);
104
116
  }
105
117
  return mapping;
106
118
  }
107
- function parseImportRoots(raw, configUri) {
119
+ function parseImportRoots(raw, baseRootUri) {
108
120
  if (raw === undefined) {
109
121
  return undefined;
110
122
  }
111
123
  if (!Array.isArray(raw)) {
112
124
  return undefined;
113
125
  }
114
- const configDir = UriUtils.dirname(configUri);
115
126
  const importRoots = [];
116
127
  for (const entry of raw) {
117
- const mapping = parseImportRootEntry(entry, configDir);
128
+ const mapping = parseImportRootEntry(entry, baseRootUri);
118
129
  if (mapping) {
119
130
  importRoots.push(mapping);
120
131
  }
121
132
  }
122
133
  return importRoots.length > 0 ? importRoots : defaultRqConfig().importRoots;
123
134
  }
124
- function parseExportConfig(raw, configDir) {
135
+ function parseExportConfig(raw, baseRootUri) {
125
136
  if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
126
137
  return undefined;
127
138
  }
@@ -130,7 +141,7 @@ function parseExportConfig(raw, configDir) {
130
141
  if (typeof record.outputFolder === 'string' && record.outputFolder.trim().length > 0) {
131
142
  config.outputFolder = isAbsoluteUriOrPath(record.outputFolder)
132
143
  ? toDirectoryUri(record.outputFolder).fsPath
133
- : UriUtils.resolvePath(configDir, record.outputFolder).fsPath;
144
+ : UriUtils.resolvePath(baseRootUri, record.outputFolder).fsPath;
134
145
  }
135
146
  if (typeof record.templateId === 'string' && record.templateId.trim().length > 0) {
136
147
  config.templateId = record.templateId.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"reqlan-path-resolve.js","sourceRoot":"","sources":["../src/reqlan-path-resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqlan-path-resolve.js","sourceRoot":"","sources":["../src/reqlan-path-resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * LSP rename for reqlan symbols, including `rq:[...]` comment idea tokens in .rq docs.
3
+ * rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_rename]
4
+ * rq:["../../../reqlan rq/extension/syntax/features-syntax.rq".refactor_support]
5
+ */
6
+ import type { LangiumDocument } from 'langium';
7
+ import { DefaultRenameProvider } from 'langium/lsp';
8
+ import type { RenameParams, WorkspaceEdit } from 'vscode-languageserver';
9
+ import type { ReqlanServices } from './reqlan-module.js';
10
+ export declare class ReqlanRenameProvider extends DefaultRenameProvider {
11
+ private readonly documents;
12
+ constructor(services: ReqlanServices);
13
+ rename(document: LangiumDocument, params: RenameParams): Promise<WorkspaceEdit | undefined>;
14
+ private resolveRenameTarget;
15
+ }
@@ -0,0 +1,84 @@
1
+ import { AstUtils, CstUtils } from 'langium';
2
+ import { DefaultRenameProvider } from 'langium/lsp';
3
+ import { TextEdit } from 'vscode-languageserver';
4
+ import { isIdea, isIdeaSet, isOneLinerIdea } from './generated/ast.js';
5
+ import { findCommentIdeaRenameMatches } from './reqlan-comment-rename.js';
6
+ export class ReqlanRenameProvider extends DefaultRenameProvider {
7
+ constructor(services) {
8
+ super(services);
9
+ this.documents = services.shared.workspace.LangiumDocuments;
10
+ }
11
+ async rename(document, params) {
12
+ const base = await super.rename(document, params);
13
+ const target = this.resolveRenameTarget(document, params.position);
14
+ const oldName = targetName(target, node => this.nameProvider.getName(node));
15
+ if (!oldName || oldName === params.newName) {
16
+ return base;
17
+ }
18
+ const declarationDoc = target ? AstUtils.getDocument(target) : document;
19
+ const declarationPath = declarationDoc.uri.path;
20
+ const changes = { ...(base?.changes ?? {}) };
21
+ for (const doc of this.documents.all) {
22
+ const uri = doc.uri.toString();
23
+ const text = doc.textDocument.getText();
24
+ const matches = findCommentIdeaRenameMatches(text, oldName, { includePathless: true });
25
+ const edits = matches
26
+ .filter(match => commentMatchApplies(match.path, declarationPath, doc.uri.toString() === declarationDoc.uri.toString()))
27
+ .map(match => ({
28
+ range: match.range,
29
+ newText: params.newName
30
+ }))
31
+ .filter(edit => !(changes[uri] ?? []).some(existing => rangesEqual(existing.range, edit.range)));
32
+ if (edits.length === 0) {
33
+ continue;
34
+ }
35
+ changes[uri] = [
36
+ ...(changes[uri] ?? []),
37
+ ...edits.map(edit => TextEdit.replace(edit.range, edit.newText))
38
+ ];
39
+ }
40
+ return Object.keys(changes).length > 0 ? { changes } : base;
41
+ }
42
+ resolveRenameTarget(document, position) {
43
+ const rootNode = document.parseResult.value.$cstNode;
44
+ if (!rootNode) {
45
+ return undefined;
46
+ }
47
+ const offset = document.textDocument.offsetAt(position);
48
+ const leafNode = CstUtils.findDeclarationNodeAtOffset(rootNode, offset, this.grammarConfig.nameRegexp);
49
+ if (!leafNode) {
50
+ return undefined;
51
+ }
52
+ const declarations = this.references.findDeclarations(leafNode);
53
+ return declarations[0] ?? leafNode.astNode;
54
+ }
55
+ }
56
+ function targetName(target, getName) {
57
+ if (!target) {
58
+ return undefined;
59
+ }
60
+ if (isIdea(target) || isOneLinerIdea(target) || isIdeaSet(target)) {
61
+ return target.name;
62
+ }
63
+ return getName(target);
64
+ }
65
+ function commentMatchApplies(path, declarationPath, isDeclarationDocument) {
66
+ if (path === undefined) {
67
+ return isDeclarationDocument;
68
+ }
69
+ const normalizedDecl = declarationPath.replace(/\\/g, '/');
70
+ const normalizedPath = path.replace(/\\/g, '/');
71
+ const declBase = normalizedDecl.slice(normalizedDecl.lastIndexOf('/') + 1);
72
+ const pathBase = normalizedPath.slice(normalizedPath.lastIndexOf('/') + 1);
73
+ return normalizedDecl.endsWith(normalizedPath)
74
+ || normalizedDecl.endsWith(`${normalizedPath.replace(/\.rq$/i, '')}.rq`)
75
+ || declBase === pathBase
76
+ || declBase.replace(/\.rq$/i, '') === pathBase.replace(/\.rq$/i, '');
77
+ }
78
+ function rangesEqual(left, right) {
79
+ return left.start.line === right.start.line
80
+ && left.start.character === right.start.character
81
+ && left.end.line === right.end.line
82
+ && left.end.character === right.end.character;
83
+ }
84
+ //# sourceMappingURL=reqlan-rename-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reqlan-rename-provider.js","sourceRoot":"","sources":["../src/reqlan-rename-provider.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,8 @@ export class ReqlanScopeProvider extends DefaultScopeProvider {
96
96
  const descriptions = model.elements
97
97
  .filter(element => isIdea(element) || isOneLinerIdea(element))
98
98
  .map(idea => this.descriptions.createDescription(idea, idea.name, document));
99
+ // Imported ideas enter scope under their binding name only (alias when present).
100
+ // See import_tokenisation: aliased base names are not reserved locally.
99
101
  for (const importDecl of model.imports) {
100
102
  if (isFromImport(importDecl)) {
101
103
  for (const specifier of importDecl.specifiers) {