@usethesource/rascal-vscode-dsl-lsp-server 0.11.2 → 0.12.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/assets/jars/rascal-lsp.jar +0 -0
- package/assets/jars/rascal.jar +0 -0
- package/lib/Identifiers.d.ts +1 -0
- package/lib/Identifiers.js +31 -0
- package/lib/Identifiers.js.map +1 -0
- package/lib/RascalExtension.d.ts +2 -0
- package/lib/RascalExtension.js +85 -9
- package/lib/RascalExtension.js.map +1 -1
- package/lib/RascalTerminalLinkProvider.d.ts +2 -2
- package/lib/RascalTerminalLinkProvider.js +25 -1
- package/lib/RascalTerminalLinkProvider.js.map +1 -1
- package/lib/auto-jvm/JavaLookup.js +32 -10
- package/lib/auto-jvm/JavaLookup.js.map +1 -1
- package/lib/auto-jvm/ReleaseInfo.js +4 -5
- package/lib/auto-jvm/ReleaseInfo.js.map +1 -1
- package/lib/auto-jvm/downloaders.js +92 -63
- package/lib/auto-jvm/downloaders.js.map +1 -1
- package/lib/dap/RascalDebugAdapterDescriptorFactory.js +1 -1
- package/lib/dap/RascalDebugAdapterDescriptorFactory.js.map +1 -1
- package/lib/dap/RascalDebugClient.js +16 -5
- package/lib/dap/RascalDebugClient.js.map +1 -1
- package/lib/dap/RascalDebugConfigurationProvider.d.ts +1 -1
- package/lib/dap/RascalDebugConfigurationProvider.js +4 -3
- package/lib/dap/RascalDebugConfigurationProvider.js.map +1 -1
- package/lib/extension.js +31 -7
- package/lib/extension.js.map +1 -1
- package/lib/fs/RascalFileSystemProviders.d.ts +3 -3
- package/lib/fs/RascalFileSystemProviders.js +28 -4
- package/lib/fs/RascalFileSystemProviders.js.map +1 -1
- package/lib/fs/VSCodeURIResolver.js +37 -7
- package/lib/fs/VSCodeURIResolver.js.map +1 -1
- package/lib/lsp/ParameterizedLanguageServer.d.ts +7 -2
- package/lib/lsp/ParameterizedLanguageServer.js +33 -4
- package/lib/lsp/ParameterizedLanguageServer.js.map +1 -1
- package/lib/lsp/RascalLSPConnection.js +28 -6
- package/lib/lsp/RascalLSPConnection.js.map +1 -1
- package/lib/lsp/RascalLanguageServer.d.ts +3 -3
- package/lib/lsp/RascalLanguageServer.js +5 -2
- package/lib/lsp/RascalLanguageServer.js.map +1 -1
- package/lib/lsp/library.d.ts +2 -1
- package/lib/lsp/library.js.map +1 -1
- package/lib/rewritePackageForNPMPublish.d.ts +1 -0
- package/lib/rewritePackageForNPMPublish.js +53 -0
- package/lib/rewritePackageForNPMPublish.js.map +1 -0
- package/lib/ux/LibraryNavigator.d.ts +2 -2
- package/lib/ux/LibraryNavigator.js +37 -5
- package/lib/ux/LibraryNavigator.js.map +1 -1
- package/lib/ux/RascalMFValidator.d.ts +1 -0
- package/lib/ux/RascalMFValidator.js +42 -19
- package/lib/ux/RascalMFValidator.js.map +1 -1
- package/lib/ux/RascalProjectValidator.d.ts +21 -0
- package/lib/ux/RascalProjectValidator.js +229 -0
- package/lib/ux/RascalProjectValidator.js.map +1 -0
- package/package.json +13 -15
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.RascalLibraryProvider = void 0;
|
|
4
27
|
/*
|
|
@@ -27,14 +50,15 @@ exports.RascalLibraryProvider = void 0;
|
|
|
27
50
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
51
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
29
52
|
*/
|
|
30
|
-
const vscode = require("vscode");
|
|
53
|
+
const vscode = __importStar(require("vscode"));
|
|
31
54
|
const RascalMFValidator_1 = require("./RascalMFValidator");
|
|
32
55
|
const path_1 = require("path"); // posix path join is always correct, also on windows
|
|
33
56
|
class RascalLibraryProvider {
|
|
57
|
+
rascalClient;
|
|
58
|
+
changeEmitter = new vscode.EventEmitter();
|
|
59
|
+
onDidChangeTreeData = this.changeEmitter.event;
|
|
34
60
|
constructor(rascalClient) {
|
|
35
61
|
this.rascalClient = rascalClient;
|
|
36
|
-
this.changeEmitter = new vscode.EventEmitter();
|
|
37
|
-
this.onDidChangeTreeData = this.changeEmitter.event;
|
|
38
62
|
vscode.workspace.onDidChangeWorkspaceFolders(_e => {
|
|
39
63
|
this.changeEmitter.fire(undefined);
|
|
40
64
|
});
|
|
@@ -54,6 +78,7 @@ class RascalLibraryProvider {
|
|
|
54
78
|
}
|
|
55
79
|
exports.RascalLibraryProvider = RascalLibraryProvider;
|
|
56
80
|
class RascalLibNode extends vscode.TreeItem {
|
|
81
|
+
parent;
|
|
57
82
|
constructor(resourceUriOrLabel, collapsibleState, parent) {
|
|
58
83
|
/* overloaded constructors are strange in typescript */
|
|
59
84
|
super(resourceUriOrLabel, collapsibleState);
|
|
@@ -66,6 +91,9 @@ var PathConfigMode;
|
|
|
66
91
|
PathConfigMode[PathConfigMode["compiler"] = 1] = "compiler";
|
|
67
92
|
})(PathConfigMode || (PathConfigMode = {}));
|
|
68
93
|
class RascalProjectRoot extends RascalLibNode {
|
|
94
|
+
name;
|
|
95
|
+
loc;
|
|
96
|
+
rascalClient;
|
|
69
97
|
constructor(name, loc, rascalClient) {
|
|
70
98
|
super(name, vscode.TreeItemCollapsibleState.Collapsed, undefined);
|
|
71
99
|
this.name = name;
|
|
@@ -80,6 +108,7 @@ class RascalProjectRoot extends RascalLibNode {
|
|
|
80
108
|
}
|
|
81
109
|
}
|
|
82
110
|
class RascalPathNode extends RascalLibNode {
|
|
111
|
+
subPaths;
|
|
83
112
|
constructor(pathConfigPart, subPaths, parent) {
|
|
84
113
|
super(pathConfigPart, vscode.TreeItemCollapsibleState.Collapsed, parent);
|
|
85
114
|
this.subPaths = subPaths;
|
|
@@ -92,8 +121,7 @@ class RascalPathNode extends RascalLibNode {
|
|
|
92
121
|
return vscode.Uri.file(s);
|
|
93
122
|
}
|
|
94
123
|
return vscode.Uri.parse(s);
|
|
95
|
-
})
|
|
96
|
-
.map(u => new RascalLibraryRoot(u, this));
|
|
124
|
+
}).map(u => new RascalLibraryRoot(u, this));
|
|
97
125
|
}
|
|
98
126
|
}
|
|
99
127
|
function calculateLabel(location) {
|
|
@@ -120,6 +148,7 @@ function calculateLabel(location) {
|
|
|
120
148
|
return location.toString();
|
|
121
149
|
}
|
|
122
150
|
class RascalLibraryRoot extends RascalLibNode {
|
|
151
|
+
actualLocation;
|
|
123
152
|
constructor(actualLocation, parent) {
|
|
124
153
|
super(calculateLabel(actualLocation), vscode.TreeItemCollapsibleState.Collapsed, parent);
|
|
125
154
|
this.actualLocation = actualLocation;
|
|
@@ -155,6 +184,7 @@ async function getChildren(loc, parent) {
|
|
|
155
184
|
return result;
|
|
156
185
|
}
|
|
157
186
|
class RascalFSDirEntry extends RascalLibNode {
|
|
187
|
+
dirName;
|
|
158
188
|
constructor(dirName, parentDir, parent) {
|
|
159
189
|
super(vscode.Uri.joinPath(parentDir, dirName), vscode.TreeItemCollapsibleState.Collapsed, parent);
|
|
160
190
|
this.dirName = dirName;
|
|
@@ -166,6 +196,8 @@ class RascalFSDirEntry extends RascalLibNode {
|
|
|
166
196
|
}
|
|
167
197
|
}
|
|
168
198
|
class RascalFSFileEntry extends RascalLibNode {
|
|
199
|
+
fileName;
|
|
200
|
+
parentDir;
|
|
169
201
|
constructor(fileName, parentDir, parent) {
|
|
170
202
|
super(vscode.Uri.joinPath(parentDir, fileName), vscode.TreeItemCollapsibleState.None, parent);
|
|
171
203
|
this.fileName = fileName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibraryNavigator.js","sourceRoot":"","sources":["../../src/ux/LibraryNavigator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LibraryNavigator.js","sourceRoot":"","sources":["../../src/ux/LibraryNavigator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
26
|
+
exports.RascalMFValidator = exports.MF_FILE = void 0;
|
|
27
|
+
exports.buildMFChildPath = buildMFChildPath;
|
|
4
28
|
/*
|
|
5
29
|
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
6
30
|
* All rights reserved.
|
|
@@ -27,16 +51,17 @@ exports.buildMFChildPath = exports.RascalMFValidator = void 0;
|
|
|
27
51
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
28
52
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
29
53
|
*/
|
|
30
|
-
const vscode = require("vscode");
|
|
54
|
+
const vscode = __importStar(require("vscode"));
|
|
31
55
|
const path_1 = require("path"); // posix path join is always correct, also on windows
|
|
32
|
-
|
|
56
|
+
exports.MF_FILE = "RASCAL.MF";
|
|
33
57
|
const MF_DIR = "META-INF";
|
|
34
58
|
/**
|
|
35
59
|
* Check for common errors in RASCAL.MF files, and try and fix them if possible
|
|
36
60
|
*/
|
|
37
61
|
class RascalMFValidator {
|
|
62
|
+
diagnostics;
|
|
63
|
+
toDispose = [];
|
|
38
64
|
constructor() {
|
|
39
|
-
this.toDispose = [];
|
|
40
65
|
this.diagnostics = vscode.languages.createDiagnosticCollection("Rascal MF Diagnostics");
|
|
41
66
|
// any new project should be checked
|
|
42
67
|
vscode.workspace.onDidChangeWorkspaceFolders(async (ws) => {
|
|
@@ -63,11 +88,11 @@ class RascalMFValidator {
|
|
|
63
88
|
// all changed files should be checked on save (for example a git pull)
|
|
64
89
|
// we use the filesystem watcher since a user might not have the RASCAL.MF open, but we still want to warn them
|
|
65
90
|
// note that warnings/errors are only cleared at a save
|
|
66
|
-
const watcher = vscode.workspace.createFileSystemWatcher("**/" + MF_FILE, true, false, false);
|
|
91
|
+
const watcher = vscode.workspace.createFileSystemWatcher("**/" + exports.MF_FILE, true, false, false);
|
|
67
92
|
watcher.onDidChange(this.verifyRascalMF, this, this.toDispose);
|
|
68
93
|
watcher.onDidDelete(e => this.diagnostics.delete(e), this, this.toDispose); // clear errors for a file
|
|
69
94
|
this.toDispose.push(watcher);
|
|
70
|
-
this.toDispose.push(vscode.languages.registerCodeActionsProvider({ pattern: "**/" + MF_FILE }, new FixMFErrors()));
|
|
95
|
+
this.toDispose.push(vscode.languages.registerCodeActionsProvider({ pattern: "**/" + exports.MF_FILE }, new FixMFErrors()));
|
|
71
96
|
}
|
|
72
97
|
dispose() {
|
|
73
98
|
try {
|
|
@@ -108,7 +133,7 @@ var FixKind;
|
|
|
108
133
|
function checkMissingLastLine(mfBody, diagnostics) {
|
|
109
134
|
const lastLine = mfBody.lineAt(mfBody.lineCount - 1);
|
|
110
135
|
if (lastLine.text !== "") {
|
|
111
|
-
const diag = new vscode.Diagnostic(lastLine.range, `Skipping the last line of ${MF_FILE} completely, unless the file ends with an empty line (no spaces, no comments).`, vscode.DiagnosticSeverity.Error);
|
|
136
|
+
const diag = new vscode.Diagnostic(lastLine.range, `Skipping the last line of ${exports.MF_FILE} completely, unless the file ends with an empty line (no spaces, no comments).`, vscode.DiagnosticSeverity.Error);
|
|
112
137
|
diag.code = FixKind.addNewLine;
|
|
113
138
|
diagnostics.push(diag);
|
|
114
139
|
}
|
|
@@ -118,10 +143,10 @@ function checkIncorrectProjectName(mfBody, diagnostics) {
|
|
|
118
143
|
let hasProjectName = false;
|
|
119
144
|
for (let l = 0; l < mfBody.lineCount; l++) {
|
|
120
145
|
const line = mfBody.lineAt(l);
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
146
|
+
const [key, value] = line.text.split(":");
|
|
147
|
+
if (key && value && key.trim() === "Project-Name") {
|
|
123
148
|
hasProjectName = true;
|
|
124
|
-
const prName =
|
|
149
|
+
const prName = value.split("#")[0].trim();
|
|
125
150
|
const offset = line.text.indexOf(prName);
|
|
126
151
|
const targetRange = new vscode.Range(l, offset, l, offset + prName.length);
|
|
127
152
|
const expectedName = calculateProjectName(mfBody.uri);
|
|
@@ -145,11 +170,10 @@ const commonTypos = new Set(['required-libraries', 'require-library', 'required-
|
|
|
145
170
|
function checkCommonTypo(mfBody, diagnostics) {
|
|
146
171
|
for (let l = 0; l < mfBody.lineCount; l++) {
|
|
147
172
|
const line = mfBody.lineAt(l);
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const originalLabel = kvPair[0];
|
|
173
|
+
const [key, value] = line.text.split(":");
|
|
174
|
+
if (key && value) {
|
|
175
|
+
if (commonTypos.has(key.trim().toLocaleLowerCase())) {
|
|
176
|
+
const originalLabel = value;
|
|
153
177
|
const diag = new vscode.Diagnostic(new vscode.Range(l, 0, l, originalLabel.length), `"${originalLabel} was not recognized. Did you mean Require-Libraries?`);
|
|
154
178
|
diag.code = FixKind.requireLibrariesTypo;
|
|
155
179
|
diagnostics.push(diag);
|
|
@@ -158,11 +182,10 @@ function checkCommonTypo(mfBody, diagnostics) {
|
|
|
158
182
|
}
|
|
159
183
|
}
|
|
160
184
|
function buildMFChildPath(uri) {
|
|
161
|
-
return vscode.Uri.joinPath(uri, MF_DIR, MF_FILE);
|
|
185
|
+
return vscode.Uri.joinPath(uri, MF_DIR, exports.MF_FILE);
|
|
162
186
|
}
|
|
163
|
-
exports.buildMFChildPath = buildMFChildPath;
|
|
164
187
|
class FixMFErrors {
|
|
165
|
-
provideCodeActions(document,
|
|
188
|
+
provideCodeActions(document, _range, context, _token) {
|
|
166
189
|
const result = [];
|
|
167
190
|
for (const diag of context.diagnostics) {
|
|
168
191
|
switch (diag.code) {
|
|
@@ -210,7 +233,7 @@ class FixMFErrors {
|
|
|
210
233
|
}
|
|
211
234
|
function calculateProjectName(uri) {
|
|
212
235
|
const path = path_1.posix.dirname(uri.path);
|
|
213
|
-
if (path_1.posix.basename(uri.path) !== MF_FILE || path_1.posix.basename(path) !== MF_DIR) {
|
|
236
|
+
if (path_1.posix.basename(uri.path) !== exports.MF_FILE || path_1.posix.basename(path) !== MF_DIR) {
|
|
214
237
|
throw new Error("Cannot calculate project name for <uri.path>");
|
|
215
238
|
}
|
|
216
239
|
return path_1.posix.basename(path_1.posix.dirname(path));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RascalMFValidator.js","sourceRoot":"","sources":["../../src/ux/RascalMFValidator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RascalMFValidator.js","sourceRoot":"","sources":["../../src/ux/RascalMFValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as vscode from 'vscode';
|
|
2
|
+
import { Uri } from 'vscode';
|
|
3
|
+
export declare class RascalProjectValidator implements vscode.Disposable {
|
|
4
|
+
private readonly toDispose;
|
|
5
|
+
private readonly diagnostics;
|
|
6
|
+
private readonly cachedSourcePaths;
|
|
7
|
+
constructor();
|
|
8
|
+
validateAllOpenEditors(): Promise<void>;
|
|
9
|
+
rascalMFChanged(mfFile: Uri): Promise<void>;
|
|
10
|
+
validate(e: vscode.TextDocument): Promise<void>;
|
|
11
|
+
getManifest(mf: vscode.Uri): Promise<RascalManifest>;
|
|
12
|
+
closeFile(e: vscode.TextDocument): void;
|
|
13
|
+
dispose(): void;
|
|
14
|
+
}
|
|
15
|
+
declare class RascalManifest {
|
|
16
|
+
readonly sources: Uri[];
|
|
17
|
+
readonly libraries: string[];
|
|
18
|
+
private constructor();
|
|
19
|
+
static parse(mf: Uri): Promise<RascalManifest>;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.RascalProjectValidator = void 0;
|
|
27
|
+
/*
|
|
28
|
+
* Copyright (c) 2018-2023, NWO-I CWI and Swat.engineering
|
|
29
|
+
* All rights reserved.
|
|
30
|
+
*
|
|
31
|
+
* Redistribution and use in source and binary forms, with or without
|
|
32
|
+
* modification, are permitted provided that the following conditions are met:
|
|
33
|
+
*
|
|
34
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
35
|
+
* this list of conditions and the following disclaimer.
|
|
36
|
+
*
|
|
37
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
38
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
39
|
+
* and/or other materials provided with the distribution.
|
|
40
|
+
*
|
|
41
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
42
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
43
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
44
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
45
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
46
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
47
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
48
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
49
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
50
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
51
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
52
|
+
*/
|
|
53
|
+
const vscode = __importStar(require("vscode"));
|
|
54
|
+
const path_1 = require("path"); // posix path join is always correct, also on windows
|
|
55
|
+
const Identifiers_1 = require("../Identifiers");
|
|
56
|
+
const vscode_1 = require("vscode");
|
|
57
|
+
const RascalMFValidator_1 = require("./RascalMFValidator");
|
|
58
|
+
const FIRST_WORD = new vscode_1.Range(new vscode_1.Position(0, 0), new vscode_1.Position(0, 0));
|
|
59
|
+
const EXPLAIN_PROBLEM = "this reduces Rascal's capabilities for typechecking or executing this module.";
|
|
60
|
+
class RascalProjectValidator {
|
|
61
|
+
toDispose = [];
|
|
62
|
+
diagnostics;
|
|
63
|
+
cachedSourcePaths = new Map();
|
|
64
|
+
constructor() {
|
|
65
|
+
this.diagnostics = vscode.languages.createDiagnosticCollection("Rascal Project Diagnostics");
|
|
66
|
+
this.toDispose.push(this.diagnostics);
|
|
67
|
+
vscode.workspace.onDidOpenTextDocument(this.validate, this, this.toDispose);
|
|
68
|
+
vscode.workspace.onDidCloseTextDocument(this.closeFile, this, this.toDispose);
|
|
69
|
+
// clear the cached source paths on changes to the rascal.mf file
|
|
70
|
+
const watcher = vscode.workspace.createFileSystemWatcher(`**/{${RascalMFValidator_1.MF_FILE},pom.xml}`, false, false, false);
|
|
71
|
+
this.toDispose.push(watcher);
|
|
72
|
+
watcher.onDidCreate(this.rascalMFChanged, this, this.toDispose);
|
|
73
|
+
watcher.onDidChange(this.rascalMFChanged, this, this.toDispose);
|
|
74
|
+
watcher.onDidDelete(this.rascalMFChanged, this, this.toDispose);
|
|
75
|
+
this.validateAllOpenEditors();
|
|
76
|
+
}
|
|
77
|
+
async validateAllOpenEditors() {
|
|
78
|
+
for (const tab of vscode.window.tabGroups.all.flatMap(t => t.tabs)) {
|
|
79
|
+
if (tab.input instanceof vscode.TabInputText) {
|
|
80
|
+
try {
|
|
81
|
+
const document = await vscode.workspace.openTextDocument(tab.input.uri);
|
|
82
|
+
this.validate(document);
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
console.log("Swallowing: ", e);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async rascalMFChanged(mfFile) {
|
|
91
|
+
if (mfFile.path.endsWith("pom.xml")) {
|
|
92
|
+
// it was a pom.xml change
|
|
93
|
+
// so calculate the rascal.mf file
|
|
94
|
+
mfFile = (0, RascalMFValidator_1.buildMFChildPath)(mfFile.with({ path: path_1.posix.dirname(mfFile.path) }));
|
|
95
|
+
}
|
|
96
|
+
if (this.cachedSourcePaths.delete(mfFile.toString())) {
|
|
97
|
+
// we had calculated the source paths before
|
|
98
|
+
// lets see re-validate all messages we've reported
|
|
99
|
+
this.validateAllOpenEditors();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async validate(e) {
|
|
103
|
+
if (e.languageId !== Identifiers_1.RASCAL_LANGUAGE_ID) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const folder = vscode.workspace.getWorkspaceFolder(e.uri);
|
|
107
|
+
const messages = [];
|
|
108
|
+
if (!folder) {
|
|
109
|
+
if (e.uri.scheme === 'file') {
|
|
110
|
+
// we do not want this report on non-file locations, as they are most likely virtual (coming from jars etc)
|
|
111
|
+
messages.push(new vscode_1.Diagnostic(FIRST_WORD, "This Rascal file is not part of a project opened in this VS Code window, " + EXPLAIN_PROBLEM, vscode.DiagnosticSeverity.Warning));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const mf = (0, RascalMFValidator_1.buildMFChildPath)(folder.uri);
|
|
116
|
+
if (!(await reportIfMissingFile(mf, folder, messages))) {
|
|
117
|
+
try {
|
|
118
|
+
const rascalMf = await this.getManifest(mf);
|
|
119
|
+
if (rascalMf.libraries.length > 0) {
|
|
120
|
+
// only if there are dependencies in a Rascal.mf file, is a pom.xml required
|
|
121
|
+
await reportIfMissingFile(buildPOMChildPath(folder.uri), folder, messages);
|
|
122
|
+
}
|
|
123
|
+
if (rascalMf.sources.find(s => isChild(s, e.uri)) === undefined) {
|
|
124
|
+
messages.push(new vscode_1.Diagnostic(FIRST_WORD, `This file is not in the source path of the "${folder.name}" project, please review the RASCAL.MF file. Since ${EXPLAIN_PROBLEM}`, vscode_1.DiagnosticSeverity.Warning));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (ex) {
|
|
128
|
+
console.log("Swallowing: ", ex);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
this.diagnostics.set(e.uri, messages);
|
|
133
|
+
}
|
|
134
|
+
getManifest(mf) {
|
|
135
|
+
const key = mf.toString();
|
|
136
|
+
let result = this.cachedSourcePaths.get(key);
|
|
137
|
+
if (result !== undefined) {
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
result = RascalManifest.parse(mf);
|
|
141
|
+
this.cachedSourcePaths.set(key, result);
|
|
142
|
+
return result;
|
|
143
|
+
}
|
|
144
|
+
closeFile(e) {
|
|
145
|
+
if (e.languageId !== Identifiers_1.RASCAL_LANGUAGE_ID) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// clear all warnings for close files, to not bother the user more than needed.
|
|
149
|
+
this.diagnostics.delete(e.uri);
|
|
150
|
+
}
|
|
151
|
+
dispose() {
|
|
152
|
+
vscode.Disposable.from(...this.toDispose).dispose();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.RascalProjectValidator = RascalProjectValidator;
|
|
156
|
+
async function fileExists(u) {
|
|
157
|
+
try {
|
|
158
|
+
const stat = await vscode.workspace.fs.stat(u);
|
|
159
|
+
return (stat.type & vscode.FileType.File) === vscode.FileType.File;
|
|
160
|
+
}
|
|
161
|
+
catch (_) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function buildPOMChildPath(u) {
|
|
166
|
+
return vscode_1.Uri.joinPath(u, "pom.xml");
|
|
167
|
+
}
|
|
168
|
+
async function reportIfMissingFile(file, project, messages) {
|
|
169
|
+
if (await fileExists(file)) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
messages.push(new vscode_1.Diagnostic(FIRST_WORD, `${project.name} is missing the ${path_1.posix.relative(project.uri.path, file.path)} file, ${EXPLAIN_PROBLEM}`, vscode.DiagnosticSeverity.Warning));
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
function isChild(parent, child) {
|
|
176
|
+
if (parent.scheme !== child.scheme) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
parent = parent.path.endsWith('/') ? parent : parent.with({ path: parent.path + '/' });
|
|
180
|
+
if (parent.scheme === 'file') {
|
|
181
|
+
// to make sure we can deal with case-sensitivity issues, we have to normalize
|
|
182
|
+
// to the file system path
|
|
183
|
+
// note, this might also have to be done for virtual file systems, but VS Code has no public API for that (IExtUri would be nice!)
|
|
184
|
+
return child.fsPath.startsWith(parent.fsPath);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
return parent.authority === child.authority && child.path.startsWith(parent.path);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function removeComments(entry) {
|
|
191
|
+
return entry.replace(/#.*$/, "");
|
|
192
|
+
}
|
|
193
|
+
class RascalManifest {
|
|
194
|
+
sources;
|
|
195
|
+
libraries;
|
|
196
|
+
constructor(sources, libraries) {
|
|
197
|
+
this.sources = sources;
|
|
198
|
+
this.libraries = libraries;
|
|
199
|
+
}
|
|
200
|
+
// TODO: at a later point, merge this with code in the RascalMF validator
|
|
201
|
+
static async parse(mf) {
|
|
202
|
+
try {
|
|
203
|
+
const body = new TextDecoder("UTF8").decode(await vscode.workspace.fs.readFile(mf));
|
|
204
|
+
const lines = body.split('\n');
|
|
205
|
+
let uris = [];
|
|
206
|
+
let libraries = [];
|
|
207
|
+
for (let line of lines) {
|
|
208
|
+
line = removeComments(line);
|
|
209
|
+
const [key, value] = line.split(":");
|
|
210
|
+
if (key && value && key.trim() === "Source") {
|
|
211
|
+
const parent = mf.with({ path: path_1.posix.dirname(path_1.posix.dirname(mf.path)) });
|
|
212
|
+
uris = value.split(',')
|
|
213
|
+
.map(s => s.trim())
|
|
214
|
+
.map(s => vscode_1.Uri.joinPath(parent, s));
|
|
215
|
+
}
|
|
216
|
+
else if (key && value && key.trim() === "Require-Libraries") {
|
|
217
|
+
libraries = value.split(',').map(s => s.trim());
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
console.log(uris, libraries);
|
|
221
|
+
return new RascalManifest(uris, libraries);
|
|
222
|
+
}
|
|
223
|
+
catch (e) {
|
|
224
|
+
console.log("Could not parse rascal.mf", e);
|
|
225
|
+
return new RascalManifest([], []);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=RascalProjectValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RascalProjectValidator.js","sourceRoot":"","sources":["../../src/ux/RascalProjectValidator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,19 +13,20 @@
|
|
|
13
13
|
"color": "#ffffff",
|
|
14
14
|
"theme": "light"
|
|
15
15
|
},
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.12.0",
|
|
17
17
|
"engines": {
|
|
18
|
-
"vscode": "^1.
|
|
18
|
+
"vscode": "^1.82.0",
|
|
19
|
+
"node": ">=18.15.0"
|
|
19
20
|
},
|
|
21
|
+
"type": "commonjs",
|
|
20
22
|
"license": "BSD-2-Clause",
|
|
21
23
|
"repository": {
|
|
22
24
|
"type": "git",
|
|
23
25
|
"url": "https://github.com/usethesource/rascal-language-servers"
|
|
24
26
|
},
|
|
25
27
|
"dependencies": {
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"vscode-languageclient": "8.x",
|
|
28
|
+
"tar": "7.x",
|
|
29
|
+
"vscode-languageclient": "9.x",
|
|
29
30
|
"yauzl": "3.x"
|
|
30
31
|
},
|
|
31
32
|
"main": "lib/lsp/library.js",
|
|
@@ -34,29 +35,26 @@
|
|
|
34
35
|
"prepare": "npm run compile"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
38
|
+
"@tsconfig/node18": "18.x",
|
|
39
|
+
"@tsconfig/strictest": "2.x",
|
|
37
40
|
"@types/chai": "4.x",
|
|
38
41
|
"@types/mocha": "10.x",
|
|
39
|
-
"@types/node": "
|
|
40
|
-
"@types/node-fetch": "2.x",
|
|
42
|
+
"@types/node": "18.x",
|
|
41
43
|
"@types/tar": "6.x",
|
|
42
|
-
"@types/
|
|
43
|
-
"@types/vscode": "1.75.0",
|
|
44
|
+
"@types/vscode": "1.82.0",
|
|
44
45
|
"@types/yauzl": "2.x",
|
|
45
46
|
"@typescript-eslint/eslint-plugin": "7.x",
|
|
46
47
|
"@typescript-eslint/parser": "7.x",
|
|
47
48
|
"@vscode/test-electron": "2.x",
|
|
48
49
|
"@vscode/vsce": "2.x",
|
|
49
50
|
"chai": "4.x",
|
|
51
|
+
"esbuild": "0.24.x",
|
|
50
52
|
"eslint": "8.x",
|
|
51
|
-
"
|
|
53
|
+
"eslint-plugin-editorconfig": "4.x",
|
|
52
54
|
"license-check-and-add": "4.x",
|
|
53
55
|
"mocha": "10.x",
|
|
54
|
-
"temp": "0.x",
|
|
55
|
-
"ts-loader": "9.x",
|
|
56
56
|
"typescript": "5.x",
|
|
57
|
-
"vscode-extension-tester": "
|
|
58
|
-
"webpack": "5.x",
|
|
59
|
-
"webpack-cli": "5.x"
|
|
57
|
+
"vscode-extension-tester": "8.x"
|
|
60
58
|
},
|
|
61
59
|
"homepage": "https://github.com/usethesource/rascal-language-servers/",
|
|
62
60
|
"types": "lib/lsp/library.d.ts",
|