typescript-language-server 0.11.1 → 1.1.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/CHANGELOG.md +52 -0
- package/README.md +160 -27
- package/lib/calls.d.ts +3 -3
- package/lib/calls.d.ts.map +1 -1
- package/lib/calls.js +143 -195
- package/lib/calls.js.map +1 -1
- package/lib/cli.js +9 -33
- package/lib/cli.js.map +1 -1
- package/lib/commands.d.ts +1 -0
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +4 -5
- package/lib/commands.js.map +1 -1
- package/lib/completion.d.ts +8 -11
- package/lib/completion.d.ts.map +1 -1
- package/lib/completion.js +121 -163
- package/lib/completion.js.map +1 -1
- package/lib/configuration-manager.d.ts +47 -0
- package/lib/configuration-manager.d.ts.map +1 -0
- package/lib/configuration-manager.js +105 -0
- package/lib/configuration-manager.js.map +1 -0
- package/lib/diagnostic-queue.d.ts +10 -9
- package/lib/diagnostic-queue.d.ts.map +1 -1
- package/lib/diagnostic-queue.js +13 -21
- package/lib/diagnostic-queue.js.map +1 -1
- package/lib/document-symbol.d.ts +2 -2
- package/lib/document-symbol.d.ts.map +1 -1
- package/lib/document-symbol.js +20 -25
- package/lib/document-symbol.js.map +1 -1
- package/lib/document.d.ts +1 -1
- package/lib/document.d.ts.map +1 -1
- package/lib/document.js +6 -34
- package/lib/document.js.map +1 -1
- package/lib/features/fix-all.d.ts +4 -4
- package/lib/features/fix-all.d.ts.map +1 -1
- package/lib/features/fix-all.js +104 -147
- package/lib/features/fix-all.js.map +1 -1
- package/lib/features/inlay-hints.d.ts +11 -0
- package/lib/features/inlay-hints.d.ts.map +1 -0
- package/lib/features/inlay-hints.js +70 -0
- package/lib/features/inlay-hints.js.map +1 -0
- package/lib/features/source-definition.d.ts +11 -0
- package/lib/features/source-definition.d.ts.map +1 -0
- package/lib/features/source-definition.js +50 -0
- package/lib/features/source-definition.js.map +1 -0
- package/lib/file-lsp-server.spec.js +26 -36
- package/lib/file-lsp-server.spec.js.map +1 -1
- package/lib/hover.d.ts +4 -3
- package/lib/hover.d.ts.map +1 -1
- package/lib/hover.js +53 -17
- package/lib/hover.js.map +1 -1
- package/lib/logger.d.ts +12 -4
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +37 -44
- package/lib/logger.js.map +1 -1
- package/lib/lsp-client.d.ts +13 -17
- package/lib/lsp-client.d.ts.map +1 -1
- package/lib/lsp-client.js +32 -91
- package/lib/lsp-client.js.map +1 -1
- package/lib/lsp-connection.d.ts +1 -1
- package/lib/lsp-connection.d.ts.map +1 -1
- package/lib/lsp-connection.js +13 -39
- package/lib/lsp-connection.js.map +1 -1
- package/lib/lsp-protocol.calls.proposed.d.ts +1 -1
- package/lib/lsp-protocol.calls.proposed.d.ts.map +1 -1
- package/lib/lsp-protocol.calls.proposed.js +7 -32
- package/lib/lsp-protocol.calls.proposed.js.map +1 -1
- package/lib/lsp-protocol.inlayHints.proposed.d.ts +2 -11
- package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +1 -1
- package/lib/lsp-protocol.inlayHints.proposed.js +2 -28
- package/lib/lsp-protocol.inlayHints.proposed.js.map +1 -1
- package/lib/lsp-server.d.ts +27 -28
- package/lib/lsp-server.d.ts.map +1 -1
- package/lib/lsp-server.js +868 -926
- package/lib/lsp-server.js.map +1 -1
- package/lib/lsp-server.spec.js +956 -606
- package/lib/lsp-server.spec.js.map +1 -1
- package/lib/organize-imports.d.ts +3 -3
- package/lib/organize-imports.d.ts.map +1 -1
- package/lib/organize-imports.js +5 -32
- package/lib/organize-imports.js.map +1 -1
- package/lib/organize-imports.spec.js +17 -42
- package/lib/organize-imports.spec.js.map +1 -1
- package/lib/protocol-translation.d.ts +5 -10
- package/lib/protocol-translation.d.ts.map +1 -1
- package/lib/protocol-translation.js +39 -168
- package/lib/protocol-translation.js.map +1 -1
- package/lib/quickfix.d.ts +3 -3
- package/lib/quickfix.d.ts.map +1 -1
- package/lib/quickfix.js +7 -35
- package/lib/quickfix.js.map +1 -1
- package/lib/refactor.d.ts +2 -2
- package/lib/refactor.d.ts.map +1 -1
- package/lib/refactor.js +11 -36
- package/lib/refactor.js.map +1 -1
- package/lib/semantic-tokens.d.ts +1 -1
- package/lib/semantic-tokens.d.ts.map +1 -1
- package/lib/semantic-tokens.js +1 -5
- package/lib/semantic-tokens.js.map +1 -1
- package/lib/test-utils.d.ts +11 -5
- package/lib/test-utils.d.ts.map +1 -1
- package/lib/test-utils.js +137 -120
- package/lib/test-utils.js.map +1 -1
- package/lib/ts-protocol.d.ts +8 -20
- package/lib/ts-protocol.d.ts.map +1 -1
- package/lib/ts-protocol.js +4 -31
- package/lib/ts-protocol.js.map +1 -1
- package/lib/tsp-client.d.ts +46 -43
- package/lib/tsp-client.d.ts.map +1 -1
- package/lib/tsp-client.js +31 -52
- package/lib/tsp-client.js.map +1 -1
- package/lib/tsp-client.spec.js +48 -75
- package/lib/tsp-client.spec.js.map +1 -1
- package/lib/tsp-command-types.d.ts +1 -0
- package/lib/tsp-command-types.d.ts.map +1 -1
- package/lib/tsp-command-types.js +4 -8
- package/lib/tsp-command-types.js.map +1 -1
- package/lib/utils/SnippetString.js +1 -4
- package/lib/utils/SnippetString.js.map +1 -1
- package/lib/utils/api.d.ts +1 -0
- package/lib/utils/api.d.ts.map +1 -1
- package/lib/utils/api.js +3 -28
- package/lib/utils/api.js.map +1 -1
- package/lib/utils/configuration.d.ts +2 -2
- package/lib/utils/configuration.d.ts.map +1 -1
- package/lib/utils/configuration.js +1 -2
- package/lib/utils/errorCodes.js +11 -14
- package/lib/utils/errorCodes.js.map +1 -1
- package/lib/utils/fixNames.js +13 -16
- package/lib/utils/fixNames.js.map +1 -1
- package/lib/utils/modules-resolver.js +7 -34
- package/lib/utils/modules-resolver.js.map +1 -1
- package/lib/utils/modules-resolver.spec.d.ts +1 -1
- package/lib/utils/modules-resolver.spec.d.ts.map +1 -1
- package/lib/utils/modules-resolver.spec.js +11 -34
- package/lib/utils/modules-resolver.spec.js.map +1 -1
- package/lib/utils/typeConverters.d.ts +20 -2
- package/lib/utils/typeConverters.d.ts.map +1 -1
- package/lib/utils/typeConverters.js +105 -9
- package/lib/utils/typeConverters.js.map +1 -1
- package/lib/utils/types.js +2 -29
- package/lib/utils/types.js.map +1 -1
- package/lib/utils/versionProvider.d.ts +3 -3
- package/lib/utils/versionProvider.d.ts.map +1 -1
- package/lib/utils/versionProvider.js +52 -60
- package/lib/utils/versionProvider.js.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +3 -5
- package/lib/utils.js.map +1 -1
- package/package.json +38 -33
package/lib/completion.js
CHANGED
|
@@ -1,57 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/*
|
|
3
2
|
* Copyright (C) 2018 TypeFox and others.
|
|
4
3
|
*
|
|
5
4
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
6
5
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (k2 === undefined) k2 = k;
|
|
17
|
-
o[k2] = m[k];
|
|
18
|
-
}));
|
|
19
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
-
}) : function(o, v) {
|
|
22
|
-
o["default"] = v;
|
|
23
|
-
});
|
|
24
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
-
if (mod && mod.__esModule) return mod;
|
|
26
|
-
var result = {};
|
|
27
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
-
__setModuleDefault(result, mod);
|
|
29
|
-
return result;
|
|
30
|
-
};
|
|
31
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
32
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
33
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
34
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
35
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
36
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
-
};
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.getCompletionTriggerCharacter = exports.isValidFunctionCompletionContext = exports.asResolvedCompletionItem = exports.asCompletionItem = void 0;
|
|
45
|
-
const lsp = __importStar(require("vscode-languageserver/node"));
|
|
46
|
-
const tsp_command_types_1 = require("./tsp-command-types");
|
|
47
|
-
const protocol_translation_1 = require("./protocol-translation");
|
|
48
|
-
const commands_1 = require("./commands");
|
|
49
|
-
const ts_protocol_1 = require("./ts-protocol");
|
|
50
|
-
const SnippetString_1 = __importDefault(require("./utils/SnippetString"));
|
|
51
|
-
const typeConverters = __importStar(require("./utils/typeConverters"));
|
|
52
|
-
function asCompletionItem(entry, file, position, document) {
|
|
7
|
+
import * as lsp from 'vscode-languageserver';
|
|
8
|
+
import { KindModifiers, ScriptElementKind } from './tsp-command-types.js';
|
|
9
|
+
import { toTextEdit, asPlainText, asDocumentation, normalizePath } from './protocol-translation.js';
|
|
10
|
+
import { Commands } from './commands.js';
|
|
11
|
+
import { DisplayPartKind } from './ts-protocol.js';
|
|
12
|
+
import SnippetString from './utils/SnippetString.js';
|
|
13
|
+
import { Range, Position } from './utils/typeConverters.js';
|
|
14
|
+
export function asCompletionItem(entry, file, position, document, features) {
|
|
53
15
|
const item = {
|
|
54
16
|
label: entry.name,
|
|
17
|
+
...features.completionLabelDetails ? { labelDetails: entry.labelDetails } : {},
|
|
55
18
|
kind: asCompletionItemKind(entry.kind),
|
|
56
19
|
sortText: entry.sortText,
|
|
57
20
|
commitCharacters: asCommitCharacters(entry.kind),
|
|
@@ -64,25 +27,29 @@ function asCompletionItem(entry, file, position, document) {
|
|
|
64
27
|
entry.source || entry.data ? {
|
|
65
28
|
name: entry.name,
|
|
66
29
|
source: entry.source,
|
|
67
|
-
data: entry.data
|
|
68
|
-
} : entry.name
|
|
69
|
-
]
|
|
70
|
-
}
|
|
30
|
+
data: entry.data,
|
|
31
|
+
} : entry.name,
|
|
32
|
+
],
|
|
33
|
+
},
|
|
71
34
|
};
|
|
72
35
|
if (entry.source && entry.hasAction) {
|
|
73
36
|
// De-prioritze auto-imports
|
|
74
37
|
// https://github.com/Microsoft/vscode/issues/40311
|
|
75
38
|
item.sortText = '\uffff' + entry.sortText;
|
|
76
39
|
}
|
|
77
|
-
const {
|
|
78
|
-
if (
|
|
79
|
-
|
|
40
|
+
const { isSnippet, sourceDisplay } = entry;
|
|
41
|
+
if (isSnippet && !features.completionSnippets) {
|
|
42
|
+
return null;
|
|
80
43
|
}
|
|
81
|
-
if (
|
|
44
|
+
if (features.completionSnippets && (isSnippet || entry.isImportStatementCompletion || item.kind === lsp.CompletionItemKind.Function || item.kind === lsp.CompletionItemKind.Method)) {
|
|
45
|
+
// Import statements, Functions and Methods can result in a snippet completion when resolved.
|
|
82
46
|
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
83
47
|
}
|
|
48
|
+
if (sourceDisplay) {
|
|
49
|
+
item.detail = asPlainText(sourceDisplay);
|
|
50
|
+
}
|
|
84
51
|
let insertText = entry.insertText;
|
|
85
|
-
let replacementRange = entry.replacementSpan &&
|
|
52
|
+
let replacementRange = entry.replacementSpan && Range.fromTextSpan(entry.replacementSpan);
|
|
86
53
|
// Make sure we only replace a single line at most
|
|
87
54
|
if (replacementRange && replacementRange.start.line !== replacementRange.end.line) {
|
|
88
55
|
replacementRange = lsp.Range.create(replacementRange.start, document.getLineEnd(replacementRange.start.line));
|
|
@@ -92,7 +59,7 @@ function asCompletionItem(entry, file, position, document) {
|
|
|
92
59
|
}
|
|
93
60
|
if (entry.kindModifiers) {
|
|
94
61
|
const kindModifiers = new Set(entry.kindModifiers.split(/,|\s+/g));
|
|
95
|
-
if (kindModifiers.has(
|
|
62
|
+
if (kindModifiers.has(KindModifiers.optional)) {
|
|
96
63
|
if (!insertText) {
|
|
97
64
|
insertText = item.label;
|
|
98
65
|
}
|
|
@@ -101,14 +68,14 @@ function asCompletionItem(entry, file, position, document) {
|
|
|
101
68
|
}
|
|
102
69
|
item.label += '?';
|
|
103
70
|
}
|
|
104
|
-
if (kindModifiers.has(
|
|
71
|
+
if (kindModifiers.has(KindModifiers.deprecated)) {
|
|
105
72
|
item.tags = [lsp.CompletionItemTag.Deprecated];
|
|
106
73
|
}
|
|
107
|
-
if (kindModifiers.has(
|
|
74
|
+
if (kindModifiers.has(KindModifiers.color)) {
|
|
108
75
|
item.kind = lsp.CompletionItemKind.Color;
|
|
109
76
|
}
|
|
110
|
-
if (entry.kind ===
|
|
111
|
-
for (const extModifier of
|
|
77
|
+
if (entry.kind === ScriptElementKind.scriptElement) {
|
|
78
|
+
for (const extModifier of KindModifiers.fileExtensionKindModifiers) {
|
|
112
79
|
if (kindModifiers.has(extModifier)) {
|
|
113
80
|
if (entry.name.toLowerCase().endsWith(extModifier)) {
|
|
114
81
|
item.detail = entry.name;
|
|
@@ -132,46 +99,45 @@ function asCompletionItem(entry, file, position, document) {
|
|
|
132
99
|
}
|
|
133
100
|
return item;
|
|
134
101
|
}
|
|
135
|
-
exports.asCompletionItem = asCompletionItem;
|
|
136
102
|
function asCompletionItemKind(kind) {
|
|
137
103
|
switch (kind) {
|
|
138
|
-
case
|
|
139
|
-
case
|
|
104
|
+
case ScriptElementKind.primitiveType:
|
|
105
|
+
case ScriptElementKind.keyword:
|
|
140
106
|
return lsp.CompletionItemKind.Keyword;
|
|
141
|
-
case
|
|
107
|
+
case ScriptElementKind.constElement:
|
|
142
108
|
return lsp.CompletionItemKind.Constant;
|
|
143
|
-
case
|
|
144
|
-
case
|
|
145
|
-
case
|
|
146
|
-
case
|
|
109
|
+
case ScriptElementKind.letElement:
|
|
110
|
+
case ScriptElementKind.variableElement:
|
|
111
|
+
case ScriptElementKind.localVariableElement:
|
|
112
|
+
case ScriptElementKind.alias:
|
|
147
113
|
return lsp.CompletionItemKind.Variable;
|
|
148
|
-
case
|
|
149
|
-
case
|
|
150
|
-
case
|
|
114
|
+
case ScriptElementKind.memberVariableElement:
|
|
115
|
+
case ScriptElementKind.memberGetAccessorElement:
|
|
116
|
+
case ScriptElementKind.memberSetAccessorElement:
|
|
151
117
|
return lsp.CompletionItemKind.Field;
|
|
152
|
-
case
|
|
118
|
+
case ScriptElementKind.functionElement:
|
|
153
119
|
return lsp.CompletionItemKind.Function;
|
|
154
|
-
case
|
|
155
|
-
case
|
|
156
|
-
case
|
|
157
|
-
case
|
|
120
|
+
case ScriptElementKind.memberFunctionElement:
|
|
121
|
+
case ScriptElementKind.constructSignatureElement:
|
|
122
|
+
case ScriptElementKind.callSignatureElement:
|
|
123
|
+
case ScriptElementKind.indexSignatureElement:
|
|
158
124
|
return lsp.CompletionItemKind.Method;
|
|
159
|
-
case
|
|
125
|
+
case ScriptElementKind.enumElement:
|
|
160
126
|
return lsp.CompletionItemKind.Enum;
|
|
161
|
-
case
|
|
162
|
-
case
|
|
127
|
+
case ScriptElementKind.moduleElement:
|
|
128
|
+
case ScriptElementKind.externalModuleName:
|
|
163
129
|
return lsp.CompletionItemKind.Module;
|
|
164
|
-
case
|
|
165
|
-
case
|
|
130
|
+
case ScriptElementKind.classElement:
|
|
131
|
+
case ScriptElementKind.typeElement:
|
|
166
132
|
return lsp.CompletionItemKind.Class;
|
|
167
|
-
case
|
|
133
|
+
case ScriptElementKind.interfaceElement:
|
|
168
134
|
return lsp.CompletionItemKind.Interface;
|
|
169
|
-
case
|
|
170
|
-
case
|
|
135
|
+
case ScriptElementKind.warning:
|
|
136
|
+
case ScriptElementKind.scriptElement:
|
|
171
137
|
return lsp.CompletionItemKind.File;
|
|
172
|
-
case
|
|
138
|
+
case ScriptElementKind.directory:
|
|
173
139
|
return lsp.CompletionItemKind.Folder;
|
|
174
|
-
case
|
|
140
|
+
case ScriptElementKind.string:
|
|
175
141
|
return lsp.CompletionItemKind.Constant;
|
|
176
142
|
}
|
|
177
143
|
return lsp.CompletionItemKind.Property;
|
|
@@ -179,85 +145,77 @@ function asCompletionItemKind(kind) {
|
|
|
179
145
|
function asCommitCharacters(kind) {
|
|
180
146
|
const commitCharacters = [];
|
|
181
147
|
switch (kind) {
|
|
182
|
-
case
|
|
183
|
-
case
|
|
184
|
-
case
|
|
185
|
-
case
|
|
186
|
-
case
|
|
187
|
-
case
|
|
188
|
-
case
|
|
148
|
+
case ScriptElementKind.memberGetAccessorElement:
|
|
149
|
+
case ScriptElementKind.memberSetAccessorElement:
|
|
150
|
+
case ScriptElementKind.constructSignatureElement:
|
|
151
|
+
case ScriptElementKind.callSignatureElement:
|
|
152
|
+
case ScriptElementKind.indexSignatureElement:
|
|
153
|
+
case ScriptElementKind.enumElement:
|
|
154
|
+
case ScriptElementKind.interfaceElement:
|
|
189
155
|
commitCharacters.push('.');
|
|
190
156
|
break;
|
|
191
|
-
case
|
|
192
|
-
case
|
|
193
|
-
case
|
|
194
|
-
case
|
|
195
|
-
case
|
|
196
|
-
case
|
|
197
|
-
case
|
|
198
|
-
case
|
|
199
|
-
case
|
|
200
|
-
case
|
|
157
|
+
case ScriptElementKind.moduleElement:
|
|
158
|
+
case ScriptElementKind.alias:
|
|
159
|
+
case ScriptElementKind.constElement:
|
|
160
|
+
case ScriptElementKind.letElement:
|
|
161
|
+
case ScriptElementKind.variableElement:
|
|
162
|
+
case ScriptElementKind.localVariableElement:
|
|
163
|
+
case ScriptElementKind.memberVariableElement:
|
|
164
|
+
case ScriptElementKind.classElement:
|
|
165
|
+
case ScriptElementKind.functionElement:
|
|
166
|
+
case ScriptElementKind.memberFunctionElement:
|
|
201
167
|
commitCharacters.push('.', ',');
|
|
202
168
|
commitCharacters.push('(');
|
|
203
169
|
break;
|
|
204
170
|
}
|
|
205
171
|
return commitCharacters.length === 0 ? undefined : commitCharacters;
|
|
206
172
|
}
|
|
207
|
-
function asResolvedCompletionItem(item, details, client, options) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const shouldCompleteFunction = yield isValidFunctionCompletionContext(filepath, position, client);
|
|
222
|
-
if (shouldCompleteFunction) {
|
|
223
|
-
createSnippetOfFunctionCall(item, details);
|
|
224
|
-
}
|
|
173
|
+
export async function asResolvedCompletionItem(item, details, client, options, features) {
|
|
174
|
+
item.detail = asDetail(details);
|
|
175
|
+
item.documentation = asDocumentation(details);
|
|
176
|
+
const filepath = normalizePath(item.data.file);
|
|
177
|
+
if (details.codeActions?.length) {
|
|
178
|
+
item.additionalTextEdits = asAdditionalTextEdits(details.codeActions, filepath);
|
|
179
|
+
item.command = asCommand(details.codeActions, item.data.file);
|
|
180
|
+
}
|
|
181
|
+
if (features.completionSnippets && options.completeFunctionCalls && (item.kind === lsp.CompletionItemKind.Function || item.kind === lsp.CompletionItemKind.Method)) {
|
|
182
|
+
const { line, offset } = item.data;
|
|
183
|
+
const position = Position.fromLocation({ line, offset });
|
|
184
|
+
const shouldCompleteFunction = await isValidFunctionCompletionContext(filepath, position, client);
|
|
185
|
+
if (shouldCompleteFunction) {
|
|
186
|
+
createSnippetOfFunctionCall(item, details);
|
|
225
187
|
}
|
|
226
|
-
|
|
227
|
-
|
|
188
|
+
}
|
|
189
|
+
return item;
|
|
228
190
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const response = yield client.request("quickinfo" /* Quickinfo */, args);
|
|
237
|
-
if (response.type !== 'response') {
|
|
238
|
-
return true;
|
|
239
|
-
}
|
|
240
|
-
const { body } = response;
|
|
241
|
-
switch (body === null || body === void 0 ? void 0 : body.kind) {
|
|
242
|
-
case 'var':
|
|
243
|
-
case 'let':
|
|
244
|
-
case 'const':
|
|
245
|
-
case 'alias':
|
|
246
|
-
return false;
|
|
247
|
-
default:
|
|
248
|
-
return true;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
catch (_a) {
|
|
191
|
+
export async function isValidFunctionCompletionContext(filepath, position, client) {
|
|
192
|
+
// Workaround for https://github.com/Microsoft/TypeScript/issues/12677
|
|
193
|
+
// Don't complete function calls inside of destructive assigments or imports
|
|
194
|
+
try {
|
|
195
|
+
const args = Position.toFileLocationRequestArgs(filepath, position);
|
|
196
|
+
const response = await client.request("quickinfo" /* CommandTypes.Quickinfo */, args);
|
|
197
|
+
if (response.type !== 'response') {
|
|
252
198
|
return true;
|
|
253
199
|
}
|
|
254
|
-
|
|
200
|
+
const { body } = response;
|
|
201
|
+
switch (body?.kind) {
|
|
202
|
+
case 'var':
|
|
203
|
+
case 'let':
|
|
204
|
+
case 'const':
|
|
205
|
+
case 'alias':
|
|
206
|
+
return false;
|
|
207
|
+
default:
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
255
214
|
}
|
|
256
|
-
exports.isValidFunctionCompletionContext = isValidFunctionCompletionContext;
|
|
257
215
|
function createSnippetOfFunctionCall(item, detail) {
|
|
258
216
|
const { displayParts } = detail;
|
|
259
217
|
const parameterListParts = getParameterListParts(displayParts);
|
|
260
|
-
const snippet = new
|
|
218
|
+
const snippet = new SnippetString();
|
|
261
219
|
snippet.appendText(`${item.insertText || item.label}(`);
|
|
262
220
|
appendJoinedPlaceholders(snippet, parameterListParts.parts, ', ');
|
|
263
221
|
if (parameterListParts.hasOptionalParameters) {
|
|
@@ -266,6 +224,7 @@ function createSnippetOfFunctionCall(item, detail) {
|
|
|
266
224
|
snippet.appendText(')');
|
|
267
225
|
snippet.appendTabstop(0);
|
|
268
226
|
item.insertText = snippet.value;
|
|
227
|
+
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
269
228
|
}
|
|
270
229
|
function getParameterListParts(displayParts) {
|
|
271
230
|
const parts = [];
|
|
@@ -276,15 +235,15 @@ function getParameterListParts(displayParts) {
|
|
|
276
235
|
outer: for (let i = 0; i < displayParts.length; ++i) {
|
|
277
236
|
const part = displayParts[i];
|
|
278
237
|
switch (part.kind) {
|
|
279
|
-
case
|
|
280
|
-
case
|
|
281
|
-
case
|
|
282
|
-
case
|
|
238
|
+
case DisplayPartKind.methodName:
|
|
239
|
+
case DisplayPartKind.functionName:
|
|
240
|
+
case DisplayPartKind.text:
|
|
241
|
+
case DisplayPartKind.propertyName:
|
|
283
242
|
if (parenCount === 0 && braceCount === 0) {
|
|
284
243
|
isInMethod = true;
|
|
285
244
|
}
|
|
286
245
|
break;
|
|
287
|
-
case
|
|
246
|
+
case DisplayPartKind.parameterName:
|
|
288
247
|
if (parenCount === 1 && braceCount === 0 && isInMethod) {
|
|
289
248
|
// Only take top level paren names
|
|
290
249
|
const next = displayParts[i + 1];
|
|
@@ -298,7 +257,7 @@ function getParameterListParts(displayParts) {
|
|
|
298
257
|
hasOptionalParameters = hasOptionalParameters || nameIsFollowedByOptionalIndicator;
|
|
299
258
|
}
|
|
300
259
|
break;
|
|
301
|
-
case
|
|
260
|
+
case DisplayPartKind.punctuation:
|
|
302
261
|
if (part.text === '(') {
|
|
303
262
|
++parenCount;
|
|
304
263
|
}
|
|
@@ -342,7 +301,7 @@ function asAdditionalTextEdits(codeActions, filepath) {
|
|
|
342
301
|
for (const change of tsAction.changes) {
|
|
343
302
|
if (change.fileName === filepath) {
|
|
344
303
|
for (const textChange of change.textChanges) {
|
|
345
|
-
additionalTextEdits.push(
|
|
304
|
+
additionalTextEdits.push(toTextEdit(textChange));
|
|
346
305
|
}
|
|
347
306
|
}
|
|
348
307
|
}
|
|
@@ -370,12 +329,12 @@ function asCommand(codeActions, filepath) {
|
|
|
370
329
|
// Create command that applies all edits not in the current file.
|
|
371
330
|
return {
|
|
372
331
|
title: '',
|
|
373
|
-
command:
|
|
332
|
+
command: Commands.APPLY_COMPLETION_CODE_ACTION,
|
|
374
333
|
arguments: [filepath, codeActions.map(codeAction => ({
|
|
375
334
|
commands: codeAction.commands,
|
|
376
335
|
description: codeAction.description,
|
|
377
|
-
changes: codeAction.changes.filter(x => x.fileName !== filepath)
|
|
378
|
-
}))]
|
|
336
|
+
changes: codeAction.changes.filter(x => x.fileName !== filepath),
|
|
337
|
+
}))],
|
|
379
338
|
};
|
|
380
339
|
}
|
|
381
340
|
}
|
|
@@ -383,15 +342,15 @@ function asDetail({ displayParts, sourceDisplay, source: deprecatedSource }) {
|
|
|
383
342
|
const result = [];
|
|
384
343
|
const source = sourceDisplay || deprecatedSource;
|
|
385
344
|
if (source) {
|
|
386
|
-
result.push(`Auto import from '${
|
|
345
|
+
result.push(`Auto import from '${asPlainText(source)}'`);
|
|
387
346
|
}
|
|
388
|
-
const detail =
|
|
347
|
+
const detail = asPlainText(displayParts);
|
|
389
348
|
if (detail) {
|
|
390
349
|
result.push(detail);
|
|
391
350
|
}
|
|
392
351
|
return result.join('\n');
|
|
393
352
|
}
|
|
394
|
-
function getCompletionTriggerCharacter(character) {
|
|
353
|
+
export function getCompletionTriggerCharacter(character) {
|
|
395
354
|
switch (character) {
|
|
396
355
|
case '@':
|
|
397
356
|
case '#':
|
|
@@ -407,5 +366,4 @@ function getCompletionTriggerCharacter(character) {
|
|
|
407
366
|
return undefined;
|
|
408
367
|
}
|
|
409
368
|
}
|
|
410
|
-
exports.getCompletionTriggerCharacter = getCompletionTriggerCharacter;
|
|
411
369
|
//# sourceMappingURL=completion.js.map
|
package/lib/completion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type * as lsp from 'vscode-languageserver';
|
|
2
|
+
import type tsp from 'typescript/lib/protocol.d.js';
|
|
3
|
+
import { LspDocuments } from './document.js';
|
|
4
|
+
import type { TypeScriptInitializationOptions } from './ts-protocol.js';
|
|
5
|
+
import type { TspClient } from './tsp-client.js';
|
|
6
|
+
export interface WorkspaceConfiguration {
|
|
7
|
+
javascript?: WorkspaceConfigurationLanguageOptions;
|
|
8
|
+
typescript?: WorkspaceConfigurationLanguageOptions;
|
|
9
|
+
completions?: WorkspaceConfigurationCompletionOptions;
|
|
10
|
+
diagnostics?: WorkspaceConfigurationDiagnosticsOptions;
|
|
11
|
+
}
|
|
12
|
+
export interface WorkspaceConfigurationLanguageOptions {
|
|
13
|
+
format?: tsp.FormatCodeSettings;
|
|
14
|
+
inlayHints?: TypeScriptInlayHintsPreferences;
|
|
15
|
+
}
|
|
16
|
+
export interface TypeScriptInlayHintsPreferences {
|
|
17
|
+
includeInlayParameterNameHints?: 'none' | 'literals' | 'all';
|
|
18
|
+
includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean;
|
|
19
|
+
includeInlayFunctionParameterTypeHints?: boolean;
|
|
20
|
+
includeInlayVariableTypeHints?: boolean;
|
|
21
|
+
includeInlayPropertyDeclarationTypeHints?: boolean;
|
|
22
|
+
includeInlayFunctionLikeReturnTypeHints?: boolean;
|
|
23
|
+
includeInlayEnumMemberValueHints?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface WorkspaceConfigurationDiagnosticsOptions {
|
|
26
|
+
ignoredCodes?: number[];
|
|
27
|
+
}
|
|
28
|
+
export interface WorkspaceConfigurationCompletionOptions {
|
|
29
|
+
completeFunctionCalls?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare class ConfigurationManager {
|
|
32
|
+
private readonly documents;
|
|
33
|
+
tsPreferences: Required<tsp.UserPreferences>;
|
|
34
|
+
workspaceConfiguration: WorkspaceConfiguration;
|
|
35
|
+
private tspClient;
|
|
36
|
+
constructor(documents: LspDocuments);
|
|
37
|
+
mergeTsPreferences(preferences: tsp.UserPreferences): void;
|
|
38
|
+
setWorkspaceConfiguration(configuration: WorkspaceConfiguration): void;
|
|
39
|
+
setAndConfigureTspClient(client: TspClient, hostInfo?: TypeScriptInitializationOptions['hostInfo']): Promise<void>;
|
|
40
|
+
configureGloballyFromDocument(filename: string, formattingOptions?: lsp.FormattingOptions): Promise<void>;
|
|
41
|
+
getPreferences(filename: string): tsp.UserPreferences;
|
|
42
|
+
private getFormattingOptions;
|
|
43
|
+
private getQuoteStylePreference;
|
|
44
|
+
private getWorkspacePreferencesForFile;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=configuration-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-manager.d.ts","sourceRoot":"","sources":["../src/configuration-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAmCjD,MAAM,WAAW,sBAAsB;IACnC,UAAU,CAAC,EAAE,qCAAqC,CAAC;IACnD,UAAU,CAAC,EAAE,qCAAqC,CAAC;IACnD,WAAW,CAAC,EAAE,uCAAuC,CAAC;IACtD,WAAW,CAAC,EAAE,wCAAwC,CAAC;CAC1D;AAED,MAAM,WAAW,qCAAqC;IAClD,MAAM,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAC;IAChC,UAAU,CAAC,EAAE,+BAA+B,CAAC;CAChD;AAED,MAAM,WAAW,+BAA+B;IAC5C,8BAA8B,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;IAC7D,qDAAqD,CAAC,EAAE,OAAO,CAAC;IAChE,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,wCAAwC,CAAC,EAAE,OAAO,CAAC;IACnD,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,UAAU,wCAAwC;IAC9C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,uCAAuC;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,qBAAa,oBAAoB;IAKjB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ/B,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAA+C;IAC3F,sBAAsB,EAAE,sBAAsB,CAAM;IAC3D,OAAO,CAAC,SAAS,CAA0B;gBAEd,SAAS,EAAE,YAAY;IAE7C,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,eAAe,GAAG,IAAI;IAI1D,yBAAyB,CAAC,aAAa,EAAE,sBAAsB,GAAG,IAAI;IAIhE,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,+BAA+B,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAclH,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/G,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,eAAe;IAkB5D,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,8BAA8B;CAKzC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
import API from './utils/api.js';
|
|
3
|
+
const DEFAULT_TSSERVER_PREFERENCES = {
|
|
4
|
+
allowIncompleteCompletions: true,
|
|
5
|
+
allowRenameOfImportPath: true,
|
|
6
|
+
allowTextChangesInNewFiles: true,
|
|
7
|
+
disableSuggestions: false,
|
|
8
|
+
displayPartsForJSDoc: true,
|
|
9
|
+
generateReturnInDocTemplate: true,
|
|
10
|
+
importModuleSpecifierEnding: 'auto',
|
|
11
|
+
importModuleSpecifierPreference: 'shortest',
|
|
12
|
+
includeAutomaticOptionalChainCompletions: true,
|
|
13
|
+
includeCompletionsForImportStatements: true,
|
|
14
|
+
includeCompletionsForModuleExports: true,
|
|
15
|
+
includeCompletionsWithClassMemberSnippets: true,
|
|
16
|
+
includeCompletionsWithInsertText: true,
|
|
17
|
+
includeCompletionsWithObjectLiteralMethodSnippets: true,
|
|
18
|
+
includeCompletionsWithSnippetText: true,
|
|
19
|
+
includeInlayEnumMemberValueHints: false,
|
|
20
|
+
includeInlayFunctionLikeReturnTypeHints: false,
|
|
21
|
+
includeInlayFunctionParameterTypeHints: false,
|
|
22
|
+
includeInlayParameterNameHints: 'none',
|
|
23
|
+
includeInlayParameterNameHintsWhenArgumentMatchesName: false,
|
|
24
|
+
includeInlayPropertyDeclarationTypeHints: false,
|
|
25
|
+
includeInlayVariableTypeHints: false,
|
|
26
|
+
includePackageJsonAutoImports: 'auto',
|
|
27
|
+
jsxAttributeCompletionStyle: 'auto',
|
|
28
|
+
lazyConfiguredProjectsFromExternalProject: false,
|
|
29
|
+
providePrefixAndSuffixTextForRename: true,
|
|
30
|
+
provideRefactorNotApplicableReason: false,
|
|
31
|
+
quotePreference: 'auto',
|
|
32
|
+
useLabelDetailsInCompletionEntries: true,
|
|
33
|
+
};
|
|
34
|
+
export class ConfigurationManager {
|
|
35
|
+
constructor(documents) {
|
|
36
|
+
this.documents = documents;
|
|
37
|
+
this.tsPreferences = deepmerge({}, DEFAULT_TSSERVER_PREFERENCES);
|
|
38
|
+
this.workspaceConfiguration = {};
|
|
39
|
+
this.tspClient = null;
|
|
40
|
+
}
|
|
41
|
+
mergeTsPreferences(preferences) {
|
|
42
|
+
this.tsPreferences = deepmerge(this.tsPreferences, preferences);
|
|
43
|
+
}
|
|
44
|
+
setWorkspaceConfiguration(configuration) {
|
|
45
|
+
this.workspaceConfiguration = configuration;
|
|
46
|
+
}
|
|
47
|
+
async setAndConfigureTspClient(client, hostInfo) {
|
|
48
|
+
this.tspClient = client;
|
|
49
|
+
const formatOptions = {
|
|
50
|
+
// We can use \n here since the editor should normalize later on to its line endings.
|
|
51
|
+
newLineCharacter: '\n',
|
|
52
|
+
};
|
|
53
|
+
const args = {
|
|
54
|
+
...hostInfo ? { hostInfo } : {},
|
|
55
|
+
formatOptions,
|
|
56
|
+
preferences: this.tsPreferences,
|
|
57
|
+
};
|
|
58
|
+
await this.tspClient?.request("configure" /* CommandTypes.Configure */, args);
|
|
59
|
+
}
|
|
60
|
+
async configureGloballyFromDocument(filename, formattingOptions) {
|
|
61
|
+
const args = {
|
|
62
|
+
formatOptions: this.getFormattingOptions(filename, formattingOptions),
|
|
63
|
+
preferences: this.getPreferences(filename),
|
|
64
|
+
};
|
|
65
|
+
await this.tspClient?.request("configure" /* CommandTypes.Configure */, args);
|
|
66
|
+
}
|
|
67
|
+
getPreferences(filename) {
|
|
68
|
+
if (this.tspClient?.apiVersion.lt(API.v290)) {
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
const workspacePreferences = this.getWorkspacePreferencesForFile(filename);
|
|
72
|
+
const preferences = Object.assign({}, this.tsPreferences, workspacePreferences?.inlayHints || {});
|
|
73
|
+
return {
|
|
74
|
+
...preferences,
|
|
75
|
+
quotePreference: this.getQuoteStylePreference(preferences),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
getFormattingOptions(filename, formattingOptions) {
|
|
79
|
+
const workspacePreferences = this.getWorkspacePreferencesForFile(filename);
|
|
80
|
+
const opts = {
|
|
81
|
+
...workspacePreferences?.format,
|
|
82
|
+
...formattingOptions,
|
|
83
|
+
};
|
|
84
|
+
if (opts.convertTabsToSpaces === undefined) {
|
|
85
|
+
opts.convertTabsToSpaces = formattingOptions?.insertSpaces;
|
|
86
|
+
}
|
|
87
|
+
if (opts.indentSize === undefined) {
|
|
88
|
+
opts.indentSize = formattingOptions?.tabSize;
|
|
89
|
+
}
|
|
90
|
+
return opts;
|
|
91
|
+
}
|
|
92
|
+
getQuoteStylePreference(preferences) {
|
|
93
|
+
switch (preferences.quotePreference) {
|
|
94
|
+
case 'single': return 'single';
|
|
95
|
+
case 'double': return 'double';
|
|
96
|
+
default: return this.tspClient?.apiVersion.gte(API.v333) ? 'auto' : undefined;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getWorkspacePreferencesForFile(filename) {
|
|
100
|
+
const document = this.documents.get(filename);
|
|
101
|
+
const languageId = document?.languageId.startsWith('typescript') ? 'typescript' : 'javascript';
|
|
102
|
+
return this.workspaceConfiguration[languageId] || {};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=configuration-manager.js.map
|