@usethesource/rascal-vscode-dsl-lsp-server 0.10.0 → 0.10.2
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/assets/jars/.gitignore +1 -1
- package/assets/jars/rascal-lsp.jar +0 -0
- package/assets/jars/rascal.jar +0 -0
- package/lib/RascalExtension.js +2 -1
- package/lib/RascalExtension.js.map +1 -1
- package/lib/lsp/library.d.ts +1 -1
- package/lib/lsp/library.js.map +1 -1
- package/package.json +1 -1
- package/assets/jars/vallang-0.13.1.jar +0 -0
- package/lib/test/normal-suite/JavaDownload.test.d.ts +0 -1
- package/lib/test/normal-suite/JavaDownload.test.js +0 -109
- package/lib/test/normal-suite/JavaDownload.test.js.map +0 -1
- package/lib/test/vscode-suite/dsl.test.d.ts +0 -1
- package/lib/test/vscode-suite/dsl.test.js +0 -106
- package/lib/test/vscode-suite/dsl.test.js.map +0 -1
- package/lib/test/vscode-suite/ide.test.d.ts +0 -1
- package/lib/test/vscode-suite/ide.test.js +0 -138
- package/lib/test/vscode-suite/ide.test.js.map +0 -1
- package/lib/test/vscode-suite/repl.test.d.ts +0 -1
- package/lib/test/vscode-suite/repl.test.js +0 -81
- package/lib/test/vscode-suite/repl.test.js.map +0 -1
- package/lib/test/vscode-suite/utils.d.ts +0 -61
- package/lib/test/vscode-suite/utils.js +0 -241
- package/lib/test/vscode-suite/utils.js.map +0 -1
package/assets/jars/.gitignore
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*.jar
|
|
1
|
+
*.jar
|
|
Binary file
|
package/assets/jars/rascal.jar
CHANGED
|
Binary file
|
package/lib/RascalExtension.js
CHANGED
|
@@ -106,7 +106,8 @@ class RascalExtension {
|
|
|
106
106
|
iconPath: this.icon,
|
|
107
107
|
shellPath: await (0, JavaLookup_1.getJavaExecutable)(),
|
|
108
108
|
shellArgs: this.buildShellArgs(compilationPath, serverConfig, ...extraArgs),
|
|
109
|
-
|
|
109
|
+
isTransient: false,
|
|
110
|
+
name: `Rascal Terminal (${projectRoot?.name ?? "no project"})`,
|
|
110
111
|
});
|
|
111
112
|
terminal.show(false);
|
|
112
113
|
progress.report({ increment: 25, message: "Finished creating terminal" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RascalExtension.js","sourceRoot":"","sources":["../src/RascalExtension.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RascalExtension.js","sourceRoot":"","sources":["../src/RascalExtension.ts"],"names":[],"mappings":"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"}
|
package/lib/lsp/library.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ParameterizedLanguageServer, LanguageParameter } from "./ParameterizedLanguageServer";
|
|
1
|
+
export { ParameterizedLanguageServer, LanguageParameter, ParserSpecification } from "./ParameterizedLanguageServer";
|
|
2
2
|
export { VSCodeUriResolverServer } from "../fs/VSCodeURIResolver";
|
package/lib/lsp/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/lsp/library.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,yGAAyG;AACzG,
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/lsp/library.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,yGAAyG;AACzG,6EAAoH;AAA3G,0IAAA,2BAA2B,OAAA;AACpC,6DAAkE;AAAzD,4HAAA,uBAAuB,OAAA"}
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
5
|
-
* All rights reserved.
|
|
6
|
-
*
|
|
7
|
-
* Redistribution and use in source and binary forms, with or without
|
|
8
|
-
* modification, are permitted provided that the following conditions are met:
|
|
9
|
-
*
|
|
10
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
-
* this list of conditions and the following disclaimer.
|
|
12
|
-
*
|
|
13
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
15
|
-
* and/or other materials provided with the distribution.
|
|
16
|
-
*
|
|
17
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
18
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
19
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
20
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
21
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
22
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
23
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
24
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
25
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
26
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
27
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
-
*/
|
|
29
|
-
const assert = require("assert");
|
|
30
|
-
const fs_1 = require("fs");
|
|
31
|
-
const temp = require("temp");
|
|
32
|
-
const jd = require("../../auto-jvm/downloaders");
|
|
33
|
-
const mocha_1 = require("mocha");
|
|
34
|
-
const path_1 = require("path");
|
|
35
|
-
function emptyProgress() {
|
|
36
|
-
// no progress report for tests
|
|
37
|
-
}
|
|
38
|
-
(0, mocha_1.describe)('JVM Download', function () {
|
|
39
|
-
const tempDir = temp.mkdirSync();
|
|
40
|
-
function testTemurin(version, arch, platform) {
|
|
41
|
-
return async function () {
|
|
42
|
-
const newPath = await jd.fetchAndUnpackTemurin(arch, platform, await jd.identifyLatestTemurinLTSRelease(version, arch, platform), (0, path_1.join)(tempDir, "temurin", arch, platform), emptyProgress);
|
|
43
|
-
assert.ok((0, fs_1.statSync)(newPath).isFile());
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function testCorretto(version, arch, platform) {
|
|
47
|
-
return async function () {
|
|
48
|
-
const newPath = await jd.fetchAndUnpackCorretto(arch, platform, version, (0, path_1.join)(tempDir, "corretto", arch, platform), emptyProgress);
|
|
49
|
-
assert.ok((0, fs_1.statSync)(newPath).isFile());
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function testMSOpenJDK(version, arch, platform) {
|
|
53
|
-
return async function () {
|
|
54
|
-
const newPath = await jd.fetchAndUnpackMicrosoftJDK(arch, platform, version, (0, path_1.join)(tempDir, "msjdk", arch, platform), emptyProgress);
|
|
55
|
-
assert.ok((0, fs_1.statSync)(newPath).isFile());
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
const downloadTimeout = 60000;
|
|
59
|
-
const testAll = false;
|
|
60
|
-
(0, mocha_1.describe)(`Eclipse Temurin jdk11`, function () {
|
|
61
|
-
if (testAll) {
|
|
62
|
-
it(`Mac x64`, testTemurin(11, "x64", "mac")).timeout(downloadTimeout);
|
|
63
|
-
it(`Linux arm`, testTemurin(11, "arm", "linux")).timeout(downloadTimeout);
|
|
64
|
-
}
|
|
65
|
-
it(`Mac aarch64`, testTemurin(11, "aarch64", "mac")).timeout(downloadTimeout);
|
|
66
|
-
it(`Windows x64`, testTemurin(11, "x64", "windows")).timeout(downloadTimeout);
|
|
67
|
-
});
|
|
68
|
-
(0, mocha_1.describe)(`Eclipse Temurin jdk17`, function () {
|
|
69
|
-
if (testAll) {
|
|
70
|
-
it(`Mac aarch64`, testTemurin(17, "aarch64", "mac")).timeout(downloadTimeout);
|
|
71
|
-
it(`Windows x64`, testTemurin(17, "x64", "windows")).timeout(downloadTimeout);
|
|
72
|
-
}
|
|
73
|
-
it(`Linux x64`, testTemurin(17, "x64", "linux")).timeout(downloadTimeout);
|
|
74
|
-
});
|
|
75
|
-
(0, mocha_1.describe)(`Amazon Corretto jdk11`, function () {
|
|
76
|
-
if (testAll) {
|
|
77
|
-
it(`Windows x64`, testCorretto(11, "x64", "windows")).timeout(downloadTimeout);
|
|
78
|
-
it(`Mac x64`, testCorretto(11, "x64", "macos")).timeout(downloadTimeout);
|
|
79
|
-
}
|
|
80
|
-
it(`Linux arch64`, testCorretto(11, "aarch64", "linux")).timeout(downloadTimeout);
|
|
81
|
-
});
|
|
82
|
-
(0, mocha_1.describe)(`Amazon Corretto jdk17`, function () {
|
|
83
|
-
if (testAll) {
|
|
84
|
-
it(`Windows x64`, testCorretto(17, "x64", "windows")).timeout(downloadTimeout);
|
|
85
|
-
it(`Linux x64`, testCorretto(17, "x64", "linux")).timeout(downloadTimeout);
|
|
86
|
-
}
|
|
87
|
-
it(`Mac aarch64`, testCorretto(17, "aarch64", "macos")).timeout(downloadTimeout);
|
|
88
|
-
});
|
|
89
|
-
(0, mocha_1.describe)(`Microsoft OpenJDK jdk11`, function () {
|
|
90
|
-
it(`Windows x64`, testMSOpenJDK(11, "x64", "windows")).timeout(downloadTimeout);
|
|
91
|
-
if (testAll) {
|
|
92
|
-
it(`Linux aarch64`, testMSOpenJDK(11, "aarch64", "linux")).timeout(downloadTimeout);
|
|
93
|
-
it(`Mac x64`, testMSOpenJDK(11, "x64", "macOS")).timeout(downloadTimeout);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
(0, mocha_1.describe)(`Microsoft OpenJDK jdk17`, function () {
|
|
97
|
-
if (testAll) {
|
|
98
|
-
it(`Windows aarch64`, testMSOpenJDK(17, "aarch64", "windows")).timeout(downloadTimeout);
|
|
99
|
-
it(`Mac aarch64`, testMSOpenJDK(17, "aarch64", "macOS")).timeout(downloadTimeout);
|
|
100
|
-
}
|
|
101
|
-
it(`Linux x64`, testMSOpenJDK(17, "x64", "linux")).timeout(downloadTimeout);
|
|
102
|
-
});
|
|
103
|
-
(0, mocha_1.after)(() => {
|
|
104
|
-
console.log(tempDir);
|
|
105
|
-
// do the rm in the background, since it might take a while
|
|
106
|
-
(0, fs_1.rm)(tempDir, { recursive: true, force: true }, emptyProgress);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
//# sourceMappingURL=JavaDownload.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JavaDownload.test.js","sourceRoot":"","sources":["../../../src/test/normal-suite/JavaDownload.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without
|
|
7
|
-
* modification, are permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
10
|
-
* this list of conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
-
* and/or other materials provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
20
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
-
*/
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const vscode_extension_tester_1 = require("vscode-extension-tester");
|
|
30
|
-
const utils_1 = require("./utils");
|
|
31
|
-
const fs = require("fs/promises");
|
|
32
|
-
describe('DSL', function () {
|
|
33
|
-
let browser;
|
|
34
|
-
let driver;
|
|
35
|
-
let bench;
|
|
36
|
-
let ide;
|
|
37
|
-
let picoFileBackup;
|
|
38
|
-
this.timeout(utils_1.Delays.extremelySlow * 2);
|
|
39
|
-
async function loadPico() {
|
|
40
|
-
const repl = new utils_1.RascalREPL(bench, driver);
|
|
41
|
-
await repl.start();
|
|
42
|
-
await repl.execute("import demo::lang::pico::LanguageServer;");
|
|
43
|
-
repl.execute("main();"); // we don't wait, be cause we might miss pico loading window
|
|
44
|
-
const ide = new utils_1.IDEOperations(browser, bench);
|
|
45
|
-
const isPicoLoading = ide.statusContains("Pico");
|
|
46
|
-
await driver.wait(isPicoLoading, utils_1.Delays.slow, "Pico DSL should start loading");
|
|
47
|
-
await repl.terminate();
|
|
48
|
-
// now wait for the Pico loader to dissapear
|
|
49
|
-
await driver.wait(async () => !(await isPicoLoading()), utils_1.Delays.extremelySlow, "Pico DSL should be finished starting");
|
|
50
|
-
}
|
|
51
|
-
before(async () => {
|
|
52
|
-
browser = vscode_extension_tester_1.VSBrowser.instance;
|
|
53
|
-
driver = browser.driver;
|
|
54
|
-
bench = new vscode_extension_tester_1.Workbench();
|
|
55
|
-
await (0, utils_1.ignoreFails)(browser.waitForWorkbench());
|
|
56
|
-
ide = new utils_1.IDEOperations(browser, bench);
|
|
57
|
-
await ide.load();
|
|
58
|
-
await loadPico();
|
|
59
|
-
picoFileBackup = await fs.readFile(utils_1.TestWorkspace.picoFile);
|
|
60
|
-
ide = new utils_1.IDEOperations(browser, bench);
|
|
61
|
-
await ide.load();
|
|
62
|
-
});
|
|
63
|
-
afterEach(async function () {
|
|
64
|
-
if (this.test?.title) {
|
|
65
|
-
await ide.screenshot("DSL-" + this.test?.title);
|
|
66
|
-
}
|
|
67
|
-
await ide.cleanup();
|
|
68
|
-
await fs.writeFile(utils_1.TestWorkspace.picoFile, picoFileBackup);
|
|
69
|
-
});
|
|
70
|
-
after(async function () {
|
|
71
|
-
});
|
|
72
|
-
it("have highlighting and parse errors", async function () {
|
|
73
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.picoFile);
|
|
74
|
-
await ide.hasSyntaxHighlighting(editor);
|
|
75
|
-
try {
|
|
76
|
-
await editor.setTextAtLine(10, "b := ;");
|
|
77
|
-
await ide.hasErrorSquiggly(editor, 15000);
|
|
78
|
-
}
|
|
79
|
-
finally {
|
|
80
|
-
await ide.revertOpenChanges();
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
it("have inlay hints", async function () {
|
|
84
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.picoFile);
|
|
85
|
-
await ide.hasSyntaxHighlighting(editor);
|
|
86
|
-
await ide.hasInlayHint(editor);
|
|
87
|
-
});
|
|
88
|
-
it("save runs type checker", async function () {
|
|
89
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.picoFile);
|
|
90
|
-
await ide.triggerTypeChecker(editor, { checkName: "Pico check", waitForFinish: true, timeout: 5000 });
|
|
91
|
-
});
|
|
92
|
-
it("go to definition works", async () => {
|
|
93
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.picoFile);
|
|
94
|
-
await ide.triggerTypeChecker(editor, { checkName: "Pico check" });
|
|
95
|
-
await editor.selectText("x", 2);
|
|
96
|
-
await bench.executeCommand("Go to Definition");
|
|
97
|
-
await driver.wait(async () => (await editor.getCoordinates())[0] === 3, 15000, "Cursor should have moved to line 3");
|
|
98
|
-
});
|
|
99
|
-
it("code lens works", async () => {
|
|
100
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.picoFile);
|
|
101
|
-
const lens = await driver.wait(async () => editor.getCodeLens("Rename variables a to b."), 10000, "Rename lens should be available");
|
|
102
|
-
await lens.click();
|
|
103
|
-
await driver.wait(async () => (await editor.getTextAtLine(9)).trim() === "b := 2;", 20000, "a variable should be changed to b");
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
//# sourceMappingURL=dsl.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.test.js","sourceRoot":"","sources":["../../../src/test/vscode-suite/dsl.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without
|
|
7
|
-
* modification, are permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
10
|
-
* this list of conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
-
* and/or other materials provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
20
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
-
*/
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const vscode_extension_tester_1 = require("vscode-extension-tester");
|
|
30
|
-
const path = require("path");
|
|
31
|
-
const fs = require("fs/promises");
|
|
32
|
-
const utils_1 = require("./utils");
|
|
33
|
-
const protectFiles = [utils_1.TestWorkspace.mainFile, utils_1.TestWorkspace.libFile, utils_1.TestWorkspace.libCallFile];
|
|
34
|
-
describe('IDE', function () {
|
|
35
|
-
let browser;
|
|
36
|
-
let driver;
|
|
37
|
-
let bench;
|
|
38
|
-
let ide;
|
|
39
|
-
const originalFiles = new Map();
|
|
40
|
-
this.timeout(utils_1.Delays.extremelySlow * 2);
|
|
41
|
-
before(async () => {
|
|
42
|
-
browser = vscode_extension_tester_1.VSBrowser.instance;
|
|
43
|
-
driver = browser.driver;
|
|
44
|
-
bench = new vscode_extension_tester_1.Workbench();
|
|
45
|
-
await browser.waitForWorkbench();
|
|
46
|
-
ide = new utils_1.IDEOperations(browser, bench);
|
|
47
|
-
await ide.load();
|
|
48
|
-
// trigger rascal type checker to be sure
|
|
49
|
-
for (const f of protectFiles) {
|
|
50
|
-
originalFiles.set(f, await fs.readFile(f));
|
|
51
|
-
}
|
|
52
|
-
await makeSureRascalModulesAreLoaded();
|
|
53
|
-
});
|
|
54
|
-
beforeEach(async () => {
|
|
55
|
-
});
|
|
56
|
-
afterEach(async function () {
|
|
57
|
-
if (this.test?.title) {
|
|
58
|
-
await ide.screenshot("IDE-" + this.test?.title);
|
|
59
|
-
}
|
|
60
|
-
await ide.cleanup();
|
|
61
|
-
for (const [f, b] of originalFiles) {
|
|
62
|
-
await fs.writeFile(f, b);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
async function makeSureRascalModulesAreLoaded(delay = utils_1.Delays.verySlow) {
|
|
66
|
-
try {
|
|
67
|
-
await ide.openModule(utils_1.TestWorkspace.mainFile);
|
|
68
|
-
let statusBarSeen = false;
|
|
69
|
-
const checkRascalStatus = ide.statusContains("Loading Rascal");
|
|
70
|
-
for (let tries = 0; tries < 10 && !statusBarSeen; tries++) {
|
|
71
|
-
await (0, utils_1.sleep)(delay / 80);
|
|
72
|
-
if (await checkRascalStatus()) {
|
|
73
|
-
statusBarSeen = true;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (statusBarSeen) {
|
|
78
|
-
console.log("Waiting for startup of rascal core");
|
|
79
|
-
for (let tries = 0; tries < 70; tries++) {
|
|
80
|
-
await (0, utils_1.sleep)(delay / 80);
|
|
81
|
-
if (!await checkRascalStatus()) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
console.log("*** warning, loading rascal-core is still running, but we will continue anyway");
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
finally {
|
|
89
|
-
await ide.cleanup();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function waitForActiveEditor(title, timeout, message) {
|
|
93
|
-
return driver.wait(async () => (await (await bench.getEditorView().getActiveTab())?.getTitle()) === title, timeout, message);
|
|
94
|
-
}
|
|
95
|
-
it("has syntax highlighting and parsing errors", async function () {
|
|
96
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.mainFile);
|
|
97
|
-
await ide.hasSyntaxHighlighting(editor);
|
|
98
|
-
await editor.setTextAtLine(1, "this should not parse");
|
|
99
|
-
await ide.hasErrorSquiggly(editor);
|
|
100
|
-
});
|
|
101
|
-
function triggerTypeChecker(editor, tplFile, waitForFinish = false) {
|
|
102
|
-
return ide.triggerTypeChecker(editor, { tplFile: tplFile, waitForFinish: waitForFinish });
|
|
103
|
-
}
|
|
104
|
-
it("save runs type checker", async function () {
|
|
105
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.mainFile);
|
|
106
|
-
await triggerTypeChecker(editor, utils_1.TestWorkspace.mainFileTpl, true);
|
|
107
|
-
});
|
|
108
|
-
it("go to definition works", async () => {
|
|
109
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.mainFile);
|
|
110
|
-
await triggerTypeChecker(editor, utils_1.TestWorkspace.mainFileTpl, true);
|
|
111
|
-
await editor.selectText("println");
|
|
112
|
-
await bench.executeCommand("Go to Definition");
|
|
113
|
-
await waitForActiveEditor("IO.rsc", utils_1.Delays.extremelySlow, "IO.rsc should be opened for println");
|
|
114
|
-
});
|
|
115
|
-
it("go to definition works across projects", async () => {
|
|
116
|
-
// due to a current bug, we have to make sure that the lib in the other project is correctly resolved
|
|
117
|
-
const libEditor = await ide.openModule(utils_1.TestWorkspace.libFile);
|
|
118
|
-
await triggerTypeChecker(libEditor, utils_1.TestWorkspace.libFileTpl, true);
|
|
119
|
-
await bench.getEditorView().closeAllEditors();
|
|
120
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.libCallFile);
|
|
121
|
-
await triggerTypeChecker(editor, utils_1.TestWorkspace.libCallFileTpl, true);
|
|
122
|
-
await editor.selectText("fib");
|
|
123
|
-
await bench.executeCommand("Go to Definition");
|
|
124
|
-
await waitForActiveEditor(path.basename(utils_1.TestWorkspace.libFile), utils_1.Delays.slow, "Lib.rsc should be opened for fib");
|
|
125
|
-
});
|
|
126
|
-
it("outline works", async () => {
|
|
127
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.mainFile);
|
|
128
|
-
await editor.moveCursor(1, 1);
|
|
129
|
-
const explorer = await (await bench.getActivityBar().getViewControl("Explorer")).openView();
|
|
130
|
-
await (0, utils_1.sleep)(utils_1.Delays.normal);
|
|
131
|
-
const outline = await explorer.getContent().getSection("Outline");
|
|
132
|
-
await outline.expand();
|
|
133
|
-
const mainItem = await driver.wait(async () => (0, utils_1.ignoreFails)(outline.findItem("main()", 0)), utils_1.Delays.slow, "Main function should show in the outline");
|
|
134
|
-
await driver.actions().doubleClick(mainItem).perform();
|
|
135
|
-
await driver.wait(async () => (await editor.getCoordinates())[0] === 5, utils_1.Delays.normal, "Cursor should have moved to line that contains the println function");
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
//# sourceMappingURL=ide.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ide.test.js","sourceRoot":"","sources":["../../../src/test/vscode-suite/ide.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without
|
|
7
|
-
* modification, are permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
10
|
-
* this list of conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
-
* and/or other materials provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
20
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
-
*/
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const chai_1 = require("chai");
|
|
30
|
-
const vscode_extension_tester_1 = require("vscode-extension-tester");
|
|
31
|
-
const utils_1 = require("./utils");
|
|
32
|
-
describe('REPL', function () {
|
|
33
|
-
let browser;
|
|
34
|
-
let driver;
|
|
35
|
-
let bench;
|
|
36
|
-
let ide;
|
|
37
|
-
this.timeout(2 * utils_1.Delays.extremelySlow);
|
|
38
|
-
before(async () => {
|
|
39
|
-
browser = vscode_extension_tester_1.VSBrowser.instance;
|
|
40
|
-
driver = browser.driver;
|
|
41
|
-
bench = new vscode_extension_tester_1.Workbench();
|
|
42
|
-
ide = new utils_1.IDEOperations(browser, bench);
|
|
43
|
-
await ide.load();
|
|
44
|
-
await ide.cleanup();
|
|
45
|
-
await browser.waitForWorkbench();
|
|
46
|
-
});
|
|
47
|
-
afterEach(async function () {
|
|
48
|
-
if (this.test?.title) {
|
|
49
|
-
await ide.screenshot("REPL-" + this.test?.title);
|
|
50
|
-
}
|
|
51
|
-
await bench.executeCommand("workbench.action.terminal.killAll");
|
|
52
|
-
await ide.cleanup();
|
|
53
|
-
});
|
|
54
|
-
it("should open without a project", async () => {
|
|
55
|
-
await new utils_1.RascalREPL(bench, driver).start();
|
|
56
|
-
});
|
|
57
|
-
it("run basic rascal commands", async () => {
|
|
58
|
-
const repl = new utils_1.RascalREPL(bench, driver);
|
|
59
|
-
await repl.start();
|
|
60
|
-
await repl.execute("40 + 2");
|
|
61
|
-
(0, chai_1.expect)(repl.lastOutput).matches(/int.*42/, "Result of expression should be 42");
|
|
62
|
-
await repl.execute("import IO;");
|
|
63
|
-
await repl.execute('println("Printing works: <1 + 3>");');
|
|
64
|
-
(0, chai_1.expect)(repl.lastOutput).is.equal("Printing works: 4\nok", "println works as expected");
|
|
65
|
-
});
|
|
66
|
-
it("import module and run in terminal", async () => {
|
|
67
|
-
const editor = await ide.openModule(utils_1.TestWorkspace.libCallFile);
|
|
68
|
-
const lens = await ide.findCodeLens(editor, "Run in new Rascal terminal");
|
|
69
|
-
await lens.click();
|
|
70
|
-
const repl = new utils_1.RascalREPL(bench, driver);
|
|
71
|
-
await repl.connect();
|
|
72
|
-
(0, chai_1.expect)(repl.lastOutput).is.equal("5\nint: 0");
|
|
73
|
-
}).timeout(utils_1.Delays.extremelySlow * 3);
|
|
74
|
-
it("edit call module via repl", async () => {
|
|
75
|
-
const repl = new utils_1.RascalREPL(bench, driver);
|
|
76
|
-
await repl.start();
|
|
77
|
-
await repl.execute(":edit demo::lang::pico::LanguageServer");
|
|
78
|
-
await driver.wait(async () => await (await bench.getEditorView().getActiveTab())?.getTitle() === "LanguageServer.rsc", utils_1.Delays.normal, "LanguageServer should be opened");
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=repl.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repl.test.js","sourceRoot":"","sources":["../../../src/test/vscode-suite/repl.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { CodeLens, Locator, TextEditor, VSBrowser, WebDriver, WebElement, Workbench } from "vscode-extension-tester";
|
|
2
|
-
export declare function sleep(ms: number): Promise<unknown>;
|
|
3
|
-
export declare class Delays {
|
|
4
|
-
private static readonly delayFactor;
|
|
5
|
-
static readonly fast: number;
|
|
6
|
-
static readonly normal: number;
|
|
7
|
-
static readonly slow: number;
|
|
8
|
-
static readonly verySlow: number;
|
|
9
|
-
static readonly extremelySlow: number;
|
|
10
|
-
}
|
|
11
|
-
export declare class TestWorkspace {
|
|
12
|
-
private static readonly workspacePrefix;
|
|
13
|
-
static readonly workspaceFile: string;
|
|
14
|
-
static readonly testProject: string;
|
|
15
|
-
static readonly libProject: string;
|
|
16
|
-
static readonly mainFile: string;
|
|
17
|
-
static readonly mainFileTpl: string;
|
|
18
|
-
static readonly libCallFile: string;
|
|
19
|
-
static readonly libCallFileTpl: string;
|
|
20
|
-
static readonly libFile: string;
|
|
21
|
-
static readonly libFileTpl: string;
|
|
22
|
-
static readonly picoFile: string;
|
|
23
|
-
}
|
|
24
|
-
export declare function ignoreFails<T>(fn: Promise<T> | undefined): Promise<T | undefined>;
|
|
25
|
-
export declare class RascalREPL {
|
|
26
|
-
private bench;
|
|
27
|
-
private driver;
|
|
28
|
-
private lastReplOutput;
|
|
29
|
-
private terminal;
|
|
30
|
-
constructor(bench: Workbench, driver: WebDriver);
|
|
31
|
-
waitForReplReady(): Promise<boolean>;
|
|
32
|
-
start(): Promise<void>;
|
|
33
|
-
connect(): Promise<void>;
|
|
34
|
-
execute(command: string, waitForReady?: boolean): Promise<void>;
|
|
35
|
-
get lastOutput(): string;
|
|
36
|
-
waitForLastOutput(): Promise<string>;
|
|
37
|
-
terminate(): Promise<void>;
|
|
38
|
-
}
|
|
39
|
-
export declare class IDEOperations {
|
|
40
|
-
private browser;
|
|
41
|
-
private bench;
|
|
42
|
-
private driver;
|
|
43
|
-
constructor(browser: VSBrowser, bench: Workbench);
|
|
44
|
-
load(): Promise<void>;
|
|
45
|
-
cleanup(): Promise<void>;
|
|
46
|
-
hasElement(editor: TextEditor, selector: Locator, timeout: number, message: string): Promise<WebElement>;
|
|
47
|
-
hasErrorSquiggly(editor: TextEditor, timeout?: number, message?: string): Promise<WebElement>;
|
|
48
|
-
hasSyntaxHighlighting(editor: TextEditor, timeout?: number, message?: string): Promise<WebElement>;
|
|
49
|
-
hasInlayHint(editor: TextEditor, timeout?: number, message?: string): Promise<WebElement>;
|
|
50
|
-
revertOpenChanges(): Promise<void>;
|
|
51
|
-
openModule(file: string): Promise<TextEditor>;
|
|
52
|
-
triggerTypeChecker(editor: TextEditor, { checkName, waitForFinish, timeout, tplFile }?: {
|
|
53
|
-
checkName?: string | undefined;
|
|
54
|
-
waitForFinish?: boolean | undefined;
|
|
55
|
-
timeout?: number | undefined;
|
|
56
|
-
tplFile?: string | undefined;
|
|
57
|
-
}): Promise<void>;
|
|
58
|
-
findCodeLens(editor: TextEditor, name: string, timeout?: number, message?: string): Promise<CodeLens | undefined>;
|
|
59
|
-
statusContains(needle: string): () => Promise<boolean>;
|
|
60
|
-
screenshot(name: string): Promise<void>;
|
|
61
|
-
}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
4
|
-
* All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without
|
|
7
|
-
* modification, are permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice,
|
|
10
|
-
* this list of conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
-
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
-
* and/or other materials provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
-
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
20
|
-
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
-
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
-
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
-
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
-
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
-
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
-
*/
|
|
28
|
-
var _a, _b;
|
|
29
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.IDEOperations = exports.RascalREPL = exports.ignoreFails = exports.TestWorkspace = exports.Delays = exports.sleep = void 0;
|
|
31
|
-
const chai_1 = require("chai");
|
|
32
|
-
const promises_1 = require("fs/promises");
|
|
33
|
-
const path = require("path");
|
|
34
|
-
const process_1 = require("process");
|
|
35
|
-
const vscode_extension_tester_1 = require("vscode-extension-tester");
|
|
36
|
-
async function sleep(ms) {
|
|
37
|
-
return new Promise(r => setTimeout(r, ms));
|
|
38
|
-
}
|
|
39
|
-
exports.sleep = sleep;
|
|
40
|
-
function sec(n) { return n * 1000; }
|
|
41
|
-
class Delays {
|
|
42
|
-
}
|
|
43
|
-
exports.Delays = Delays;
|
|
44
|
-
_a = Delays;
|
|
45
|
-
Delays.delayFactor = parseInt(process_1.env['DELAY_FACTOR'] ?? "1");
|
|
46
|
-
Delays.fast = sec(1) * _a.delayFactor;
|
|
47
|
-
Delays.normal = sec(5) * _a.delayFactor;
|
|
48
|
-
Delays.slow = sec(15) * _a.delayFactor;
|
|
49
|
-
Delays.verySlow = sec(30) * _a.delayFactor;
|
|
50
|
-
Delays.extremelySlow = sec(120) * _a.delayFactor;
|
|
51
|
-
function src(project, language = 'rascal') { return path.join(project, 'src', 'main', language); }
|
|
52
|
-
function target(project) { return path.join(project, 'target', 'classes', 'rascal'); }
|
|
53
|
-
class TestWorkspace {
|
|
54
|
-
}
|
|
55
|
-
exports.TestWorkspace = TestWorkspace;
|
|
56
|
-
_b = TestWorkspace;
|
|
57
|
-
TestWorkspace.workspacePrefix = 'test-workspace';
|
|
58
|
-
TestWorkspace.workspaceFile = path.join(_b.workspacePrefix, 'test.code-workspace');
|
|
59
|
-
TestWorkspace.testProject = path.join(_b.workspacePrefix, 'test-project');
|
|
60
|
-
TestWorkspace.libProject = path.join(_b.workspacePrefix, 'test-lib');
|
|
61
|
-
TestWorkspace.mainFile = path.join(src(_b.testProject), 'Main.rsc');
|
|
62
|
-
TestWorkspace.mainFileTpl = path.join(target(_b.testProject), 'Main.tpl');
|
|
63
|
-
TestWorkspace.libCallFile = path.join(src(_b.testProject), 'LibCall.rsc');
|
|
64
|
-
TestWorkspace.libCallFileTpl = path.join(target(_b.testProject), 'LibCall.tpl');
|
|
65
|
-
TestWorkspace.libFile = path.join(src(_b.libProject), 'Lib.rsc');
|
|
66
|
-
TestWorkspace.libFileTpl = path.join(target(_b.libProject), 'Lib.tpl');
|
|
67
|
-
TestWorkspace.picoFile = path.join(src(_b.testProject, 'pico'), 'testing.pico');
|
|
68
|
-
const _DEBUG = false;
|
|
69
|
-
async function ignoreFails(fn) {
|
|
70
|
-
try {
|
|
71
|
-
if (fn === undefined) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
return await fn;
|
|
75
|
-
}
|
|
76
|
-
catch (exp) {
|
|
77
|
-
if (_DEBUG) {
|
|
78
|
-
console.debug("Promise failed, ignoring exception: ", exp);
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.ignoreFails = ignoreFails;
|
|
84
|
-
class RascalREPL {
|
|
85
|
-
constructor(bench, driver) {
|
|
86
|
-
this.bench = bench;
|
|
87
|
-
this.driver = driver;
|
|
88
|
-
this.lastReplOutput = '';
|
|
89
|
-
this.terminal = new vscode_extension_tester_1.TerminalView();
|
|
90
|
-
}
|
|
91
|
-
async waitForReplReady() {
|
|
92
|
-
let output = "";
|
|
93
|
-
try {
|
|
94
|
-
for (let tries = 0; tries < 5; tries++) {
|
|
95
|
-
await sleep(Delays.slow / 10);
|
|
96
|
-
output = await this.terminal.getText();
|
|
97
|
-
if (/rascal>\s*$/.test(output)) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
await sleep(Delays.slow / 10);
|
|
101
|
-
}
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
finally {
|
|
105
|
-
const lines = output.split('\n').map(l => l.trimEnd());
|
|
106
|
-
const lastPrompt = lines.lastIndexOf("rascal>");
|
|
107
|
-
let secondToLastPrompt = -1;
|
|
108
|
-
for (let l = 0; l < lastPrompt; l++) {
|
|
109
|
-
if (lines[l].startsWith("rascal>")) {
|
|
110
|
-
secondToLastPrompt = l;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (secondToLastPrompt >= 0 && lastPrompt > 0) {
|
|
114
|
-
this.lastReplOutput = lines.slice(secondToLastPrompt + 1, lastPrompt).join('\n').trimEnd();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async start() {
|
|
119
|
-
await new vscode_extension_tester_1.Workbench().executeCommand("rascalmpl.createTerminal");
|
|
120
|
-
return this.connect();
|
|
121
|
-
}
|
|
122
|
-
async connect() {
|
|
123
|
-
this.terminal = (await this.driver.wait(() => ignoreFails(new vscode_extension_tester_1.TerminalView().wait(100)), Delays.verySlow, "Waiting to find terminal view"));
|
|
124
|
-
await this.driver.wait(async () => (await ignoreFails(this.terminal.getCurrentChannel()))?.includes("Rascal"), Delays.slow, "Rascal REPL should be opened");
|
|
125
|
-
(0, chai_1.assert)(await this.waitForReplReady(), "Repl prompt should print");
|
|
126
|
-
}
|
|
127
|
-
async execute(command, waitForReady = true) {
|
|
128
|
-
const inputs = await this.terminal.findElements(vscode_extension_tester_1.By.className('xterm-helper-textarea'));
|
|
129
|
-
for (const i of inputs) {
|
|
130
|
-
// there can be multiple terminals, so we iterate over all of the to find the one that doesn't throw an exception
|
|
131
|
-
await ignoreFails(i.clear());
|
|
132
|
-
await ignoreFails(i.sendKeys(command + '\n'));
|
|
133
|
-
}
|
|
134
|
-
if (waitForReady) {
|
|
135
|
-
(0, chai_1.assert)(await this.waitForReplReady());
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
get lastOutput() { return this.lastReplOutput; }
|
|
139
|
-
async waitForLastOutput() {
|
|
140
|
-
(0, chai_1.assert)(await this.waitForReplReady());
|
|
141
|
-
return this.lastReplOutput;
|
|
142
|
-
}
|
|
143
|
-
async terminate() {
|
|
144
|
-
await ignoreFails(this.execute(":quit", false));
|
|
145
|
-
await ignoreFails(this.bench.executeCommand("workbench.action.terminal.killAll"));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
exports.RascalREPL = RascalREPL;
|
|
149
|
-
class IDEOperations {
|
|
150
|
-
constructor(browser, bench) {
|
|
151
|
-
this.browser = browser;
|
|
152
|
-
this.bench = bench;
|
|
153
|
-
this.driver = browser.driver;
|
|
154
|
-
}
|
|
155
|
-
async load() {
|
|
156
|
-
await ignoreFails(this.browser.waitForWorkbench(Delays.slow));
|
|
157
|
-
for (let t = 0; t < 5; t++) {
|
|
158
|
-
try {
|
|
159
|
-
await this.browser.openResources(TestWorkspace.workspaceFile);
|
|
160
|
-
}
|
|
161
|
-
catch (ex) {
|
|
162
|
-
console.debug("Error opening workspace, retrying.", ex);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
await ignoreFails(this.browser.waitForWorkbench(Delays.normal));
|
|
166
|
-
await ignoreFails(this.browser.waitForWorkbench(Delays.normal));
|
|
167
|
-
const center = await ignoreFails(this.bench.openNotificationsCenter());
|
|
168
|
-
await ignoreFails(center?.clearAllNotifications());
|
|
169
|
-
await ignoreFails(center?.close());
|
|
170
|
-
}
|
|
171
|
-
async cleanup() {
|
|
172
|
-
await ignoreFails(this.revertOpenChanges());
|
|
173
|
-
await ignoreFails(this.bench.getEditorView().closeAllEditors());
|
|
174
|
-
const center = await ignoreFails(this.bench.openNotificationsCenter());
|
|
175
|
-
await ignoreFails(center?.clearAllNotifications());
|
|
176
|
-
await ignoreFails(center?.close());
|
|
177
|
-
}
|
|
178
|
-
hasElement(editor, selector, timeout, message) {
|
|
179
|
-
return this.driver.wait(() => editor.findElement(selector), timeout, message);
|
|
180
|
-
}
|
|
181
|
-
hasErrorSquiggly(editor, timeout = Delays.normal, message = "Missing error squiggly") {
|
|
182
|
-
return this.driver.wait(vscode_extension_tester_1.until.elementLocated(vscode_extension_tester_1.By.className("squiggly-error")), timeout, message);
|
|
183
|
-
}
|
|
184
|
-
hasSyntaxHighlighting(editor, timeout = Delays.normal, message = "Syntax highlighting should be present") {
|
|
185
|
-
return this.hasElement(editor, vscode_extension_tester_1.By.css('span[class^="mtk"]:not(.mtk1)'), timeout, message);
|
|
186
|
-
}
|
|
187
|
-
hasInlayHint(editor, timeout = Delays.normal, message = "Missing inlay hint") {
|
|
188
|
-
return this.hasElement(editor, vscode_extension_tester_1.By.css('[class*="dyn-rule"'), timeout, message);
|
|
189
|
-
}
|
|
190
|
-
revertOpenChanges() {
|
|
191
|
-
return this.bench.executeCommand("workbench.action.revertAndCloseActiveEditor");
|
|
192
|
-
}
|
|
193
|
-
async openModule(file) {
|
|
194
|
-
for (let tries = 0; tries < 10; tries++) {
|
|
195
|
-
await ignoreFails(this.browser.openResources(file));
|
|
196
|
-
await sleep(Delays.fast);
|
|
197
|
-
const result = await ignoreFails(this.bench.getEditorView().openEditor(path.basename(file)));
|
|
198
|
-
await sleep(Delays.fast);
|
|
199
|
-
if (result && await ignoreFails(result.getTitle()) === path.basename(file)) {
|
|
200
|
-
return result;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
throw new Error("Could not open file " + file);
|
|
204
|
-
}
|
|
205
|
-
async triggerTypeChecker(editor, { checkName = "Rascal check", waitForFinish = false, timeout = Delays.verySlow, tplFile = "" } = {}) {
|
|
206
|
-
const lastLine = await editor.getNumberOfLines();
|
|
207
|
-
if (tplFile) {
|
|
208
|
-
await ignoreFails((0, promises_1.unlink)(tplFile));
|
|
209
|
-
}
|
|
210
|
-
await editor.setTextAtLine(lastLine, await editor.getTextAtLine(lastLine) + " ");
|
|
211
|
-
await sleep(50);
|
|
212
|
-
await editor.save();
|
|
213
|
-
await sleep(50);
|
|
214
|
-
if (waitForFinish) {
|
|
215
|
-
let doneChecking = async () => (await this.bench.getStatusBar().getItem(checkName)) === undefined;
|
|
216
|
-
if (tplFile) {
|
|
217
|
-
const oldDone = doneChecking;
|
|
218
|
-
doneChecking = async () => await oldDone() && (await ignoreFails((0, promises_1.stat)(tplFile)) !== undefined);
|
|
219
|
-
}
|
|
220
|
-
await this.driver.wait(doneChecking, timeout, `${checkName} should be finished processing the module`);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
findCodeLens(editor, name, timeout = Delays.slow, message = `Cannot find code lens: ${name}`) {
|
|
224
|
-
return this.driver.wait(() => editor.getCodeLens(name), timeout, message);
|
|
225
|
-
}
|
|
226
|
-
statusContains(needle) {
|
|
227
|
-
return async () => {
|
|
228
|
-
for (const st of await ignoreFails(this.bench.getStatusBar().getItems()) ?? []) {
|
|
229
|
-
if ((await ignoreFails(st.getText()))?.includes(needle)) {
|
|
230
|
-
return true;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return false;
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
screenshot(name) {
|
|
237
|
-
return this.browser.takeScreenshot(name.replace(/[/\\?%*:|"<>]/g, '-'));
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
exports.IDEOperations = IDEOperations;
|
|
241
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/test/vscode-suite/utils.ts"],"names":[],"mappings":"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"}
|