@usethesource/rascal-vscode-dsl-lsp-server 0.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.
- package/LICENSE.txt +24 -0
- package/README.md +9 -0
- package/assets/jars/.gitignore +1 -0
- package/assets/jars/rascal-lsp.jar +0 -0
- package/assets/jars/rascal.jar +0 -0
- package/lib/RascalExtension.d.ts +23 -0
- package/lib/RascalExtension.js +147 -0
- package/lib/RascalExtension.js.map +1 -0
- package/lib/RascalTerminalLinkProvider.d.ts +22 -0
- package/lib/RascalTerminalLinkProvider.js +142 -0
- package/lib/RascalTerminalLinkProvider.js.map +1 -0
- package/lib/auto-jvm/JavaLookup.d.ts +2 -0
- package/lib/auto-jvm/JavaLookup.js +181 -0
- package/lib/auto-jvm/JavaLookup.js.map +1 -0
- package/lib/auto-jvm/downloaders.d.ts +18 -0
- package/lib/auto-jvm/downloaders.js +332 -0
- package/lib/auto-jvm/downloaders.js.map +1 -0
- package/lib/extension.d.ts +7 -0
- package/lib/extension.js +43 -0
- package/lib/extension.js.map +1 -0
- package/lib/fs/RascalFileSystemProviders.d.ts +34 -0
- package/lib/fs/RascalFileSystemProviders.js +69 -0
- package/lib/fs/RascalFileSystemProviders.js.map +1 -0
- package/lib/fs/VSCodeURIResolver.d.ts +71 -0
- package/lib/fs/VSCodeURIResolver.js +383 -0
- package/lib/fs/VSCodeURIResolver.js.map +1 -0
- package/lib/lsp/ParameterizedLanguageServer.d.ts +26 -0
- package/lib/lsp/ParameterizedLanguageServer.js +135 -0
- package/lib/lsp/ParameterizedLanguageServer.js.map +1 -0
- package/lib/lsp/RascalLSPConnection.d.ts +13 -0
- package/lib/lsp/RascalLSPConnection.js +187 -0
- package/lib/lsp/RascalLSPConnection.js.map +1 -0
- package/lib/lsp/RascalLanguageServer.d.ts +9 -0
- package/lib/lsp/RascalLanguageServer.js +32 -0
- package/lib/lsp/RascalLanguageServer.js.map +1 -0
- package/lib/lsp/library.d.ts +2 -0
- package/lib/lsp/library.js +35 -0
- package/lib/lsp/library.js.map +1 -0
- package/lib/test/normal-suite/JavaDownload.test.d.ts +1 -0
- package/lib/test/normal-suite/JavaDownload.test.js +105 -0
- package/lib/test/normal-suite/JavaDownload.test.js.map +1 -0
- package/lib/test/runVSCodeTests.d.ts +1 -0
- package/lib/test/runVSCodeTests.js +48 -0
- package/lib/test/runVSCodeTests.js.map +1 -0
- package/lib/test/vscode-suite/extension.test.d.ts +1 -0
- package/lib/test/vscode-suite/extension.test.js +44 -0
- package/lib/test/vscode-suite/extension.test.js.map +1 -0
- package/lib/test/vscode-suite/index.d.ts +1 -0
- package/lib/test/vscode-suite/index.js +66 -0
- package/lib/test/vscode-suite/index.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchAndUnpackTemurin = exports.fetchAndUnpackCorretto = exports.fetchAndUnpackMicrosoftJDK = exports.identifyLatestTemurinLTSRelease = exports.downloadMicrosoftJDK = exports.downloadCorretto = exports.downloadTemurin = exports.microsoftSupported = exports.correttoSupported = exports.temurinSupported = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2018-2021, NWO-I CWI and Swat.engineering
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
12
|
+
* this list of conditions and the following disclaimer.
|
|
13
|
+
*
|
|
14
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
* and/or other materials provided with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
22
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
29
|
+
*/
|
|
30
|
+
const os = require("os");
|
|
31
|
+
const path = require("path");
|
|
32
|
+
const node_fetch_1 = require("node-fetch");
|
|
33
|
+
const tar = require("tar");
|
|
34
|
+
const stream_1 = require("stream");
|
|
35
|
+
const util_1 = require("util");
|
|
36
|
+
const fs = require("fs");
|
|
37
|
+
const promises_1 = require("fs/promises");
|
|
38
|
+
const yauzl = require("yauzl");
|
|
39
|
+
const ppipeline = (0, util_1.promisify)(stream_1.pipeline);
|
|
40
|
+
function temurinSupported(jdkVersion) {
|
|
41
|
+
switch (os.arch()) {
|
|
42
|
+
case 'x32': return true;
|
|
43
|
+
case 'x64': return true;
|
|
44
|
+
case 'arm': return os.platform() === "linux";
|
|
45
|
+
case 'arm64':
|
|
46
|
+
switch (os.platform()) {
|
|
47
|
+
case 'linux': return true;
|
|
48
|
+
case 'darwin': return jdkVersion === 17;
|
|
49
|
+
default: return false;
|
|
50
|
+
}
|
|
51
|
+
default: return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.temurinSupported = temurinSupported;
|
|
55
|
+
function correttoSupported(jdkVersion) {
|
|
56
|
+
switch (os.arch()) {
|
|
57
|
+
case 'x32': return true;
|
|
58
|
+
case 'x64': return true;
|
|
59
|
+
case 'arm': return os.platform() === "linux" && jdkVersion === 11;
|
|
60
|
+
case 'arm64':
|
|
61
|
+
switch (os.platform()) {
|
|
62
|
+
case 'linux': return true;
|
|
63
|
+
case 'darwin': return jdkVersion === 17;
|
|
64
|
+
default: return false;
|
|
65
|
+
}
|
|
66
|
+
default: return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.correttoSupported = correttoSupported;
|
|
70
|
+
function microsoftSupported(jdkVersion) {
|
|
71
|
+
if (jdkVersion === 8) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
switch (os.arch()) {
|
|
75
|
+
case 'x32': return true;
|
|
76
|
+
case 'x64': return true;
|
|
77
|
+
case 'arm64':
|
|
78
|
+
switch (os.platform()) {
|
|
79
|
+
case 'linux': return true;
|
|
80
|
+
case 'win32': return true;
|
|
81
|
+
case 'darwin': return jdkVersion === 17;
|
|
82
|
+
default: return false;
|
|
83
|
+
}
|
|
84
|
+
default: return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.microsoftSupported = microsoftSupported;
|
|
88
|
+
async function downloadTemurin(mainJVMPath, jdkVersion, progress) {
|
|
89
|
+
const jdkRelease = await identifyLatestTemurinLTSRelease(jdkVersion);
|
|
90
|
+
const arch = mapTemuringCorrettoArch();
|
|
91
|
+
let platform;
|
|
92
|
+
switch (os.platform()) { // again, it's the compile-time platform, not the runtime one
|
|
93
|
+
case 'darwin':
|
|
94
|
+
platform = "mac";
|
|
95
|
+
break;
|
|
96
|
+
case 'linux':
|
|
97
|
+
platform = "linux";
|
|
98
|
+
break;
|
|
99
|
+
case 'win32':
|
|
100
|
+
platform = "windows";
|
|
101
|
+
break;
|
|
102
|
+
default: throw new Error("Unsupported platform: " + os.platform());
|
|
103
|
+
}
|
|
104
|
+
return fetchAndUnpackTemurin(arch, platform, jdkRelease, mainJVMPath, progress);
|
|
105
|
+
}
|
|
106
|
+
exports.downloadTemurin = downloadTemurin;
|
|
107
|
+
async function downloadCorretto(mainJVMPath, jdkVersion, progress) {
|
|
108
|
+
const arch = mapTemuringCorrettoArch();
|
|
109
|
+
let platform;
|
|
110
|
+
switch (os.platform()) { // again, it's the compile-time platform, not the runtime one
|
|
111
|
+
case 'darwin':
|
|
112
|
+
platform = "macos";
|
|
113
|
+
break;
|
|
114
|
+
case 'linux':
|
|
115
|
+
platform = "linux";
|
|
116
|
+
break;
|
|
117
|
+
case 'win32':
|
|
118
|
+
platform = "windows";
|
|
119
|
+
break;
|
|
120
|
+
default: throw new Error("Unsupported platform: " + os.platform());
|
|
121
|
+
}
|
|
122
|
+
return fetchAndUnpackCorretto(arch, platform, jdkVersion, mainJVMPath, progress);
|
|
123
|
+
}
|
|
124
|
+
exports.downloadCorretto = downloadCorretto;
|
|
125
|
+
async function downloadMicrosoftJDK(mainJVMPath, jdkVersion, progress) {
|
|
126
|
+
let arch;
|
|
127
|
+
switch (os.arch()) { // warning, nodejs arch gives the compile-time arch, not the runtime cpu one.
|
|
128
|
+
case "arm64":
|
|
129
|
+
arch = "aarch64";
|
|
130
|
+
break;
|
|
131
|
+
case "x32": // fall through since vscode might be running 32bit version of node
|
|
132
|
+
case "x64":
|
|
133
|
+
arch = "x64";
|
|
134
|
+
break;
|
|
135
|
+
default: throw new Error("Unsupported architecture: " + os.arch());
|
|
136
|
+
}
|
|
137
|
+
let platform;
|
|
138
|
+
switch (os.platform()) { // again, it's the compile-time platform, not the runtime one
|
|
139
|
+
case 'darwin':
|
|
140
|
+
platform = "macOS";
|
|
141
|
+
break;
|
|
142
|
+
case 'linux':
|
|
143
|
+
platform = "linux";
|
|
144
|
+
break;
|
|
145
|
+
case 'win32':
|
|
146
|
+
platform = "windows";
|
|
147
|
+
break;
|
|
148
|
+
default: throw new Error("Unsupported platform: " + os.platform());
|
|
149
|
+
}
|
|
150
|
+
return fetchAndUnpackMicrosoftJDK(arch, platform, jdkVersion, mainJVMPath, progress);
|
|
151
|
+
}
|
|
152
|
+
exports.downloadMicrosoftJDK = downloadMicrosoftJDK;
|
|
153
|
+
// locate newest java <version> release
|
|
154
|
+
async function identifyLatestTemurinLTSRelease(version) {
|
|
155
|
+
const releaseRange = encodeURIComponent(`[${version}.0,${version}.999]`);
|
|
156
|
+
const releasesRaw = await (0, node_fetch_1.default)(`https://api.adoptium.net/v3/info/release_versions?heap_size=normal&image_type=jdk&jvm_impl=hotspot<s=true&page=0&page_size=1&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC&vendor=eclipse&version=${releaseRange}`);
|
|
157
|
+
if (!releasesRaw.ok) {
|
|
158
|
+
throw new Error(`unexpected response ${releasesRaw.statusText}`);
|
|
159
|
+
}
|
|
160
|
+
const releases = await releasesRaw.json();
|
|
161
|
+
if (releases.versions.length <= 0) {
|
|
162
|
+
throw new Error("Adoptium returned no releases");
|
|
163
|
+
}
|
|
164
|
+
const rel = releases.versions[0];
|
|
165
|
+
if (version === 8) {
|
|
166
|
+
return `jdk8u${rel.security}-b${rel.build.toString().padStart(2, '0')}`;
|
|
167
|
+
}
|
|
168
|
+
return `jdk-${rel.openjdk_version}`;
|
|
169
|
+
}
|
|
170
|
+
exports.identifyLatestTemurinLTSRelease = identifyLatestTemurinLTSRelease;
|
|
171
|
+
function mapTemuringCorrettoArch() {
|
|
172
|
+
switch (os.arch()) { // warning, nodejs arch gives the compile-time arch, not the runtime cpu one.
|
|
173
|
+
case "arm": return "arm";
|
|
174
|
+
case "arm64": return "aarch64";
|
|
175
|
+
case "x32": // fall through since vscode might be running 32bit version of node
|
|
176
|
+
case "x64": return "x64";
|
|
177
|
+
default: throw new Error("Unsupported architecture: " + os.arch());
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async function fetchAndUnpackMicrosoftJDK(arch, platform, jdkVersion, mainJVMPath, progress) {
|
|
181
|
+
// https://aka.ms/download-jdk/microsoft-jdk-17-linux-x64.tar.gz
|
|
182
|
+
const url = `https://aka.ms/download-jdk/microsoft-jdk-${jdkVersion}-${platform}-${arch}.${platform === "windows" ? "zip" : "tar.gz"}`;
|
|
183
|
+
switch (platform) {
|
|
184
|
+
case "windows": return fetchUnpackZipInMemory(url, path.join("bin", "java.exe"), mainJVMPath, progress);
|
|
185
|
+
case "macOS": return fetchUnpackTarGZ(url, path.join("Contents", "Home", "bin", "java"), mainJVMPath, progress, 1);
|
|
186
|
+
case "linux": return fetchUnpackTarGZ(url, path.join("bin", "java"), mainJVMPath, progress);
|
|
187
|
+
default: return "";
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.fetchAndUnpackMicrosoftJDK = fetchAndUnpackMicrosoftJDK;
|
|
191
|
+
async function fetchAndUnpackCorretto(arch, platform, jdkVersion, mainJVMPath, progress) {
|
|
192
|
+
// https://corretto.aws/[latest/latest_checksum]/amazon-corretto-[corretto_version]-[cpu_arch]-[os]-[package_type].[file_extension]
|
|
193
|
+
// https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz
|
|
194
|
+
const url = `https://corretto.aws/downloads/latest/amazon-corretto-${jdkVersion}-${arch}-${platform}-jdk.${platform === "windows" ? "zip" : "tar.gz"}`;
|
|
195
|
+
switch (platform) {
|
|
196
|
+
case "windows": return fetchUnpackZipInMemory(url, path.join("bin", "java.exe"), mainJVMPath, progress);
|
|
197
|
+
case "macos": return fetchUnpackTarGZ(url, path.join("Contents", "Home", "bin", "java"), mainJVMPath, progress);
|
|
198
|
+
case "linux": return fetchUnpackTarGZ(url, path.join("bin", "java"), mainJVMPath, progress);
|
|
199
|
+
default: return "";
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.fetchAndUnpackCorretto = fetchAndUnpackCorretto;
|
|
203
|
+
async function fetchAndUnpackTemurin(arch, platform, jdk11Release, mainJVMPath, progress) {
|
|
204
|
+
// https://api.adoptium.net/v3/binary/version/jdk-11.0.13%2B8/linux/x64/jdk/hotspot/normal/eclipse?project=jdk
|
|
205
|
+
const url = `https://api.adoptium.net/v3/binary/version/${encodeURIComponent(jdk11Release)}/${platform}/${arch}/jdk/hotspot/normal/eclipse?project=jdk`;
|
|
206
|
+
switch (platform) {
|
|
207
|
+
case "windows": return fetchUnpackZipInMemory(url, path.join("bin", "java.exe"), mainJVMPath, progress);
|
|
208
|
+
case "mac": return fetchUnpackTarGZ(url, path.join("Contents", "Home", "bin", "java"), mainJVMPath, progress);
|
|
209
|
+
case "linux": return fetchUnpackTarGZ(url, path.join("bin", "java"), mainJVMPath, progress);
|
|
210
|
+
default: return "";
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
exports.fetchAndUnpackTemurin = fetchAndUnpackTemurin;
|
|
214
|
+
// unpack
|
|
215
|
+
async function fetchUnpackTarGZ(url, subpath, mainJVMPath, progress, strip = 0) {
|
|
216
|
+
const response = await (0, node_fetch_1.default)(url);
|
|
217
|
+
if (!response.ok) {
|
|
218
|
+
throw new Error(`unexpected response ${response.statusText}`);
|
|
219
|
+
}
|
|
220
|
+
await (0, promises_1.mkdir)(mainJVMPath, { recursive: true });
|
|
221
|
+
return new Promise((resolve, reject) => {
|
|
222
|
+
if (!response.body) {
|
|
223
|
+
reject(new Error("Empty body in response"));
|
|
224
|
+
}
|
|
225
|
+
let detectedRootPath = "";
|
|
226
|
+
const size = Number(response.headers.get("Content-Length") || "0");
|
|
227
|
+
(0, stream_1.pipeline)(response.body, new stream_1.Transform({
|
|
228
|
+
transform: function (chunk, encoding, callback) {
|
|
229
|
+
progress(100 * (chunk.length / size), "Downloading and extracting tar");
|
|
230
|
+
this.push(chunk);
|
|
231
|
+
callback();
|
|
232
|
+
}
|
|
233
|
+
}), tar.extract({
|
|
234
|
+
cwd: mainJVMPath,
|
|
235
|
+
strip: strip,
|
|
236
|
+
onentry: e => {
|
|
237
|
+
if ((detectedRootPath === "" || detectedRootPath === ".") && !e.meta) {
|
|
238
|
+
detectedRootPath = e.path.split('/')[strip];
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}), e => { if (e) {
|
|
242
|
+
reject(e);
|
|
243
|
+
} }).on("close", () => {
|
|
244
|
+
const jdkPath = path.join(mainJVMPath, detectedRootPath);
|
|
245
|
+
fs.createWriteStream(path.join(jdkPath, "rascal-auto-download")).close();
|
|
246
|
+
resolve(path.join(jdkPath, subpath));
|
|
247
|
+
})
|
|
248
|
+
.on("error", e => {
|
|
249
|
+
reject(e);
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
async function streamToBuffer(response, progress) {
|
|
254
|
+
const size = Number(response.headers.get("Content-Length") || "0");
|
|
255
|
+
if (size === 0) {
|
|
256
|
+
console.log("No content-length found");
|
|
257
|
+
return new Promise((resolve, reject) => {
|
|
258
|
+
const data = [];
|
|
259
|
+
response.body.on('data', (chunk) => {
|
|
260
|
+
data.push(chunk);
|
|
261
|
+
});
|
|
262
|
+
response.body.on('end', () => {
|
|
263
|
+
resolve(Buffer.concat(data));
|
|
264
|
+
});
|
|
265
|
+
response.body.on('error', (err) => {
|
|
266
|
+
progress(50, "Downloaded zip");
|
|
267
|
+
reject(err);
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
return new Promise((resolve, reject) => {
|
|
272
|
+
const data = Buffer.alloc(size);
|
|
273
|
+
let written = 0;
|
|
274
|
+
response.body.on('data', (chunk) => {
|
|
275
|
+
const wrote = chunk.copy(data, written, 0);
|
|
276
|
+
progress(50 * (wrote / size), "Downloading zip");
|
|
277
|
+
written += wrote;
|
|
278
|
+
});
|
|
279
|
+
response.body.on('end', () => {
|
|
280
|
+
resolve(data);
|
|
281
|
+
});
|
|
282
|
+
response.body.on('error', (err) => {
|
|
283
|
+
reject(err);
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
const zipFromBuffer = (0, util_1.promisify)(yauzl.fromBuffer);
|
|
288
|
+
// unpack zip and detect root folder
|
|
289
|
+
async function fetchUnpackZipInMemory(url, subpath, mainJVMPath, progress) {
|
|
290
|
+
const response = await (0, node_fetch_1.default)(url);
|
|
291
|
+
if (!response.ok || !response.body) {
|
|
292
|
+
throw new Error(`unexpected response ${response.statusText} || body: ${response.body}`);
|
|
293
|
+
}
|
|
294
|
+
const zipFileInMemory = await streamToBuffer(response, progress);
|
|
295
|
+
await (0, promises_1.mkdir)(mainJVMPath, { recursive: true });
|
|
296
|
+
const zipFile = await zipFromBuffer(zipFileInMemory, { lazyEntries: true, autoClose: true });
|
|
297
|
+
if (!zipFile) {
|
|
298
|
+
throw new Error("Error opening zip file from stream");
|
|
299
|
+
}
|
|
300
|
+
return new Promise((resolve, reject) => {
|
|
301
|
+
let detectedRootPath = "";
|
|
302
|
+
zipFile.on("entry", async (entry) => {
|
|
303
|
+
progress(50 / zipFile.entryCount, "Unpacking zip file");
|
|
304
|
+
if (detectedRootPath === "" && entry.fileName.includes('/')) {
|
|
305
|
+
detectedRootPath = entry.fileName.split('/')[0];
|
|
306
|
+
}
|
|
307
|
+
const destFile = path.join(mainJVMPath, entry.fileName);
|
|
308
|
+
await (0, promises_1.mkdir)(path.dirname(destFile), { recursive: true });
|
|
309
|
+
const mode = (entry.externalFileAttributes >> 16) & 0xFFFF;
|
|
310
|
+
if ((mode & 0xF000) === 0x4000 || entry.fileName.endsWith('/')) {
|
|
311
|
+
zipFile.readEntry(); // skip directory entries
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
const readStream = await (0, util_1.promisify)(zipFile.openReadStream.bind(zipFile))(entry);
|
|
315
|
+
if (!readStream) {
|
|
316
|
+
reject("Error opening stream: " + entry.fileName);
|
|
317
|
+
zipFile.close();
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
await ppipeline(readStream, fs.createWriteStream(destFile));
|
|
321
|
+
zipFile.readEntry(); // continue to next entry
|
|
322
|
+
});
|
|
323
|
+
zipFile.on("error", (e) => reject(e));
|
|
324
|
+
zipFile.on("end", () => {
|
|
325
|
+
const jdkPath = path.join(mainJVMPath, detectedRootPath);
|
|
326
|
+
fs.createWriteStream(path.join(jdkPath, "rascal-auto-download")).close();
|
|
327
|
+
resolve(path.join(jdkPath, subpath));
|
|
328
|
+
});
|
|
329
|
+
zipFile.readEntry(); // start chain
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=downloaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloaders.js","sourceRoot":"","sources":["../../src/auto-jvm/downloaders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
export declare function activate(context: vscode.ExtensionContext): {
|
|
3
|
+
registerLanguage: (lang: import("./lsp/ParameterizedLanguageServer").LanguageParameter) => Promise<void>;
|
|
4
|
+
unregisterLanguage: (lang: import("./lsp/ParameterizedLanguageServer").LanguageParameter) => Promise<void>;
|
|
5
|
+
getRascalExtensionDeploymode: () => boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function deactivate(): void;
|
package/lib/extension.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deactivate = exports.activate = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright (c) 2018-2021, NWO-I CWI and Swat.engineering
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
12
|
+
* this list of conditions and the following disclaimer.
|
|
13
|
+
*
|
|
14
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
* and/or other materials provided with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
19
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
20
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
21
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
22
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
23
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
24
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
25
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
26
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
27
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
29
|
+
*/
|
|
30
|
+
const path = require("path");
|
|
31
|
+
const RascalExtension_1 = require("./RascalExtension");
|
|
32
|
+
const testDeployMode = (process.env.RASCAL_LSP_DEV_DEPLOY || "false") === "true";
|
|
33
|
+
const deployMode = (process.env.RASCAL_LSP_DEV || "false") !== "true";
|
|
34
|
+
function activate(context) {
|
|
35
|
+
const jars = context.asAbsolutePath(path.join('.', 'assets', 'jars'));
|
|
36
|
+
const extension = new RascalExtension_1.RascalExtension(context, jars, (deployMode || testDeployMode));
|
|
37
|
+
context.subscriptions.push(extension);
|
|
38
|
+
return extension.externalLanguageRegistry();
|
|
39
|
+
}
|
|
40
|
+
exports.activate = activate;
|
|
41
|
+
function deactivate() { }
|
|
42
|
+
exports.deactivate = deactivate;
|
|
43
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,6BAA6B;AAG7B,uDAAoD;AAEpD,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,KAAK,MAAM,CAAC;AACjF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,MAAM,CAAC;AAGtE,SAAgB,QAAQ,CAAC,OAAgC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,iCAAe,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,UAAU,IAAI,cAAc,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,SAAS,CAAC,wBAAwB,EAAE,CAAC;AAChD,CAAC;AALD,4BAKC;AAGD,SAAgB,UAAU,KAAI,CAAC;AAA/B,gCAA+B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
import { LanguageClient } from 'vscode-languageclient/node';
|
|
3
|
+
export declare class RascalFileSystemProvider implements vscode.FileSystemProvider {
|
|
4
|
+
readonly client: LanguageClient;
|
|
5
|
+
private readonly _emitter;
|
|
6
|
+
readonly onDidChangeFile: vscode.Event<vscode.FileChangeEvent[]>;
|
|
7
|
+
private readonly protectedSchemes;
|
|
8
|
+
/**
|
|
9
|
+
* Registers a single FileSystemProvider for every URI scheme that Rascal supports, except
|
|
10
|
+
* for file, http and https.
|
|
11
|
+
*
|
|
12
|
+
* @param client to use as a server for the file system provider methods
|
|
13
|
+
*/
|
|
14
|
+
constructor(client: LanguageClient);
|
|
15
|
+
registerSchemes(schemes: string[]): void;
|
|
16
|
+
watch(uri: vscode.Uri, options: {
|
|
17
|
+
recursive: boolean;
|
|
18
|
+
excludes: string[];
|
|
19
|
+
}): vscode.Disposable;
|
|
20
|
+
stat(uri: vscode.Uri): vscode.FileStat | Thenable<vscode.FileStat>;
|
|
21
|
+
readDirectory(uri: vscode.Uri): [string, vscode.FileType][] | Thenable<[string, vscode.FileType][]>;
|
|
22
|
+
createDirectory(uri: vscode.Uri): void | Thenable<void>;
|
|
23
|
+
readFile(uri: vscode.Uri): Uint8Array | Thenable<Uint8Array>;
|
|
24
|
+
writeFile(uri: vscode.Uri, content: Uint8Array, options: {
|
|
25
|
+
create: boolean;
|
|
26
|
+
overwrite: boolean;
|
|
27
|
+
}): void | Thenable<void>;
|
|
28
|
+
delete(uri: vscode.Uri, options: {
|
|
29
|
+
recursive: boolean;
|
|
30
|
+
}): void | Thenable<void>;
|
|
31
|
+
rename(oldUri: vscode.Uri, newUri: vscode.Uri, options: {
|
|
32
|
+
overwrite: boolean;
|
|
33
|
+
}): void | Thenable<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RascalFileSystemProvider = void 0;
|
|
4
|
+
const vscode = require("vscode");
|
|
5
|
+
class RascalFileSystemProvider {
|
|
6
|
+
/**
|
|
7
|
+
* Registers a single FileSystemProvider for every URI scheme that Rascal supports, except
|
|
8
|
+
* for file, http and https.
|
|
9
|
+
*
|
|
10
|
+
* @param client to use as a server for the file system provider methods
|
|
11
|
+
*/
|
|
12
|
+
constructor(client) {
|
|
13
|
+
this._emitter = new vscode.EventEmitter();
|
|
14
|
+
this.onDidChangeFile = this._emitter.event;
|
|
15
|
+
this.protectedSchemes = ["file", "http", "https", "unknown"];
|
|
16
|
+
this.client = client;
|
|
17
|
+
client.onNotification("rascal/filesystem/onDidChangeFile", (event) => {
|
|
18
|
+
this._emitter.fire([event]);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
registerSchemes(schemes) {
|
|
22
|
+
schemes
|
|
23
|
+
.filter(s => !this.protectedSchemes.includes(s))
|
|
24
|
+
.forEach(s => vscode.workspace.registerFileSystemProvider(s, this));
|
|
25
|
+
}
|
|
26
|
+
watch(uri, options) {
|
|
27
|
+
// TODO: fix this
|
|
28
|
+
this.client.sendRequest("rascal/filesystem/watch", {
|
|
29
|
+
uri: uri.toString(),
|
|
30
|
+
recursive: options.recursive,
|
|
31
|
+
excludes: options.excludes
|
|
32
|
+
});
|
|
33
|
+
return new vscode.Disposable(() => {
|
|
34
|
+
this.client.sendRequest("rascal/filesystem/unwatch", {
|
|
35
|
+
uri: uri.toString()
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
stat(uri) {
|
|
40
|
+
return this.client.sendRequest("rascal/filesystem/stat", { uri: uri.toString() });
|
|
41
|
+
}
|
|
42
|
+
readDirectory(uri) {
|
|
43
|
+
return this.client.sendRequest("rascal/filesystem/readDirectory", { uri: uri.toString() });
|
|
44
|
+
}
|
|
45
|
+
createDirectory(uri) {
|
|
46
|
+
return this.client.sendRequest("rascal/filesystem/createDirectory", { uri: uri.toString() });
|
|
47
|
+
}
|
|
48
|
+
readFile(uri) {
|
|
49
|
+
return this.client.sendRequest("rascal/filesystem/readFile", { uri: uri.toString() })
|
|
50
|
+
.then(content => content.content)
|
|
51
|
+
.then(str => Buffer.from(str, "base64"));
|
|
52
|
+
}
|
|
53
|
+
writeFile(uri, content, options) {
|
|
54
|
+
return this.client.sendRequest("rascal/filesystem/writeFile", {
|
|
55
|
+
uri: uri.toString(),
|
|
56
|
+
create: options.create,
|
|
57
|
+
overwrite: options.overwrite,
|
|
58
|
+
content: Buffer.from(content).toString("base64")
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
delete(uri, options) {
|
|
62
|
+
return this.client.sendRequest("rascal/filesystem/delete", { uri: uri.toString(), recursive: options.recursive });
|
|
63
|
+
}
|
|
64
|
+
rename(oldUri, newUri, options) {
|
|
65
|
+
return this.client.sendRequest("rascal/filesystem/rename", { oldUri: oldUri.toString(), newUri: newUri.toString(), overwrite: options.overwrite });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.RascalFileSystemProvider = RascalFileSystemProvider;
|
|
69
|
+
//# sourceMappingURL=RascalFileSystemProviders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RascalFileSystemProviders.js","sourceRoot":"","sources":["../../src/fs/RascalFileSystemProviders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Disposable } from "vscode";
|
|
2
|
+
import { integer, URI } from "vscode-languageclient";
|
|
3
|
+
declare type ISourceLocation = URI;
|
|
4
|
+
export interface WatchEventReceiver {
|
|
5
|
+
emitWatch(event: ISourceLocationChanged): void;
|
|
6
|
+
}
|
|
7
|
+
interface ISourceLocationRequest {
|
|
8
|
+
uri: ISourceLocation;
|
|
9
|
+
}
|
|
10
|
+
interface IOResult {
|
|
11
|
+
/**
|
|
12
|
+
* Error type occurred (or 0 if success)
|
|
13
|
+
*/
|
|
14
|
+
errorCode: integer;
|
|
15
|
+
errorMessage?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BooleanResult extends IOResult {
|
|
18
|
+
result?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TimestampResult extends IOResult {
|
|
21
|
+
/**
|
|
22
|
+
* Epoch seconds
|
|
23
|
+
*/
|
|
24
|
+
timestamp?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface DirectoryListingResult extends IOResult {
|
|
27
|
+
entries?: string[];
|
|
28
|
+
areDirectory?: boolean[];
|
|
29
|
+
}
|
|
30
|
+
export interface WriteFileRequest extends ISourceLocationRequest {
|
|
31
|
+
content: string;
|
|
32
|
+
append: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface RenameRequest {
|
|
35
|
+
from: ISourceLocation;
|
|
36
|
+
to: ISourceLocation;
|
|
37
|
+
overwrite: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface WatchRequest extends ISourceLocationRequest {
|
|
40
|
+
/**
|
|
41
|
+
* subscription id, this helps the calling in linking up to the original request
|
|
42
|
+
* as the watches are recursive
|
|
43
|
+
*/
|
|
44
|
+
watcher: string;
|
|
45
|
+
}
|
|
46
|
+
export declare enum ISourceLocationChangeType {
|
|
47
|
+
created = 1,
|
|
48
|
+
deleted = 2,
|
|
49
|
+
modified = 3
|
|
50
|
+
}
|
|
51
|
+
export declare enum ISourceLocationType {
|
|
52
|
+
file = 1,
|
|
53
|
+
directory = 2
|
|
54
|
+
}
|
|
55
|
+
export interface ISourceLocationChanged {
|
|
56
|
+
watchId: string;
|
|
57
|
+
location: ISourceLocation;
|
|
58
|
+
changeType: ISourceLocationChangeType;
|
|
59
|
+
type: ISourceLocationType;
|
|
60
|
+
}
|
|
61
|
+
export declare class VSCodeUriResolverServer implements Disposable {
|
|
62
|
+
private readonly server;
|
|
63
|
+
private activeClients;
|
|
64
|
+
private rascalNativeSchemes;
|
|
65
|
+
constructor(debug: boolean);
|
|
66
|
+
ignoreSchemes(toIgnore: string[]): void;
|
|
67
|
+
dispose(): void;
|
|
68
|
+
private handleNewClient;
|
|
69
|
+
get port(): number;
|
|
70
|
+
}
|
|
71
|
+
export {};
|