@reqlan/language 1.5.3 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -3
- package/out/file-path-rewrite.d.ts +8 -1
- package/out/file-path-rewrite.js +63 -12
- package/out/file-path-rewrite.js.map +1 -1
- package/out/index.d.ts +3 -0
- package/out/index.js +3 -0
- package/out/index.js.map +1 -1
- package/out/reqlan-code-action-provider.d.ts +13 -0
- package/out/reqlan-code-action-provider.js +59 -1
- package/out/reqlan-code-action-provider.js.map +1 -1
- package/out/reqlan-comment-rename.d.ts +28 -0
- package/out/reqlan-comment-rename.js +113 -0
- package/out/reqlan-comment-rename.js.map +1 -0
- package/out/reqlan-idea-refactor.d.ts +23 -0
- package/out/reqlan-idea-refactor.js +158 -0
- package/out/reqlan-idea-refactor.js.map +1 -0
- package/out/reqlan-import-bindings.d.ts +9 -1
- package/out/reqlan-import-bindings.js +9 -9
- package/out/reqlan-import-bindings.js.map +1 -1
- package/out/reqlan-module.js +3 -1
- package/out/reqlan-module.js.map +1 -1
- package/out/reqlan-path-references.js.map +1 -1
- package/out/reqlan-path-resolve.d.ts +10 -2
- package/out/reqlan-path-resolve.js +25 -14
- package/out/reqlan-path-resolve.js.map +1 -1
- package/out/reqlan-rename-provider.d.ts +15 -0
- package/out/reqlan-rename-provider.js +84 -0
- package/out/reqlan-rename-provider.js.map +1 -0
- package/out/reqlan-scope.js +2 -0
- package/out/reqlan-scope.js.map +1 -1
- package/out/reqlan-validator.d.ts +6 -0
- package/out/reqlan-validator.js +7 -9
- package/out/reqlan-validator.js.map +1 -1
- package/package.json +1 -1
- package/src/file-path-rewrite.ts +89 -12
- package/src/index.ts +10 -0
- package/src/reqlan-code-action-provider.ts +73 -1
- package/src/reqlan-comment-rename.ts +151 -0
- package/src/reqlan-idea-refactor.ts +222 -0
- package/src/reqlan-import-bindings.ts +9 -10
- package/src/reqlan-module.ts +3 -1
- package/src/reqlan-path-references.ts +2 -0
- package/src/reqlan-path-resolve.ts +30 -15
- package/src/reqlan-rename-provider.ts +124 -0
- package/src/reqlan-scope.ts +2 -0
- package/src/reqlan-validator.ts +6 -11
- package/src/reqlan.langium +5 -1
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/littletuna4/reqlan/HEAD/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/littletuna4/reqlan/HEAD/site/public/logo.svg" alt="reqlan logo" width="128" height="128">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# @reqlan/language
|
|
@@ -21,14 +21,26 @@ npm install @reqlan/language
|
|
|
21
21
|
|
|
22
22
|
## Links
|
|
23
23
|
|
|
24
|
-
- [Site](https://
|
|
24
|
+
- [Site](https://reqlan.com)
|
|
25
25
|
- [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=reqlan.reqlan-extension)
|
|
26
26
|
- [Open VSX](https://open-vsx.org/extension/reqlan/reqlan-extension)
|
|
27
27
|
- [GitHub repository](https://github.com/littletuna4/reqlan)
|
|
28
|
-
- [Contact](mailto:reqlan@
|
|
28
|
+
- [Contact](mailto:reqlan@reqlan.com)
|
|
29
29
|
|
|
30
30
|
## Changelog
|
|
31
31
|
|
|
32
|
+
### 1.6.1
|
|
33
|
+
|
|
34
|
+
#### Patch Changes
|
|
35
|
+
|
|
36
|
+
- 0a5649e: update the site base path, and untrack build artifacts
|
|
37
|
+
|
|
38
|
+
### 1.6.0
|
|
39
|
+
|
|
40
|
+
#### Minor Changes
|
|
41
|
+
|
|
42
|
+
- 54a2536: introduce bases, refine config, improvements to summary, site improvements.
|
|
43
|
+
|
|
32
44
|
### 1.5.3
|
|
33
45
|
|
|
34
46
|
#### Patch Changes
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Recompute relative file paths when a referencing file moves to a new directory
|
|
2
|
+
* Recompute relative file paths when a referencing file moves to a new directory,
|
|
3
|
+
* or when a referenced target file moves and inbound paths must be updated.
|
|
3
4
|
* rq:["../../../reqlan rq/extension/configuration.rq".configuration_import_roots]
|
|
4
5
|
* rq:["../../../reqlan rq/language/imports.rq".configuration_import_root_alias]
|
|
5
6
|
* rq:["../../../reqlan rq/extension/features-mutation-hooks.rq".move_file]
|
|
7
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_file_moves]
|
|
6
8
|
*/
|
|
7
9
|
import { URI } from 'langium';
|
|
8
10
|
import type { Range } from 'vscode-languageserver';
|
|
@@ -21,5 +23,10 @@ export interface PathRewriteOptions {
|
|
|
21
23
|
}
|
|
22
24
|
export declare function relativePathWithoutExtension(dirname: string, targetUri: URI): string;
|
|
23
25
|
export declare function rewriteRelativePath(path: string, oldFileUri: URI, newFileUri: URI, options?: PathRewriteOptions): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* When the *target* of a path moves, recompute the path as seen from the referencing file.
|
|
28
|
+
*/
|
|
29
|
+
export declare function rewritePathToMovedTarget(path: string, referencingFileUri: URI, oldTargetUri: URI, newTargetUri: URI, options?: PathRewriteOptions): string | undefined;
|
|
24
30
|
export declare function rewriteQuotedPath(path: string, oldFileUri: URI, newFileUri: URI, options?: PathRewriteOptions): string | undefined;
|
|
25
31
|
export declare function buildPathRewriteEdits(references: PathReference[], oldFileUri: URI, newFileUri: URI, formatReplacement: (path: string, newPath: string, range: Range) => string | undefined, options?: PathRewriteOptions): PathRewriteEdit[];
|
|
32
|
+
export declare function buildInboundPathRewriteEdits(references: PathReference[], referencingFileUri: URI, oldTargetUri: URI, newTargetUri: URI, formatReplacement: (path: string, newPath: string, range: Range) => string | undefined, options?: PathRewriteOptions): PathRewriteEdit[];
|
package/out/file-path-rewrite.js
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Recompute relative file paths when a referencing file moves to a new directory
|
|
2
|
+
* Recompute relative file paths when a referencing file moves to a new directory,
|
|
3
|
+
* or when a referenced target file moves and inbound paths must be updated.
|
|
3
4
|
* rq:["../../../reqlan rq/extension/configuration.rq".configuration_import_roots]
|
|
4
5
|
* rq:["../../../reqlan rq/language/imports.rq".configuration_import_root_alias]
|
|
5
6
|
* rq:["../../../reqlan rq/extension/features-mutation-hooks.rq".move_file]
|
|
7
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_file_moves]
|
|
6
8
|
*/
|
|
7
9
|
import { UriUtils } from 'langium';
|
|
10
|
+
import { importPathWithImplicitExtension } from './reqlan-imports.js';
|
|
8
11
|
import { DEFAULT_IMPORT_ROOT_ALIAS, matchImportRootMapping } from './reqlan-path-resolve.js';
|
|
9
12
|
function rewriteImportRoots(options) {
|
|
10
13
|
return options?.importRoots ?? [{ alias: DEFAULT_IMPORT_ROOT_ALIAS }];
|
|
11
14
|
}
|
|
15
|
+
function ensureDotRelative(path) {
|
|
16
|
+
return path.startsWith('.') ? path : `./${path}`;
|
|
17
|
+
}
|
|
18
|
+
function uriWithoutExtension(uri) {
|
|
19
|
+
const uriString = uri.toString();
|
|
20
|
+
const ext = UriUtils.extname(uri);
|
|
21
|
+
return ext ? uriString.slice(0, uriString.length - ext.length) : uriString;
|
|
22
|
+
}
|
|
23
|
+
function urisReferToSameTarget(left, right) {
|
|
24
|
+
return left.toString() === right.toString()
|
|
25
|
+
|| uriWithoutExtension(left) === uriWithoutExtension(right);
|
|
26
|
+
}
|
|
27
|
+
function pathHadExplicitExtension(path) {
|
|
28
|
+
const basename = path.slice(path.lastIndexOf('/') + 1);
|
|
29
|
+
return basename.includes('.', 1);
|
|
30
|
+
}
|
|
12
31
|
export function relativePathWithoutExtension(dirname, targetUri) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let relativePath = UriUtils.relative(dirname, uriWithoutExt);
|
|
16
|
-
if (!relativePath.startsWith('.')) {
|
|
17
|
-
relativePath = `./${relativePath}`;
|
|
18
|
-
}
|
|
19
|
-
return relativePath;
|
|
32
|
+
let relativePath = UriUtils.relative(dirname, uriWithoutExtension(targetUri));
|
|
33
|
+
return ensureDotRelative(relativePath);
|
|
20
34
|
}
|
|
21
35
|
export function rewriteRelativePath(path, oldFileUri, newFileUri, options) {
|
|
22
36
|
if (!path || path.startsWith('file://')) {
|
|
@@ -28,12 +42,34 @@ export function rewriteRelativePath(path, oldFileUri, newFileUri, options) {
|
|
|
28
42
|
const oldDir = UriUtils.dirname(oldFileUri);
|
|
29
43
|
const newDir = UriUtils.dirname(newFileUri);
|
|
30
44
|
const resolved = UriUtils.resolvePath(oldDir, path);
|
|
31
|
-
|
|
32
|
-
if (!relativePath.startsWith('.')) {
|
|
33
|
-
relativePath = `./${relativePath}`;
|
|
34
|
-
}
|
|
45
|
+
const relativePath = ensureDotRelative(UriUtils.relative(newDir, resolved));
|
|
35
46
|
return relativePath === path ? undefined : relativePath;
|
|
36
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* When the *target* of a path moves, recompute the path as seen from the referencing file.
|
|
50
|
+
*/
|
|
51
|
+
export function rewritePathToMovedTarget(path, referencingFileUri, oldTargetUri, newTargetUri, options) {
|
|
52
|
+
if (!path || path.startsWith('file://')) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
if (matchImportRootMapping(path, rewriteImportRoots(options)) !== undefined) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const refDir = UriUtils.dirname(referencingFileUri);
|
|
59
|
+
const candidates = [UriUtils.resolvePath(refDir, path)];
|
|
60
|
+
const withExt = importPathWithImplicitExtension(path);
|
|
61
|
+
if (withExt) {
|
|
62
|
+
candidates.push(UriUtils.resolvePath(refDir, withExt));
|
|
63
|
+
}
|
|
64
|
+
if (!candidates.some(candidate => urisReferToSameTarget(candidate, oldTargetUri))) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
const keepExtension = pathHadExplicitExtension(path);
|
|
68
|
+
const newRelative = keepExtension
|
|
69
|
+
? ensureDotRelative(UriUtils.relative(refDir, newTargetUri))
|
|
70
|
+
: relativePathWithoutExtension(refDir.toString(), newTargetUri);
|
|
71
|
+
return newRelative === path ? undefined : newRelative;
|
|
72
|
+
}
|
|
37
73
|
export function rewriteQuotedPath(path, oldFileUri, newFileUri, options) {
|
|
38
74
|
const rewritten = rewriteRelativePath(path, oldFileUri, newFileUri, options);
|
|
39
75
|
return rewritten === undefined ? undefined : JSON.stringify(rewritten);
|
|
@@ -53,4 +89,19 @@ export function buildPathRewriteEdits(references, oldFileUri, newFileUri, format
|
|
|
53
89
|
}
|
|
54
90
|
return edits;
|
|
55
91
|
}
|
|
92
|
+
export function buildInboundPathRewriteEdits(references, referencingFileUri, oldTargetUri, newTargetUri, formatReplacement, options) {
|
|
93
|
+
const edits = [];
|
|
94
|
+
for (const reference of references) {
|
|
95
|
+
const newPath = rewritePathToMovedTarget(reference.path, referencingFileUri, oldTargetUri, newTargetUri, options);
|
|
96
|
+
if (newPath === undefined) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const newText = formatReplacement(reference.path, newPath, reference.range);
|
|
100
|
+
if (newText === undefined) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
edits.push({ range: reference.range, newText });
|
|
104
|
+
}
|
|
105
|
+
return edits;
|
|
106
|
+
}
|
|
56
107
|
//# sourceMappingURL=file-path-rewrite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-path-rewrite.js","sourceRoot":"","sources":["../src/file-path-rewrite.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file-path-rewrite.js","sourceRoot":"","sources":["../src/file-path-rewrite.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAO,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EACH,yBAAyB,EACzB,sBAAsB,EAEzB,MAAM,0BAA0B,CAAC;AAiBlC,SAAS,kBAAkB,CAAC,OAA4B;IACpD,OAAO,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAQ;IACjC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAS,EAAE,KAAU;IAChD,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;WACpC,mBAAmB,CAAC,IAAI,CAAC,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAe,EAAE,SAAc;IACxE,IAAI,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,IAAY,EACZ,UAAe,EACf,UAAe,EACf,OAA4B;IAE5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,OAAO,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACpC,IAAY,EACZ,kBAAuB,EACvB,YAAiB,EACjB,YAAiB,EACjB,OAA4B;IAE5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,CAAC;QACV,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,aAAa;QAC7B,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IACpE,OAAO,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,IAAY,EACZ,UAAe,EACf,UAAe,EACf,OAA4B;IAE5B,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7E,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,UAA2B,EAC3B,UAAe,EACf,UAAe,EACf,iBAAsF,EACtF,OAA4B;IAE5B,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,UAA2B,EAC3B,kBAAuB,EACvB,YAAiB,EACjB,YAAiB,EACjB,iBAAsF,EACtF,OAA4B;IAE5B,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,wBAAwB,CACpC,SAAS,CAAC,IAAI,EACd,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,OAAO,CACV,CAAC;QACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/out/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export * from './reqlan-file-references.js';
|
|
|
6
6
|
export * from './reqlan-embedded-file-references.js';
|
|
7
7
|
export * from './file-path-rewrite.js';
|
|
8
8
|
export * from './reqlan-path-references.js';
|
|
9
|
+
export * from './reqlan-comment-rename.js';
|
|
10
|
+
export { ReqlanRenameProvider } from './reqlan-rename-provider.js';
|
|
11
|
+
export { ideaDeclarationText, isRefactorIdeaDeclaration, planIdeaDeleteEdits, planIdeaMoveEdits, type DocumentTextEdits, type RefactorIdeaDeclaration } from './reqlan-idea-refactor.js';
|
|
9
12
|
export * from './reqlan-path-resolve.js';
|
|
10
13
|
export * from './reqlan-imports.js';
|
|
11
14
|
export * from './reqlan-quoted-strings.js';
|
package/out/index.js
CHANGED
|
@@ -6,6 +6,9 @@ export * from './reqlan-file-references.js';
|
|
|
6
6
|
export * from './reqlan-embedded-file-references.js';
|
|
7
7
|
export * from './file-path-rewrite.js';
|
|
8
8
|
export * from './reqlan-path-references.js';
|
|
9
|
+
export * from './reqlan-comment-rename.js';
|
|
10
|
+
export { ReqlanRenameProvider } from './reqlan-rename-provider.js';
|
|
11
|
+
export { ideaDeclarationText, isRefactorIdeaDeclaration, planIdeaDeleteEdits, planIdeaMoveEdits } from './reqlan-idea-refactor.js';
|
|
9
12
|
export * from './reqlan-path-resolve.js';
|
|
10
13
|
export * from './reqlan-imports.js';
|
|
11
14
|
export * from './reqlan-quoted-strings.js';
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrF,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,2BAA2B,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrF,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
|
|
@@ -12,6 +12,14 @@ import type { ReqlanServices } from './reqlan-module.js';
|
|
|
12
12
|
export declare const REQLAN_IMPORT_ERROR_SEARCH_COMMAND = "reqlan.importError.search";
|
|
13
13
|
export declare const REQLAN_IMPORT_ERROR_CREATE_COMMAND = "reqlan.importError.createFile";
|
|
14
14
|
export declare const REQLAN_SEARCH_REFERENCE_COMMAND = "reqlan.searchReference";
|
|
15
|
+
export declare const REQLAN_REFACTOR_DELETE_IDEA_COMMAND = "reqlan.refactor.deleteIdea";
|
|
16
|
+
export declare const REQLAN_REFACTOR_MOVE_IDEA_COMMAND = "reqlan.refactor.moveIdea";
|
|
17
|
+
/** Args for idea move/delete refactor commands. */
|
|
18
|
+
export interface IdeaRefactorCommandArgs {
|
|
19
|
+
documentUri: string;
|
|
20
|
+
ideaName: string;
|
|
21
|
+
range: Diagnostic['range'];
|
|
22
|
+
}
|
|
15
23
|
export interface ImportErrorCommandArgs {
|
|
16
24
|
documentUri: string;
|
|
17
25
|
refText: string;
|
|
@@ -36,6 +44,11 @@ export declare class ReqlanCodeActionProvider implements CodeActionProvider {
|
|
|
36
44
|
private readonly indexManager;
|
|
37
45
|
constructor(services: ReqlanServices);
|
|
38
46
|
getCodeActions(document: LangiumDocument, params: CodeActionParams): Array<Command | CodeActionLike>;
|
|
47
|
+
/**
|
|
48
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_move]
|
|
49
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_delete]
|
|
50
|
+
*/
|
|
51
|
+
private createIdeaRefactorActions;
|
|
39
52
|
/**
|
|
40
53
|
* When the cursor/selection is inside a [reference], or on prose that can
|
|
41
54
|
* become one, offer a search action that opens the idea-search webview.
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { DocumentValidator, URI as UriCtor, UriUtils } from 'langium';
|
|
1
|
+
import { AstUtils, DocumentValidator, URI as UriCtor, UriUtils } from 'langium';
|
|
2
2
|
import { CodeActionKind } from 'vscode-languageserver';
|
|
3
3
|
import { isIdea, isIdeaSet, isModel, isOneLinerIdea } from './generated/ast.js';
|
|
4
4
|
import { buildFromImportEdit, relativeRqImportPath } from './reqlan-import-edits.js';
|
|
5
|
+
import { isRefactorIdeaDeclaration } from './reqlan-idea-refactor.js';
|
|
5
6
|
import { sharedNameCatalog } from './reqlan-name-catalog.js';
|
|
6
7
|
import { findReferenceSearchSite, buildContextForRange } from './reqlan-reference-search-site.js';
|
|
7
8
|
export const REQLAN_IMPORT_ERROR_SEARCH_COMMAND = 'reqlan.importError.search';
|
|
8
9
|
export const REQLAN_IMPORT_ERROR_CREATE_COMMAND = 'reqlan.importError.createFile';
|
|
9
10
|
export const REQLAN_SEARCH_REFERENCE_COMMAND = 'reqlan.searchReference';
|
|
11
|
+
export const REQLAN_REFACTOR_DELETE_IDEA_COMMAND = 'reqlan.refactor.deleteIdea';
|
|
12
|
+
export const REQLAN_REFACTOR_MOVE_IDEA_COMMAND = 'reqlan.refactor.moveIdea';
|
|
10
13
|
const MAX_IMPORT_SUGGESTIONS = 5;
|
|
11
14
|
export class ReqlanCodeActionProvider {
|
|
12
15
|
constructor(services) {
|
|
@@ -22,8 +25,44 @@ export class ReqlanCodeActionProvider {
|
|
|
22
25
|
if (searchFromCursor) {
|
|
23
26
|
actions.push(searchFromCursor);
|
|
24
27
|
}
|
|
28
|
+
actions.push(...this.createIdeaRefactorActions(document, params));
|
|
25
29
|
return actions;
|
|
26
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_move]
|
|
33
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_delete]
|
|
34
|
+
*/
|
|
35
|
+
createIdeaRefactorActions(document, params) {
|
|
36
|
+
const idea = findIdeaDeclarationAtRange(document, params.range);
|
|
37
|
+
if (!idea?.name || !idea.$cstNode) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const args = {
|
|
41
|
+
documentUri: document.textDocument.uri,
|
|
42
|
+
ideaName: idea.name,
|
|
43
|
+
range: idea.$cstNode.range
|
|
44
|
+
};
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
title: `Delete idea '${idea.name}' and update references`,
|
|
48
|
+
kind: CodeActionKind.Refactor,
|
|
49
|
+
command: {
|
|
50
|
+
title: `Delete idea '${idea.name}'`,
|
|
51
|
+
command: REQLAN_REFACTOR_DELETE_IDEA_COMMAND,
|
|
52
|
+
arguments: [args]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
title: `Move idea '${idea.name}' to another file…`,
|
|
57
|
+
kind: CodeActionKind.Refactor,
|
|
58
|
+
command: {
|
|
59
|
+
title: `Move idea '${idea.name}'`,
|
|
60
|
+
command: REQLAN_REFACTOR_MOVE_IDEA_COMMAND,
|
|
61
|
+
arguments: [args]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
];
|
|
65
|
+
}
|
|
27
66
|
/**
|
|
28
67
|
* When the cursor/selection is inside a [reference], or on prose that can
|
|
29
68
|
* become one, offer a search action that opens the idea-search webview.
|
|
@@ -266,4 +305,23 @@ export function collectImportErrorCodeActions(provider, document) {
|
|
|
266
305
|
export function isModelDocument(document) {
|
|
267
306
|
return isModel(document.parseResult.value);
|
|
268
307
|
}
|
|
308
|
+
function findIdeaDeclarationAtRange(document, range) {
|
|
309
|
+
const offset = document.textDocument.offsetAt(range.start);
|
|
310
|
+
for (const node of AstUtils.streamAst(document.parseResult.value)) {
|
|
311
|
+
if (!isRefactorIdeaDeclaration(node) || !node.$cstNode) {
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
const start = document.textDocument.offsetAt(node.$cstNode.range.start);
|
|
315
|
+
const end = document.textDocument.offsetAt(node.$cstNode.range.end);
|
|
316
|
+
if (offset >= start && offset <= end) {
|
|
317
|
+
return node;
|
|
318
|
+
}
|
|
319
|
+
// Also match when the selection is exactly on the name token line.
|
|
320
|
+
if (range.start.line === node.$cstNode.range.start.line
|
|
321
|
+
&& range.start.character <= (node.name?.length ?? 0) + 1) {
|
|
322
|
+
return node;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return undefined;
|
|
326
|
+
}
|
|
269
327
|
//# sourceMappingURL=reqlan-code-action-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlan-code-action-provider.js","sourceRoot":"","sources":["../src/reqlan-code-action-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reqlan-code-action-provider.js","sourceRoot":"","sources":["../src/reqlan-code-action-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build text edits that rename idea tokens inside `rq:[...]` comment references.
|
|
3
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_rename]
|
|
4
|
+
*/
|
|
5
|
+
import type { Range } from 'vscode-languageserver';
|
|
6
|
+
import { type EmbeddedCommentReference } from './reqlan-comment-resolver.js';
|
|
7
|
+
import type { PathRewriteEdit } from './file-path-rewrite.js';
|
|
8
|
+
export interface CommentIdeaRenameMatch {
|
|
9
|
+
range: Range;
|
|
10
|
+
path?: string;
|
|
11
|
+
idea: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Locate idea-name ranges inside comment references that should rename with `oldName`.
|
|
15
|
+
* When `targetPath` is set, only qualified refs whose path equals that value (or pathless
|
|
16
|
+
* local refs when `includePathless` is true) are included.
|
|
17
|
+
*/
|
|
18
|
+
export declare function findCommentIdeaRenameMatches(text: string, oldName: string, options?: {
|
|
19
|
+
targetPath?: string;
|
|
20
|
+
includePathless?: boolean;
|
|
21
|
+
lineOffset?: number;
|
|
22
|
+
}): CommentIdeaRenameMatch[];
|
|
23
|
+
export declare function findCommentIdeaRenameEdits(text: string, oldName: string, newName: string, options?: {
|
|
24
|
+
targetPath?: string;
|
|
25
|
+
includePathless?: boolean;
|
|
26
|
+
lineOffset?: number;
|
|
27
|
+
}): PathRewriteEdit[];
|
|
28
|
+
export declare function ideaTokenRangeInCommentReference(text: string, reference: EmbeddedCommentReference): Range | undefined;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { findCommentReferencesInText } from './reqlan-comment-resolver.js';
|
|
2
|
+
import { parseReqlanQuotedString, REQLAN_QUOTED_STRING_CAPTURE } from './reqlan-quoted-strings.js';
|
|
3
|
+
const QUALIFIED_TARGET_PATTERN = new RegExp(`^(${REQLAN_QUOTED_STRING_CAPTURE})\\s*\\.\\s*([_a-zA-Z][\\w-]*)(?:\\s*\\.\\s*([_a-zA-Z][\\w-]*))?$`);
|
|
4
|
+
/**
|
|
5
|
+
* Locate idea-name ranges inside comment references that should rename with `oldName`.
|
|
6
|
+
* When `targetPath` is set, only qualified refs whose path equals that value (or pathless
|
|
7
|
+
* local refs when `includePathless` is true) are included.
|
|
8
|
+
*/
|
|
9
|
+
export function findCommentIdeaRenameMatches(text, oldName, options) {
|
|
10
|
+
const matches = [];
|
|
11
|
+
const includePathless = options?.includePathless ?? true;
|
|
12
|
+
for (const reference of findCommentReferencesInText(text, options?.lineOffset ?? 0)) {
|
|
13
|
+
if (reference.idea !== oldName) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
if (reference.path !== undefined) {
|
|
17
|
+
if (options?.targetPath !== undefined && !pathsMatch(reference.path, options.targetPath)) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else if (!includePathless) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const ideaRange = ideaTokenRangeInCommentReference(text, reference);
|
|
25
|
+
if (!ideaRange) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
matches.push({
|
|
29
|
+
range: ideaRange,
|
|
30
|
+
path: reference.path,
|
|
31
|
+
idea: reference.idea
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return matches;
|
|
35
|
+
}
|
|
36
|
+
export function findCommentIdeaRenameEdits(text, oldName, newName, options) {
|
|
37
|
+
if (oldName === newName) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return findCommentIdeaRenameMatches(text, oldName, options).map(match => ({
|
|
41
|
+
range: match.range,
|
|
42
|
+
newText: newName
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
export function ideaTokenRangeInCommentReference(text, reference) {
|
|
46
|
+
const startOffset = offsetAt(text, reference.range.start);
|
|
47
|
+
const endOffset = offsetAt(text, reference.range.end);
|
|
48
|
+
const segment = text.slice(startOffset, endOffset);
|
|
49
|
+
const bracket = /rq:\s*\[([^\]]+)\]/.exec(segment);
|
|
50
|
+
if (!bracket || bracket.index === undefined) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const target = bracket[1];
|
|
54
|
+
const bracketContentStart = startOffset + bracket.index + bracket[0].indexOf('[') + 1;
|
|
55
|
+
const qualified = QUALIFIED_TARGET_PATTERN.exec(target.trim());
|
|
56
|
+
if (qualified) {
|
|
57
|
+
const ideaToken = qualified[3] ?? qualified[2];
|
|
58
|
+
if (ideaToken !== reference.idea) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const ideaIndexInTarget = target.lastIndexOf(ideaToken);
|
|
62
|
+
if (ideaIndexInTarget < 0) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const absolute = bracketContentStart + ideaIndexInTarget;
|
|
66
|
+
return {
|
|
67
|
+
start: offsetToPosition(text, absolute),
|
|
68
|
+
end: offsetToPosition(text, absolute + ideaToken.length)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const ideaIndex = target.indexOf(reference.idea);
|
|
72
|
+
if (ideaIndex < 0) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const absolute = bracketContentStart + ideaIndex;
|
|
76
|
+
return {
|
|
77
|
+
start: offsetToPosition(text, absolute),
|
|
78
|
+
end: offsetToPosition(text, absolute + reference.idea.length)
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function pathsMatch(left, right) {
|
|
82
|
+
const normalize = (path) => {
|
|
83
|
+
try {
|
|
84
|
+
return parseReqlanQuotedString(JSON.stringify(path)).replace(/\\/g, '/');
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return path.replace(/\\/g, '/');
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const a = normalize(left);
|
|
91
|
+
const b = normalize(right);
|
|
92
|
+
return a === b
|
|
93
|
+
|| a.replace(/\.rq$/i, '') === b.replace(/\.rq$/i, '')
|
|
94
|
+
|| a.endsWith(b)
|
|
95
|
+
|| b.endsWith(a);
|
|
96
|
+
}
|
|
97
|
+
function offsetAt(text, position) {
|
|
98
|
+
const lines = text.split(/\r?\n/);
|
|
99
|
+
let offset = 0;
|
|
100
|
+
for (let index = 0; index < position.line; index++) {
|
|
101
|
+
offset += lines[index].length + 1;
|
|
102
|
+
}
|
|
103
|
+
return offset + position.character;
|
|
104
|
+
}
|
|
105
|
+
function offsetToPosition(text, offset) {
|
|
106
|
+
const before = text.slice(0, offset);
|
|
107
|
+
const lines = before.split(/\r?\n/);
|
|
108
|
+
return {
|
|
109
|
+
line: lines.length - 1,
|
|
110
|
+
character: lines[lines.length - 1].length
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=reqlan-comment-rename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reqlan-comment-rename.js","sourceRoot":"","sources":["../src/reqlan-comment-rename.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan workspace edits for moving or deleting idea declarations and their references.
|
|
3
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_move]
|
|
4
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_symbol_delete]
|
|
5
|
+
* rq:["../../../reqlan rq/extension/refactor_support.rq".refactor_changes]
|
|
6
|
+
*/
|
|
7
|
+
import type { AstNode, LangiumDocument, ReferenceDescription } from 'langium';
|
|
8
|
+
import type { TextEdit } from 'vscode-languageserver';
|
|
9
|
+
import { type Idea, type OneLinerIdea } from './generated/ast.js';
|
|
10
|
+
export type RefactorIdeaDeclaration = Idea | OneLinerIdea;
|
|
11
|
+
export interface DocumentTextEdits {
|
|
12
|
+
uri: string;
|
|
13
|
+
edits: TextEdit[];
|
|
14
|
+
}
|
|
15
|
+
export declare function isRefactorIdeaDeclaration(node: AstNode): node is RefactorIdeaDeclaration;
|
|
16
|
+
export declare function ideaDeclarationText(document: LangiumDocument, idea: RefactorIdeaDeclaration): string | undefined;
|
|
17
|
+
export declare function planIdeaDeleteEdits(idea: RefactorIdeaDeclaration, references: readonly ReferenceDescription[], documentsText?: Map<string, string>): DocumentTextEdits[];
|
|
18
|
+
export declare function planIdeaMoveEdits(input: {
|
|
19
|
+
idea: RefactorIdeaDeclaration;
|
|
20
|
+
sourceDocument: LangiumDocument;
|
|
21
|
+
destinationDocument: LangiumDocument;
|
|
22
|
+
references: readonly ReferenceDescription[];
|
|
23
|
+
}): DocumentTextEdits[];
|