@zzzen/pyright-internal 1.2.0-dev.20230212 → 1.2.0-dev.20230226
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/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
- package/dist/analyzer/backgroundAnalysisProgram.js +5 -0
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +9 -1
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +12 -6
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +1 -1
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.d.ts +6 -1
- package/dist/analyzer/commentUtils.js +100 -25
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +0 -10
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -0
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +3 -2
- package/dist/analyzer/importResolver.js +28 -19
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +1 -0
- package/dist/analyzer/importStatementUtils.js +14 -1
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +5 -2
- package/dist/analyzer/parseTreeUtils.js +21 -3
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +1 -0
- package/dist/analyzer/patternMatching.js +54 -6
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +11 -4
- package/dist/analyzer/program.js +122 -25
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +5 -1
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +4 -3
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +7 -6
- package/dist/analyzer/service.js +31 -39
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +4 -0
- package/dist/analyzer/sourceFile.js +85 -16
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +127 -76
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -2
- package/dist/backgroundAnalysisBase.js +21 -8
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +1 -0
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.js +1 -0
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/quickActionCommand.js +2 -2
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/cancellationUtils.d.ts +18 -2
- package/dist/common/cancellationUtils.js +80 -3
- package/dist/common/cancellationUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +2 -0
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/configOptions.d.ts +3 -0
- package/dist/common/configOptions.js +10 -1
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/core.d.ts +2 -0
- package/dist/common/core.js +9 -1
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.d.ts +15 -3
- package/dist/common/diagnostic.js +13 -4
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/editAction.d.ts +1 -0
- package/dist/common/editAction.js +8 -0
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/extensibility.d.ts +36 -12
- package/dist/common/extensibility.js +63 -18
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.d.ts +0 -1
- package/dist/common/fileBasedCancellationUtils.js +7 -81
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/pathUtils.d.ts +3 -0
- package/dist/common/pathUtils.js +18 -0
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/textEditTracker.d.ts +37 -0
- package/dist/common/textEditTracker.js +301 -0
- package/dist/common/textEditTracker.js.map +1 -0
- package/dist/common/workspaceEditUtils.d.ts +14 -8
- package/dist/common/workspaceEditUtils.js +115 -59
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +3 -0
- package/dist/languageServerBase.js +93 -4
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +1 -0
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/codeActionProvider.js +1 -1
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +3 -3
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +1 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +1 -1
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +13 -6
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importAdder.d.ts +5 -1
- package/dist/languageService/importAdder.js +50 -14
- package/dist/languageService/importAdder.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +5 -1
- package/dist/languageService/indentationUtils.js +12 -2
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/insertionPointUtils.js +28 -7
- package/dist/languageService/insertionPointUtils.js.map +1 -1
- package/dist/languageService/renameModuleProvider.d.ts +20 -10
- package/dist/languageService/renameModuleProvider.js +300 -229
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +12 -0
- package/dist/localization/localize.js +6 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +8 -1
- package/dist/tests/checker.test.js +5 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.parameter.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js +57 -0
- package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js.map +1 -0
- package/dist/tests/fourslash/hover.inferred.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.inferred.fourslash.js +24 -0
- package/dist/tests/fourslash/hover.inferred.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/testState.js +9 -2
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importAdder.test.js +40 -3
- package/dist/tests/importAdder.test.js.map +1 -1
- package/dist/tests/indentationUtils.reindent.test.js +1 -1
- package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
- package/dist/tests/insertionPointUtils.test.js +70 -3
- package/dist/tests/insertionPointUtils.test.js.map +1 -1
- package/dist/tests/moveSymbol.importAdder.test.js +192 -0
- package/dist/tests/moveSymbol.importAdder.test.js.map +1 -0
- package/dist/tests/moveSymbol.insertion.test.d.ts +1 -0
- package/dist/tests/moveSymbol.insertion.test.js +397 -0
- package/dist/tests/moveSymbol.insertion.test.js.map +1 -0
- package/dist/tests/moveSymbol.misc.test.d.ts +1 -0
- package/dist/tests/moveSymbol.misc.test.js +142 -0
- package/dist/tests/moveSymbol.misc.test.js.map +1 -0
- package/dist/tests/moveSymbol.updateReference.test.d.ts +1 -0
- package/dist/tests/{updateSymbolReference.test.js → moveSymbol.updateReference.test.js} +235 -158
- package/dist/tests/moveSymbol.updateReference.test.js.map +1 -0
- package/dist/tests/parseTreeUtils.test.js +36 -13
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/renameModuleTestUtils.js +9 -3
- package/dist/tests/renameModuleTestUtils.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +2 -0
- package/dist/tests/testStateUtils.js +25 -22
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.d.ts +1 -0
- package/dist/tests/textEditUtil.test.js +107 -0
- package/dist/tests/textEditUtil.test.js.map +1 -0
- package/dist/tests/typeEvaluator1.test.js +4 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +12 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +9 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +5 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +7 -7
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/workspaceMap.d.ts +0 -1
- package/dist/workspaceMap.js +0 -11
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +3 -3
- package/dist/common/textEditUtils.d.ts +0 -24
- package/dist/common/textEditUtils.js +0 -167
- package/dist/common/textEditUtils.js.map +0 -1
- package/dist/tests/updateSymbolReference.test.js.map +0 -1
- /package/dist/tests/{updateSymbolReference.test.d.ts → moveSymbol.importAdder.test.d.ts} +0 -0
@@ -7,74 +7,74 @@
|
|
7
7
|
* Convert Pyright's FileEditActions to LanguageServer's WorkspaceEdits.
|
8
8
|
*/
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
10
|
-
exports.
|
10
|
+
exports.generateWorkspaceEdit = exports.applyDocumentChanges = exports.applyWorkspaceEdit = exports.applyTextEditsToString = exports.appendToWorkspaceEdit = exports.convertToWorkspaceEdit = exports.convertToFileTextEdits = exports.convertToTextEdits = void 0;
|
11
11
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
12
12
|
const pathUtils_1 = require("../common/pathUtils");
|
13
13
|
const collectionUtils_1 = require("./collectionUtils");
|
14
|
+
const core_1 = require("./core");
|
14
15
|
const debug_1 = require("./debug");
|
15
16
|
const positionUtils_1 = require("./positionUtils");
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
const textRange_1 = require("./textRange");
|
18
|
+
function convertToTextEdits(editActions) {
|
19
|
+
return editActions.map((editAction) => ({
|
20
|
+
range: editAction.range,
|
21
|
+
newText: editAction.replacementText,
|
22
|
+
}));
|
23
|
+
}
|
24
|
+
exports.convertToTextEdits = convertToTextEdits;
|
25
|
+
function convertToFileTextEdits(filePath, editActions) {
|
26
|
+
return editActions.map((a) => ({ filePath, ...a }));
|
27
|
+
}
|
28
|
+
exports.convertToFileTextEdits = convertToFileTextEdits;
|
29
|
+
function convertToWorkspaceEdit(fs, edits, changeAnnotations, defaultAnnotationId = 'default') {
|
30
|
+
if ((0, core_1.isArray)(edits)) {
|
31
|
+
return _convertToWorkspaceEditWithChanges(fs, edits);
|
32
|
+
}
|
33
|
+
return _convertToWorkspaceEditWithDocumentChanges(fs, edits, changeAnnotations, defaultAnnotationId);
|
22
34
|
}
|
23
|
-
exports.
|
24
|
-
function
|
35
|
+
exports.convertToWorkspaceEdit = convertToWorkspaceEdit;
|
36
|
+
function appendToWorkspaceEdit(fs, edits, workspaceEdit) {
|
25
37
|
edits.forEach((edit) => {
|
26
38
|
const uri = (0, pathUtils_1.convertPathToUri)(fs, edit.filePath);
|
27
39
|
workspaceEdit.changes[uri] = workspaceEdit.changes[uri] || [];
|
28
40
|
workspaceEdit.changes[uri].push({ range: edit.range, newText: edit.replacementText });
|
29
41
|
});
|
30
42
|
}
|
31
|
-
exports.
|
32
|
-
function
|
33
|
-
const
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
]));
|
46
|
-
}
|
47
|
-
for (const operation of editActions.fileOperations) {
|
48
|
-
switch (operation.kind) {
|
49
|
-
case 'create':
|
50
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.CreateFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.filePath),
|
51
|
-
/* options */ undefined, defaultAnnotationId));
|
52
|
-
break;
|
53
|
-
case 'rename':
|
54
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.RenameFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.oldFilePath), (0, pathUtils_1.convertPathToUri)(fs, operation.newFilePath),
|
55
|
-
/* options */ undefined, defaultAnnotationId));
|
56
|
-
break;
|
57
|
-
case 'delete':
|
58
|
-
workspaceEdit.documentChanges.push(vscode_languageserver_1.DeleteFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.filePath),
|
59
|
-
/* options */ undefined, defaultAnnotationId));
|
60
|
-
break;
|
61
|
-
default:
|
62
|
-
(0, debug_1.assertNever)(operation);
|
43
|
+
exports.appendToWorkspaceEdit = appendToWorkspaceEdit;
|
44
|
+
function applyTextEditsToString(edits, lines, originalText) {
|
45
|
+
const editsWithOffset = edits
|
46
|
+
.map((e) => {
|
47
|
+
var _a;
|
48
|
+
return ({
|
49
|
+
range: (_a = (0, positionUtils_1.convertRangeToTextRange)(e.range, lines)) !== null && _a !== void 0 ? _a : { start: originalText.length, length: 0 },
|
50
|
+
text: e.replacementText,
|
51
|
+
});
|
52
|
+
})
|
53
|
+
.sort((e1, e2) => {
|
54
|
+
const result = e2.range.start - e1.range.start;
|
55
|
+
if (result !== 0) {
|
56
|
+
return result;
|
63
57
|
}
|
58
|
+
return textRange_1.TextRange.getEnd(e2.range) - textRange_1.TextRange.getEnd(e1.range);
|
59
|
+
});
|
60
|
+
// Apply change in reverse order.
|
61
|
+
let current = originalText;
|
62
|
+
for (const change of editsWithOffset) {
|
63
|
+
current = current.substr(0, change.range.start) + change.text + current.substr(textRange_1.TextRange.getEnd(change.range));
|
64
64
|
}
|
65
|
-
return
|
65
|
+
return current;
|
66
66
|
}
|
67
|
-
exports.
|
68
|
-
function
|
67
|
+
exports.applyTextEditsToString = applyTextEditsToString;
|
68
|
+
function applyWorkspaceEdit(clonedService, edits, filesChanged) {
|
69
69
|
if (edits.changes) {
|
70
70
|
for (const kv of Object.entries(edits.changes)) {
|
71
|
-
const filePath = (0, pathUtils_1.convertUriToPath)(
|
72
|
-
const fileInfo =
|
71
|
+
const filePath = (0, pathUtils_1.convertUriToPath)(clonedService.fs, kv[0]);
|
72
|
+
const fileInfo = clonedService.backgroundAnalysisProgram.program.getSourceFileInfo(filePath);
|
73
73
|
if (!fileInfo || !fileInfo.isTracked) {
|
74
74
|
// We don't allow non user file being modified.
|
75
75
|
continue;
|
76
76
|
}
|
77
|
-
applyDocumentChanges(
|
77
|
+
applyDocumentChanges(clonedService, fileInfo, kv[1]);
|
78
78
|
filesChanged.add(filePath);
|
79
79
|
}
|
80
80
|
}
|
@@ -82,13 +82,13 @@ function applyWorkspaceEdits(service, edits, filesChanged) {
|
|
82
82
|
if (edits.documentChanges) {
|
83
83
|
for (const change of edits.documentChanges) {
|
84
84
|
if (vscode_languageserver_1.TextDocumentEdit.is(change)) {
|
85
|
-
const filePath = (0, pathUtils_1.convertUriToPath)(
|
86
|
-
const fileInfo =
|
85
|
+
const filePath = (0, pathUtils_1.convertUriToPath)(clonedService.fs, change.textDocument.uri);
|
86
|
+
const fileInfo = clonedService.backgroundAnalysisProgram.program.getSourceFileInfo(filePath);
|
87
87
|
if (!fileInfo || !fileInfo.isTracked) {
|
88
88
|
// We don't allow non user file being modified.
|
89
89
|
continue;
|
90
90
|
}
|
91
|
-
applyDocumentChanges(
|
91
|
+
applyDocumentChanges(clonedService, fileInfo, change.edits);
|
92
92
|
filesChanged.add(filePath);
|
93
93
|
}
|
94
94
|
// For now, we don't support other kinds of text changes.
|
@@ -96,18 +96,18 @@ function applyWorkspaceEdits(service, edits, filesChanged) {
|
|
96
96
|
}
|
97
97
|
}
|
98
98
|
}
|
99
|
-
exports.
|
100
|
-
function applyDocumentChanges(
|
99
|
+
exports.applyWorkspaceEdit = applyWorkspaceEdit;
|
100
|
+
function applyDocumentChanges(clonedService, fileInfo, edits) {
|
101
101
|
var _a;
|
102
102
|
if (!fileInfo.isOpenByClient) {
|
103
103
|
const fileContent = fileInfo.sourceFile.getFileContent();
|
104
|
-
|
104
|
+
clonedService.setFileOpened(fileInfo.sourceFile.getFilePath(), 0, fileContent !== null && fileContent !== void 0 ? fileContent : '', fileInfo.sourceFile.getIPythonMode(), fileInfo.sourceFile.getRealFilePath());
|
105
105
|
}
|
106
106
|
const version = ((_a = fileInfo.sourceFile.getClientVersion()) !== null && _a !== void 0 ? _a : 0) + 1;
|
107
|
-
|
107
|
+
clonedService.updateOpenFileContents(fileInfo.sourceFile.getFilePath(), version, edits.map((t) => ({ range: t.range, text: t.newText })), fileInfo.sourceFile.getIPythonMode(), fileInfo.sourceFile.getRealFilePath());
|
108
108
|
}
|
109
109
|
exports.applyDocumentChanges = applyDocumentChanges;
|
110
|
-
function
|
110
|
+
function generateWorkspaceEdit(originalService, clonedService, filesChanged) {
|
111
111
|
var _a;
|
112
112
|
// For now, we won't do text diff to find out minimal text changes. instead, we will
|
113
113
|
// consider whole text of the files are changed. In future, we could consider
|
@@ -115,8 +115,8 @@ function generateWorkspaceEdits(base, target, filesChanged) {
|
|
115
115
|
// to support annotation.
|
116
116
|
const edits = { changes: {} };
|
117
117
|
for (const filePath of filesChanged) {
|
118
|
-
const original =
|
119
|
-
const final =
|
118
|
+
const original = originalService.backgroundAnalysisProgram.program.getBoundSourceFile(filePath);
|
119
|
+
const final = clonedService.backgroundAnalysisProgram.program.getBoundSourceFile(filePath);
|
120
120
|
if (!original || !final) {
|
121
121
|
// Both must exist.
|
122
122
|
continue;
|
@@ -125,7 +125,7 @@ function generateWorkspaceEdits(base, target, filesChanged) {
|
|
125
125
|
if (!parseResults) {
|
126
126
|
continue;
|
127
127
|
}
|
128
|
-
edits.changes[(0, pathUtils_1.convertPathToUri)(
|
128
|
+
edits.changes[(0, pathUtils_1.convertPathToUri)(originalService.fs, filePath)] = [
|
129
129
|
{
|
130
130
|
range: (0, positionUtils_1.convertTextRangeToRange)(parseResults.parseTree, parseResults.tokenizerOutput.lines),
|
131
131
|
newText: (_a = final.getFileContent()) !== null && _a !== void 0 ? _a : '',
|
@@ -134,5 +134,61 @@ function generateWorkspaceEdits(base, target, filesChanged) {
|
|
134
134
|
}
|
135
135
|
return edits;
|
136
136
|
}
|
137
|
-
exports.
|
137
|
+
exports.generateWorkspaceEdit = generateWorkspaceEdit;
|
138
|
+
function _convertToWorkspaceEditWithChanges(fs, edits) {
|
139
|
+
const workspaceEdit = {
|
140
|
+
changes: {},
|
141
|
+
};
|
142
|
+
appendToWorkspaceEdit(fs, edits, workspaceEdit);
|
143
|
+
return workspaceEdit;
|
144
|
+
}
|
145
|
+
function _convertToWorkspaceEditWithDocumentChanges(fs, editActions, changeAnnotations, defaultAnnotationId = 'default') {
|
146
|
+
const workspaceEdit = {
|
147
|
+
documentChanges: [],
|
148
|
+
changeAnnotations: changeAnnotations,
|
149
|
+
};
|
150
|
+
// Ordering of documentChanges are important.
|
151
|
+
// Make sure create operaiton happens before edits
|
152
|
+
for (const operation of editActions.fileOperations) {
|
153
|
+
switch (operation.kind) {
|
154
|
+
case 'create':
|
155
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.CreateFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.filePath),
|
156
|
+
/* options */ undefined, defaultAnnotationId));
|
157
|
+
break;
|
158
|
+
case 'rename':
|
159
|
+
case 'delete':
|
160
|
+
break;
|
161
|
+
default:
|
162
|
+
(0, debug_1.assertNever)(operation);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
// Text edit's file path must refer to original file paths unless it is a new file just created.
|
166
|
+
const mapPerFile = (0, collectionUtils_1.createMapFromItems)(editActions.edits, (e) => e.filePath);
|
167
|
+
for (const [key, value] of mapPerFile) {
|
168
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.TextDocumentEdit.create({ uri: (0, pathUtils_1.convertPathToUri)(fs, key), version: null }, [
|
169
|
+
...value.map((v) => ({
|
170
|
+
range: v.range,
|
171
|
+
newText: v.replacementText,
|
172
|
+
annotationId: defaultAnnotationId,
|
173
|
+
})),
|
174
|
+
]));
|
175
|
+
}
|
176
|
+
for (const operation of editActions.fileOperations) {
|
177
|
+
switch (operation.kind) {
|
178
|
+
case 'create':
|
179
|
+
break;
|
180
|
+
case 'rename':
|
181
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.RenameFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.oldFilePath), (0, pathUtils_1.convertPathToUri)(fs, operation.newFilePath),
|
182
|
+
/* options */ undefined, defaultAnnotationId));
|
183
|
+
break;
|
184
|
+
case 'delete':
|
185
|
+
workspaceEdit.documentChanges.push(vscode_languageserver_1.DeleteFile.create((0, pathUtils_1.convertPathToUri)(fs, operation.filePath),
|
186
|
+
/* options */ undefined, defaultAnnotationId));
|
187
|
+
break;
|
188
|
+
default:
|
189
|
+
(0, debug_1.assertNever)(operation);
|
190
|
+
}
|
191
|
+
}
|
192
|
+
return workspaceEdit;
|
193
|
+
}
|
138
194
|
//# sourceMappingURL=workspaceEditUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,iEAQ+B;AAK/B,mDAAyE;AACzE,uDAAuD;AACvD,mCAAsC;AAEtC,
|
1
|
+
{"version":3,"file":"workspaceEditUtils.js","sourceRoot":"","sources":["../../../src/common/workspaceEditUtils.ts"],"names":[],"mappings":"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"}
|
@@ -13,6 +13,7 @@ import { CancellationProvider } from './common/cancellationUtils';
|
|
13
13
|
import { DiagnosticSeverityOverrides, DiagnosticSeverityOverridesMap } from './common/commandLineOptions';
|
14
14
|
import { ConfigOptions, SignatureDisplayType } from './common/configOptions';
|
15
15
|
import { ConsoleInterface, LogLevel } from './common/console';
|
16
|
+
import { TaskListToken } from './common/diagnostic';
|
16
17
|
import { DiagnosticRule } from './common/diagnosticRules';
|
17
18
|
import { FileDiagnostics } from './common/diagnosticSink';
|
18
19
|
import { FileSystem, FileWatcherHandler } from './common/fileSystem';
|
@@ -48,6 +49,7 @@ export interface ServerSettings {
|
|
48
49
|
fileSpecs?: string[];
|
49
50
|
excludeFileSpecs?: string[];
|
50
51
|
ignoreFileSpecs?: string[];
|
52
|
+
taskListTokens?: TaskListToken[];
|
51
53
|
functionSignatureDisplay?: SignatureDisplayType | undefined;
|
52
54
|
}
|
53
55
|
export declare enum WellKnownWorkspaceKinds {
|
@@ -139,6 +141,7 @@ interface ClientCapabilities {
|
|
139
141
|
signatureDocFormat: MarkupKind;
|
140
142
|
supportsDeprecatedDiagnosticTag: boolean;
|
141
143
|
supportsUnnecessaryDiagnosticTag: boolean;
|
144
|
+
supportsTaskItemDiagnosticTag: boolean;
|
142
145
|
completionItemResolveSupportsAdditionalTextEdits: boolean;
|
143
146
|
}
|
144
147
|
export declare abstract class LanguageServerBase implements LanguageServerInterface {
|
@@ -25,6 +25,8 @@ const commandLineOptions_1 = require("./common/commandLineOptions");
|
|
25
25
|
const configOptions_1 = require("./common/configOptions");
|
26
26
|
const console_1 = require("./common/console");
|
27
27
|
const deferred_1 = require("./common/deferred");
|
28
|
+
const diagnostic_1 = require("./common/diagnostic");
|
29
|
+
const extensibility_1 = require("./common/extensibility");
|
28
30
|
const lspUtils_1 = require("./common/lspUtils");
|
29
31
|
const pathUtils_1 = require("./common/pathUtils");
|
30
32
|
const progressReporter_1 = require("./common/progressReporter");
|
@@ -77,6 +79,64 @@ function createInitStatus() {
|
|
77
79
|
}
|
78
80
|
exports.createInitStatus = createInitStatus;
|
79
81
|
const nullProgressReporter = (0, progress_1.attachWorkDone)(undefined, /* params */ undefined);
|
82
|
+
/*
|
83
|
+
* Additional DiagnosticTag values that are specific to Visual Studio.
|
84
|
+
* These must match the values in https://dev.azure.com/devdiv/DevDiv/_git/vslanguageserverclient?path=%2Fsrc%2Fproduct%2FProtocol%2FLanguageServer.Protocol.Extensions%2FVSDiagnosticTags.cs&version=GBdevelop&_a=contents
|
85
|
+
*/
|
86
|
+
var VSDiagnosticTag;
|
87
|
+
(function (VSDiagnosticTag) {
|
88
|
+
/**
|
89
|
+
* A diagnostic entry generated by the build.
|
90
|
+
*/
|
91
|
+
VSDiagnosticTag.BuildError = -1;
|
92
|
+
/**
|
93
|
+
* A diagnostic entry generated by Intellisense.
|
94
|
+
*/
|
95
|
+
VSDiagnosticTag.IntellisenseError = -2;
|
96
|
+
/**
|
97
|
+
* A diagnostic entry that could be generated from both builds and Intellisense.
|
98
|
+
*
|
99
|
+
* Diagnostic entries tagged with PotentialDuplicate will be hidden
|
100
|
+
* in the error list if the error list is displaying build and intellisense errors.
|
101
|
+
*/
|
102
|
+
VSDiagnosticTag.PotentialDuplicate = -3;
|
103
|
+
/**
|
104
|
+
* A diagnostic entry that is never displayed in the error list.
|
105
|
+
*/
|
106
|
+
VSDiagnosticTag.HiddenInErrorList = -4;
|
107
|
+
/**
|
108
|
+
* A diagnostic entry that is always displayed in the error list.
|
109
|
+
*/
|
110
|
+
VSDiagnosticTag.VisibleInErrorList = -5;
|
111
|
+
/**
|
112
|
+
* A diagnostic entry that is never displayed in the editor.
|
113
|
+
*/
|
114
|
+
VSDiagnosticTag.HiddenInEditor = -6;
|
115
|
+
/**
|
116
|
+
* No tooltip is shown for the Diagnostic entry in the editor.
|
117
|
+
*/
|
118
|
+
VSDiagnosticTag.SuppressEditorToolTip = -7;
|
119
|
+
/**
|
120
|
+
* A diagnostic entry that is represented in the editor as an Edit and Continue error.
|
121
|
+
*/
|
122
|
+
VSDiagnosticTag.EditAndContinueError = -8;
|
123
|
+
/**
|
124
|
+
* A diagnostic entry that is represented in the editor as a Task List item (View -> Task List)
|
125
|
+
*/
|
126
|
+
VSDiagnosticTag.TaskItem = -9;
|
127
|
+
})(VSDiagnosticTag || (VSDiagnosticTag = {}));
|
128
|
+
/*
|
129
|
+
* DiagnosticRank values that are specific to Visual Studio.
|
130
|
+
* These must match the values in https://dev.azure.com/devdiv/DevDiv/_git/vslanguageserverclient?path=/src/product/Protocol/LanguageServer.Protocol.Extensions/VSDiagnosticRank.cs&version=GBdevelop&_a=contents
|
131
|
+
*/
|
132
|
+
var VSDiagnosticRank;
|
133
|
+
(function (VSDiagnosticRank) {
|
134
|
+
VSDiagnosticRank.Highest = 100;
|
135
|
+
VSDiagnosticRank.High = 200;
|
136
|
+
VSDiagnosticRank.Default = 300;
|
137
|
+
VSDiagnosticRank.Low = 400;
|
138
|
+
VSDiagnosticRank.Lowest = 500;
|
139
|
+
})(VSDiagnosticRank || (VSDiagnosticRank = {}));
|
80
140
|
class LanguageServerBase {
|
81
141
|
constructor(_serverOptions, _connection, console, uriParserFactory = (fs) => new uriParser_1.UriParser(fs)) {
|
82
142
|
var _a, _b;
|
@@ -106,6 +166,7 @@ class LanguageServerBase {
|
|
106
166
|
signatureDocFormat: vscode_languageserver_1.MarkupKind.PlainText,
|
107
167
|
supportsDeprecatedDiagnosticTag: false,
|
108
168
|
supportsUnnecessaryDiagnosticTag: false,
|
169
|
+
supportsTaskItemDiagnosticTag: false,
|
109
170
|
completionItemResolveSupportsAdditionalTextEdits: false,
|
110
171
|
};
|
111
172
|
// Stash the base directory into a global variable.
|
@@ -129,6 +190,8 @@ class LanguageServerBase {
|
|
129
190
|
this._progressReporter = new progressReporter_1.ProgressReportTracker(this.createProgressReporter());
|
130
191
|
// Listen on the connection.
|
131
192
|
this._connection.listen();
|
193
|
+
// Setup extensions
|
194
|
+
extensibility_1.Extensions.createLanguageServiceExtensions(this);
|
132
195
|
}
|
133
196
|
// Convert uri to path
|
134
197
|
decodeTextDocumentUri(uriString) {
|
@@ -265,7 +328,7 @@ class LanguageServerBase {
|
|
265
328
|
this.client.hasWatchFileRelativePathCapability =
|
266
329
|
!!((_e = (_d = capabilities.workspace) === null || _d === void 0 ? void 0 : _d.didChangeWatchedFiles) === null || _e === void 0 ? void 0 : _e.relativePatternSupport);
|
267
330
|
this.client.hasWorkspaceFoldersCapability = !!((_f = capabilities.workspace) === null || _f === void 0 ? void 0 : _f.workspaceFolders);
|
268
|
-
this.client.hasVisualStudioExtensionsCapability = !!capabilities.
|
331
|
+
this.client.hasVisualStudioExtensionsCapability = !!capabilities._vs_supportsVisualStudioExtensions;
|
269
332
|
this.client.hasActiveParameterCapability =
|
270
333
|
!!((_j = (_h = (_g = capabilities.textDocument) === null || _g === void 0 ? void 0 : _g.signatureHelp) === null || _h === void 0 ? void 0 : _h.signatureInformation) === null || _j === void 0 ? void 0 : _j.activeParameterSupport);
|
271
334
|
this.client.hasSignatureLabelOffsetCapability =
|
@@ -286,6 +349,8 @@ class LanguageServerBase {
|
|
286
349
|
const supportedDiagnosticTags = ((_13 = (_12 = (_11 = capabilities.textDocument) === null || _11 === void 0 ? void 0 : _11.publishDiagnostics) === null || _12 === void 0 ? void 0 : _12.tagSupport) === null || _13 === void 0 ? void 0 : _13.valueSet) || [];
|
287
350
|
this.client.supportsUnnecessaryDiagnosticTag = supportedDiagnosticTags.some((tag) => tag === vscode_languageserver_1.DiagnosticTag.Unnecessary);
|
288
351
|
this.client.supportsDeprecatedDiagnosticTag = supportedDiagnosticTags.some((tag) => tag === vscode_languageserver_1.DiagnosticTag.Deprecated);
|
352
|
+
// if the client is running in VS, it always supports task item diagnostics
|
353
|
+
this.client.supportsTaskItemDiagnosticTag = this.client.hasVisualStudioExtensionsCapability;
|
289
354
|
this.client.hasWindowProgressCapability = !!((_14 = capabilities.window) === null || _14 === void 0 ? void 0 : _14.workDoneProgress);
|
290
355
|
this.client.hasGoToDeclarationCapability = !!((_15 = capabilities.textDocument) === null || _15 === void 0 ? void 0 : _15.declaration);
|
291
356
|
this.client.completionItemResolveSupportsAdditionalTextEdits =
|
@@ -632,7 +697,7 @@ class LanguageServerBase {
|
|
632
697
|
if (!editActions) {
|
633
698
|
return undefined;
|
634
699
|
}
|
635
|
-
return (0, workspaceEditUtils_1.
|
700
|
+
return (0, workspaceEditUtils_1.convertToWorkspaceEdit)(workspace.serviceInstance.fs, editActions);
|
636
701
|
}
|
637
702
|
async onPrepare(params, token) {
|
638
703
|
const { filePath, position } = this._uriParser.decodeTextDocumentPosition(params.textDocument, params.position);
|
@@ -920,7 +985,7 @@ class LanguageServerBase {
|
|
920
985
|
// created by the LSP library. If it's the latter, we'll create a server-initiated
|
921
986
|
// progress reporter.
|
922
987
|
if (reporter.constructor !== nullProgressReporter.constructor) {
|
923
|
-
return { reporter: reporter, source: (0, cancellationUtils_1.CancelAfter)(token) };
|
988
|
+
return { reporter: reporter, source: (0, cancellationUtils_1.CancelAfter)(this._serverOptions.cancellationProvider, token) };
|
924
989
|
}
|
925
990
|
const serverInitiatedReporter = await this._connection.window.createWorkDoneProgress();
|
926
991
|
serverInitiatedReporter.begin(title,
|
@@ -929,7 +994,7 @@ class LanguageServerBase {
|
|
929
994
|
/* cancellable */ true);
|
930
995
|
return {
|
931
996
|
reporter: serverInitiatedReporter,
|
932
|
-
source: (0, cancellationUtils_1.CancelAfter)(token, serverInitiatedReporter.token),
|
997
|
+
source: (0, cancellationUtils_1.CancelAfter)(this._serverOptions.cancellationProvider, token, serverInitiatedReporter.token),
|
933
998
|
};
|
934
999
|
}
|
935
1000
|
_convertDiagnostics(fs, diags) {
|
@@ -955,6 +1020,29 @@ class LanguageServerBase {
|
|
955
1020
|
return;
|
956
1021
|
}
|
957
1022
|
}
|
1023
|
+
else if (diag.category === 6 /* TaskItem */) {
|
1024
|
+
vsDiag.tags = [VSDiagnosticTag.TaskItem];
|
1025
|
+
// Map the task item priority to a value VS will understand
|
1026
|
+
// and store it in the diagnostic.
|
1027
|
+
// The Diagnostic type is defined in a protocol that we can't change,
|
1028
|
+
// so we just dynamically create the vsDiag._vs_diagnosticRank property at runtime,
|
1029
|
+
// which is what VS is looking for.
|
1030
|
+
switch (diag.priority) {
|
1031
|
+
case diagnostic_1.TaskListPriority.High:
|
1032
|
+
vsDiag._vs_diagnosticRank = VSDiagnosticRank.High;
|
1033
|
+
break;
|
1034
|
+
case diagnostic_1.TaskListPriority.Normal:
|
1035
|
+
vsDiag._vs_diagnosticRank = VSDiagnosticRank.Default;
|
1036
|
+
break;
|
1037
|
+
case diagnostic_1.TaskListPriority.Low:
|
1038
|
+
vsDiag._vs_diagnosticRank = VSDiagnosticRank.Low;
|
1039
|
+
break;
|
1040
|
+
}
|
1041
|
+
// if the client doesn't support "taskitem" tags, don't report.
|
1042
|
+
if (!this.client.supportsTaskItemDiagnosticTag) {
|
1043
|
+
return;
|
1044
|
+
}
|
1045
|
+
}
|
958
1046
|
if (rule) {
|
959
1047
|
const ruleDocUrl = this.getDocumentationUrlForDiagnosticRule(rule);
|
960
1048
|
if (ruleDocUrl) {
|
@@ -978,6 +1066,7 @@ class LanguageServerBase {
|
|
978
1066
|
case 1 /* Warning */:
|
979
1067
|
return vscode_languageserver_1.DiagnosticSeverity.Warning;
|
980
1068
|
case 2 /* Information */:
|
1069
|
+
case 6 /* TaskItem */: // task items only show up in the task list if they are information or above.
|
981
1070
|
return vscode_languageserver_1.DiagnosticSeverity.Information;
|
982
1071
|
case 3 /* UnusedCode */:
|
983
1072
|
case 4 /* UnreachableCode */:
|