typescript-language-server 1.0.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +128 -21
- package/lib/calls.d.ts +1 -1
- package/lib/calls.d.ts.map +1 -1
- package/lib/calls.js +140 -164
- package/lib/calls.js.map +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands.d.ts +1 -0
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +3 -1
- package/lib/commands.js.map +1 -1
- package/lib/completion.d.ts +4 -7
- package/lib/completion.d.ts.map +1 -1
- package/lib/completion.js +64 -66
- 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 +5 -4
- package/lib/diagnostic-queue.d.ts.map +1 -1
- package/lib/diagnostic-queue.js +7 -8
- package/lib/diagnostic-queue.js.map +1 -1
- package/lib/document-symbol.d.ts.map +1 -1
- package/lib/document-symbol.js +11 -10
- package/lib/document-symbol.js.map +1 -1
- package/lib/features/fix-all.d.ts.map +1 -1
- package/lib/features/fix-all.js +96 -112
- 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 +16 -25
- package/lib/file-lsp-server.spec.js.map +1 -1
- package/lib/hover.d.ts +2 -1
- package/lib/hover.d.ts.map +1 -1
- package/lib/hover.js +47 -7
- package/lib/hover.js.map +1 -1
- package/lib/logger.js +1 -1
- package/lib/logger.js.map +1 -1
- package/lib/lsp-client.d.ts +11 -15
- package/lib/lsp-client.d.ts.map +1 -1
- package/lib/lsp-client.js +29 -61
- package/lib/lsp-client.js.map +1 -1
- package/lib/lsp-connection.d.ts.map +1 -1
- package/lib/lsp-connection.js +3 -2
- package/lib/lsp-connection.js.map +1 -1
- package/lib/lsp-protocol.inlayHints.proposed.d.ts +0 -9
- package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +1 -1
- package/lib/lsp-server.d.ts +15 -20
- package/lib/lsp-server.d.ts.map +1 -1
- package/lib/lsp-server.js +807 -901
- package/lib/lsp-server.js.map +1 -1
- package/lib/lsp-server.spec.js +772 -495
- package/lib/lsp-server.spec.js.map +1 -1
- package/lib/organize-imports.spec.js +8 -8
- package/lib/protocol-translation.d.ts +2 -7
- package/lib/protocol-translation.d.ts.map +1 -1
- package/lib/protocol-translation.js +19 -106
- package/lib/protocol-translation.js.map +1 -1
- package/lib/quickfix.js +1 -1
- package/lib/refactor.js +5 -1
- package/lib/refactor.js.map +1 -1
- package/lib/test-utils.d.ts +4 -3
- package/lib/test-utils.d.ts.map +1 -1
- package/lib/test-utils.js +103 -77
- package/lib/test-utils.js.map +1 -1
- package/lib/ts-protocol.d.ts +4 -19
- package/lib/ts-protocol.d.ts.map +1 -1
- package/lib/ts-protocol.js.map +1 -1
- package/lib/tsp-client.d.ts +36 -32
- package/lib/tsp-client.d.ts.map +1 -1
- package/lib/tsp-client.js +9 -7
- package/lib/tsp-client.js.map +1 -1
- package/lib/tsp-client.spec.js +26 -33
- 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 +1 -1
- package/lib/tsp-command-types.js.map +1 -1
- package/lib/utils/typeConverters.d.ts +19 -1
- package/lib/utils/typeConverters.d.ts.map +1 -1
- package/lib/utils/typeConverters.js +103 -4
- package/lib/utils/typeConverters.js.map +1 -1
- package/lib/utils/versionProvider.js +17 -19
- package/lib/utils/versionProvider.js.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +2 -0
- package/lib/utils.js.map +1 -1
- package/package.json +10 -7
package/lib/commands.d.ts
CHANGED
package/lib/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ;;;;;;;IAOjB,yDAAyD;;;CAG5D,CAAC"}
|
package/lib/commands.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
5
5
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
6
|
*/
|
|
7
|
+
import { SourceDefinitionCommand } from './features/source-definition.js';
|
|
7
8
|
export const Commands = {
|
|
8
9
|
APPLY_WORKSPACE_EDIT: '_typescript.applyWorkspaceEdit',
|
|
9
10
|
APPLY_CODE_ACTION: '_typescript.applyCodeAction',
|
|
@@ -12,6 +13,7 @@ export const Commands = {
|
|
|
12
13
|
APPLY_RENAME_FILE: '_typescript.applyRenameFile',
|
|
13
14
|
APPLY_COMPLETION_CODE_ACTION: '_typescript.applyCompletionCodeAction',
|
|
14
15
|
/** Commands below should be implemented by the client */
|
|
15
|
-
SELECT_REFACTORING: '_typescript.selectRefactoring'
|
|
16
|
+
SELECT_REFACTORING: '_typescript.selectRefactoring',
|
|
17
|
+
SOURCE_DEFINITION: SourceDefinitionCommand.id,
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=commands.js.map
|
package/lib/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,oBAAoB,EAAE,gCAAgC;IACtD,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,8BAA8B;IACjD,gBAAgB,EAAE,6BAA6B;IAC/C,iBAAiB,EAAE,6BAA6B;IAChD,4BAA4B,EAAE,uCAAuC;IACrE,yDAAyD;IACzD,kBAAkB,EAAE,+BAA+B;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,oBAAoB,EAAE,gCAAgC;IACtD,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,8BAA8B;IACjD,gBAAgB,EAAE,6BAA6B;IAC/C,iBAAiB,EAAE,6BAA6B;IAChD,4BAA4B,EAAE,uCAAuC;IACrE,yDAAyD;IACzD,kBAAkB,EAAE,+BAA+B;IACnD,iBAAiB,EAAE,uBAAuB,CAAC,EAAE;CAChD,CAAC"}
|
package/lib/completion.d.ts
CHANGED
|
@@ -2,13 +2,10 @@ import * as lsp from 'vscode-languageserver';
|
|
|
2
2
|
import type tsp from 'typescript/lib/protocol.js';
|
|
3
3
|
import { LspDocument } from './document.js';
|
|
4
4
|
import { TspClient } from './tsp-client.js';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare function asCompletionItem(entry: tsp.CompletionEntry, file: string, position: lsp.Position, document: LspDocument, features: SupportedFeatures): TSCompletionItem;
|
|
10
|
-
export declare function asResolvedCompletionItem(item: lsp.CompletionItem, details: tsp.CompletionEntryDetails, client: TspClient, options: CompletionOptions): Promise<lsp.CompletionItem>;
|
|
5
|
+
import { SupportedFeatures } from './ts-protocol.js';
|
|
6
|
+
import type { WorkspaceConfigurationCompletionOptions } from './configuration-manager.js';
|
|
7
|
+
export declare function asCompletionItem(entry: tsp.CompletionEntry, file: string, position: lsp.Position, document: LspDocument, features: SupportedFeatures): lsp.CompletionItem | null;
|
|
8
|
+
export declare function asResolvedCompletionItem(item: lsp.CompletionItem, details: tsp.CompletionEntryDetails, client: TspClient, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): Promise<lsp.CompletionItem>;
|
|
11
9
|
export declare function isValidFunctionCompletionContext(filepath: string, position: lsp.Position, client: TspClient): Promise<boolean>;
|
|
12
10
|
export declare function getCompletionTriggerCharacter(character: string | undefined): tsp.CompletionsTriggerCharacter | undefined;
|
|
13
|
-
export {};
|
|
14
11
|
//# sourceMappingURL=completion.d.ts.map
|
package/lib/completion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAmB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AAO1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,GAAG,CAAC,cAAc,GAAG,IAAI,CA4FhL;AA6ED,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,iBAAiB,GAChK,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkB7B;AAED,wBAAsB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBpI;AAmJD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,2BAA2B,GAAG,SAAS,CAexH"}
|
package/lib/completion.js
CHANGED
|
@@ -4,24 +4,22 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
5
5
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
6
|
*/
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
7
|
import * as lsp from 'vscode-languageserver';
|
|
17
8
|
import { KindModifiers, ScriptElementKind } from './tsp-command-types.js';
|
|
18
|
-
import {
|
|
9
|
+
import { toTextEdit, asPlainText, asDocumentation, normalizePath } from './protocol-translation.js';
|
|
19
10
|
import { Commands } from './commands.js';
|
|
20
11
|
import { DisplayPartKind } from './ts-protocol.js';
|
|
21
12
|
import SnippetString from './utils/SnippetString.js';
|
|
22
|
-
import
|
|
13
|
+
import { Range, Position } from './utils/typeConverters.js';
|
|
23
14
|
export function asCompletionItem(entry, file, position, document, features) {
|
|
24
|
-
const item =
|
|
15
|
+
const item = {
|
|
16
|
+
label: entry.name,
|
|
17
|
+
...features.completionLabelDetails ? { labelDetails: entry.labelDetails } : {},
|
|
18
|
+
kind: asCompletionItemKind(entry.kind),
|
|
19
|
+
sortText: entry.sortText,
|
|
20
|
+
commitCharacters: asCommitCharacters(entry.kind),
|
|
21
|
+
preselect: entry.isRecommended,
|
|
22
|
+
data: {
|
|
25
23
|
file,
|
|
26
24
|
line: position.line + 1,
|
|
27
25
|
offset: position.character + 1,
|
|
@@ -29,24 +27,29 @@ export function asCompletionItem(entry, file, position, document, features) {
|
|
|
29
27
|
entry.source || entry.data ? {
|
|
30
28
|
name: entry.name,
|
|
31
29
|
source: entry.source,
|
|
32
|
-
data: entry.data
|
|
33
|
-
} : entry.name
|
|
34
|
-
]
|
|
35
|
-
}
|
|
30
|
+
data: entry.data,
|
|
31
|
+
} : entry.name,
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
};
|
|
36
35
|
if (entry.source && entry.hasAction) {
|
|
37
36
|
// De-prioritze auto-imports
|
|
38
37
|
// https://github.com/Microsoft/vscode/issues/40311
|
|
39
38
|
item.sortText = '\uffff' + entry.sortText;
|
|
40
39
|
}
|
|
41
|
-
const {
|
|
42
|
-
if (
|
|
43
|
-
|
|
40
|
+
const { isSnippet, sourceDisplay } = entry;
|
|
41
|
+
if (isSnippet && !features.completionSnippets) {
|
|
42
|
+
return null;
|
|
44
43
|
}
|
|
45
|
-
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.
|
|
46
46
|
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
47
47
|
}
|
|
48
|
+
if (sourceDisplay) {
|
|
49
|
+
item.detail = asPlainText(sourceDisplay);
|
|
50
|
+
}
|
|
48
51
|
let insertText = entry.insertText;
|
|
49
|
-
let replacementRange = entry.replacementSpan &&
|
|
52
|
+
let replacementRange = entry.replacementSpan && Range.fromTextSpan(entry.replacementSpan);
|
|
50
53
|
// Make sure we only replace a single line at most
|
|
51
54
|
if (replacementRange && replacementRange.start.line !== replacementRange.end.line) {
|
|
52
55
|
replacementRange = lsp.Range.create(replacementRange.start, document.getLineEnd(replacementRange.start.line));
|
|
@@ -167,53 +170,47 @@ function asCommitCharacters(kind) {
|
|
|
167
170
|
}
|
|
168
171
|
return commitCharacters.length === 0 ? undefined : commitCharacters;
|
|
169
172
|
}
|
|
170
|
-
export function asResolvedCompletionItem(item, details, client, options) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const shouldCompleteFunction = yield isValidFunctionCompletionContext(filepath, position, client);
|
|
185
|
-
if (shouldCompleteFunction) {
|
|
186
|
-
createSnippetOfFunctionCall(item, details);
|
|
187
|
-
}
|
|
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);
|
|
188
187
|
}
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
}
|
|
189
|
+
return item;
|
|
191
190
|
}
|
|
192
|
-
export function isValidFunctionCompletionContext(filepath, position, client) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (response.type !== 'response') {
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
const { body } = response;
|
|
203
|
-
switch (body === null || body === void 0 ? void 0 : body.kind) {
|
|
204
|
-
case 'var':
|
|
205
|
-
case 'let':
|
|
206
|
-
case 'const':
|
|
207
|
-
case 'alias':
|
|
208
|
-
return false;
|
|
209
|
-
default:
|
|
210
|
-
return true;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
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') {
|
|
214
198
|
return true;
|
|
215
199
|
}
|
|
216
|
-
|
|
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
|
+
}
|
|
217
214
|
}
|
|
218
215
|
function createSnippetOfFunctionCall(item, detail) {
|
|
219
216
|
const { displayParts } = detail;
|
|
@@ -227,6 +224,7 @@ function createSnippetOfFunctionCall(item, detail) {
|
|
|
227
224
|
snippet.appendText(')');
|
|
228
225
|
snippet.appendTabstop(0);
|
|
229
226
|
item.insertText = snippet.value;
|
|
227
|
+
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
230
228
|
}
|
|
231
229
|
function getParameterListParts(displayParts) {
|
|
232
230
|
const parts = [];
|
|
@@ -335,8 +333,8 @@ function asCommand(codeActions, filepath) {
|
|
|
335
333
|
arguments: [filepath, codeActions.map(codeAction => ({
|
|
336
334
|
commands: codeAction.commands,
|
|
337
335
|
description: codeAction.description,
|
|
338
|
-
changes: codeAction.changes.filter(x => x.fileName !== filepath)
|
|
339
|
-
}))]
|
|
336
|
+
changes: codeAction.changes.filter(x => x.fileName !== filepath),
|
|
337
|
+
}))],
|
|
340
338
|
};
|
|
341
339
|
}
|
|
342
340
|
}
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-manager.js","sourceRoot":"","sources":["../src/configuration-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,14 @@ import * as lsp from 'vscode-languageserver';
|
|
|
3
3
|
import { Logger } from './logger.js';
|
|
4
4
|
import { EventTypes } from './tsp-command-types.js';
|
|
5
5
|
import { LspDocuments } from './document.js';
|
|
6
|
+
import { SupportedFeatures } from './ts-protocol.js';
|
|
6
7
|
declare class FileDiagnostics {
|
|
7
8
|
protected readonly uri: string;
|
|
8
9
|
protected readonly publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void;
|
|
9
10
|
protected readonly documents: LspDocuments;
|
|
10
|
-
protected readonly
|
|
11
|
+
protected readonly features: SupportedFeatures;
|
|
11
12
|
private readonly diagnosticsPerKind;
|
|
12
|
-
constructor(uri: string, publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments,
|
|
13
|
+
constructor(uri: string, publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments, features: SupportedFeatures);
|
|
13
14
|
update(kind: EventTypes, diagnostics: tsp.Diagnostic[]): void;
|
|
14
15
|
protected readonly firePublishDiagnostics: () => Promise<void>;
|
|
15
16
|
getDiagnostics(): lsp.Diagnostic[];
|
|
@@ -17,11 +18,11 @@ declare class FileDiagnostics {
|
|
|
17
18
|
export declare class DiagnosticEventQueue {
|
|
18
19
|
protected readonly publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void;
|
|
19
20
|
protected readonly documents: LspDocuments;
|
|
20
|
-
protected readonly
|
|
21
|
+
protected readonly features: SupportedFeatures;
|
|
21
22
|
protected readonly logger: Logger;
|
|
22
23
|
protected readonly diagnostics: Map<string, FileDiagnostics>;
|
|
23
24
|
private ignoredDiagnosticCodes;
|
|
24
|
-
constructor(publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments,
|
|
25
|
+
constructor(publishDiagnostics: (params: lsp.PublishDiagnosticsParams) => void, documents: LspDocuments, features: SupportedFeatures, logger: Logger);
|
|
25
26
|
updateDiagnostics(kind: EventTypes, event: tsp.DiagnosticEvent): void;
|
|
26
27
|
updateIgnoredDiagnosticCodes(ignoredCodes: readonly number[]): void;
|
|
27
28
|
getDiagnosticsForFile(file: string): lsp.Diagnostic[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-queue.d.ts","sourceRoot":"","sources":["../src/diagnostic-queue.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostic-queue.d.ts","sourceRoot":"","sources":["../src/diagnostic-queue.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAM,eAAe;IAIb,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM;IAC9B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAwB,KAAK,IAAI;IACrF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IANlD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;gBAGvD,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAwB,KAAK,IAAI,EAClE,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,iBAAiB;IAGlD,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI;IAI7D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,sBAGlC;IAEA,cAAc,IAAI,GAAG,CAAC,UAAU,EAAE;CAS5C;AAED,qBAAa,oBAAoB;IAKzB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAwB,KAAK,IAAI;IACrF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IAC9C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAPrC,SAAS,CAAC,QAAQ,CAAC,WAAW,+BAAsC;IACpE,OAAO,CAAC,sBAAsB,CAA0B;gBAGjC,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAwB,KAAK,IAAI,EAClE,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM;IAGrC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,eAAe,GAAG,IAAI;IAkBrE,4BAA4B,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAI5D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE;IAK5D,OAAO,CAAC,mBAAmB;CAG9B"}
|
package/lib/diagnostic-queue.js
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
import debounce from 'p-debounce';
|
|
8
8
|
import { pathToUri, toDiagnostic } from './protocol-translation.js';
|
|
9
9
|
class FileDiagnostics {
|
|
10
|
-
constructor(uri, publishDiagnostics, documents,
|
|
10
|
+
constructor(uri, publishDiagnostics, documents, features) {
|
|
11
11
|
this.uri = uri;
|
|
12
12
|
this.publishDiagnostics = publishDiagnostics;
|
|
13
13
|
this.documents = documents;
|
|
14
|
-
this.
|
|
14
|
+
this.features = features;
|
|
15
15
|
this.diagnosticsPerKind = new Map();
|
|
16
16
|
this.firePublishDiagnostics = debounce(() => {
|
|
17
17
|
const diagnostics = this.getDiagnostics();
|
|
@@ -26,17 +26,17 @@ class FileDiagnostics {
|
|
|
26
26
|
const result = [];
|
|
27
27
|
for (const diagnostics of this.diagnosticsPerKind.values()) {
|
|
28
28
|
for (const diagnostic of diagnostics) {
|
|
29
|
-
result.push(toDiagnostic(diagnostic, this.documents, this.
|
|
29
|
+
result.push(toDiagnostic(diagnostic, this.documents, this.features));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
return result;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
export class DiagnosticEventQueue {
|
|
36
|
-
constructor(publishDiagnostics, documents,
|
|
36
|
+
constructor(publishDiagnostics, documents, features, logger) {
|
|
37
37
|
this.publishDiagnostics = publishDiagnostics;
|
|
38
38
|
this.documents = documents;
|
|
39
|
-
this.
|
|
39
|
+
this.features = features;
|
|
40
40
|
this.logger = logger;
|
|
41
41
|
this.diagnostics = new Map();
|
|
42
42
|
this.ignoredDiagnosticCodes = new Set();
|
|
@@ -52,7 +52,7 @@ export class DiagnosticEventQueue {
|
|
|
52
52
|
diagnostics = diagnostics.filter(diagnostic => !this.isDiagnosticIgnored(diagnostic));
|
|
53
53
|
}
|
|
54
54
|
const uri = pathToUri(file, this.documents);
|
|
55
|
-
const diagnosticsForFile = this.diagnostics.get(uri) || new FileDiagnostics(uri, this.publishDiagnostics, this.documents, this.
|
|
55
|
+
const diagnosticsForFile = this.diagnostics.get(uri) || new FileDiagnostics(uri, this.publishDiagnostics, this.documents, this.features);
|
|
56
56
|
diagnosticsForFile.update(kind, diagnostics);
|
|
57
57
|
this.diagnostics.set(uri, diagnosticsForFile);
|
|
58
58
|
}
|
|
@@ -60,9 +60,8 @@ export class DiagnosticEventQueue {
|
|
|
60
60
|
this.ignoredDiagnosticCodes = new Set(ignoredCodes);
|
|
61
61
|
}
|
|
62
62
|
getDiagnosticsForFile(file) {
|
|
63
|
-
var _a;
|
|
64
63
|
const uri = pathToUri(file, this.documents);
|
|
65
|
-
return
|
|
64
|
+
return this.diagnostics.get(uri)?.getDiagnostics() || [];
|
|
66
65
|
}
|
|
67
66
|
isDiagnosticIgnored(diagnostic) {
|
|
68
67
|
return diagnostic.code !== undefined && this.ignoredDiagnosticCodes.has(diagnostic.code);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-queue.js","sourceRoot":"","sources":["../src/diagnostic-queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostic-queue.js","sourceRoot":"","sources":["../src/diagnostic-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-symbol.d.ts","sourceRoot":"","sources":["../src/document-symbol.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"document-symbol.d.ts","sourceRoot":"","sources":["../src/document-symbol.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AAKpD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,OAAO,CAEzG;AA2CD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CA6BpJ;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAK5F"}
|