typescript-language-server 2.1.0 → 2.3.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 +27 -0
- package/README.md +2 -0
- package/lib/calls.d.ts +1 -1
- package/lib/calls.d.ts.map +1 -1
- package/lib/calls.js +5 -4
- package/lib/calls.js.map +1 -1
- package/lib/completion.d.ts +2 -3
- package/lib/completion.d.ts.map +1 -1
- package/lib/completion.js +29 -31
- package/lib/completion.js.map +1 -1
- package/lib/configuration-manager.d.ts +2 -3
- package/lib/configuration-manager.d.ts.map +1 -1
- package/lib/configuration-manager.js +8 -6
- package/lib/configuration-manager.js.map +1 -1
- package/lib/diagnostic-queue.d.ts +1 -2
- package/lib/diagnostic-queue.d.ts.map +1 -1
- package/lib/diagnostic-queue.js.map +1 -1
- package/lib/document-symbol.d.ts +1 -1
- package/lib/document-symbol.d.ts.map +1 -1
- package/lib/document-symbol.js +2 -2
- package/lib/document-symbol.js.map +1 -1
- package/lib/features/fix-all.d.ts.map +1 -1
- package/lib/features/fix-all.js +8 -6
- package/lib/features/fix-all.js.map +1 -1
- package/lib/features/inlay-hints.d.ts.map +1 -1
- package/lib/features/inlay-hints.js +2 -1
- package/lib/features/inlay-hints.js.map +1 -1
- package/lib/features/source-definition.js +2 -1
- package/lib/features/source-definition.js.map +1 -1
- package/lib/hover.d.ts +1 -1
- package/lib/hover.d.ts.map +1 -1
- package/lib/lsp-connection.d.ts.map +1 -1
- package/lib/lsp-connection.js +2 -0
- package/lib/lsp-connection.js.map +1 -1
- package/lib/lsp-protocol.inlayHints.proposed.d.ts +5 -5
- package/lib/lsp-protocol.inlayHints.proposed.d.ts.map +1 -1
- package/lib/lsp-server.d.ts +8 -4
- package/lib/lsp-server.d.ts.map +1 -1
- package/lib/lsp-server.js +87 -57
- package/lib/lsp-server.js.map +1 -1
- package/lib/lsp-server.spec.js +6 -6
- package/lib/lsp-server.spec.js.map +1 -1
- package/lib/organize-imports.d.ts +1 -1
- package/lib/organize-imports.d.ts.map +1 -1
- package/lib/organize-imports.js.map +1 -1
- package/lib/organize-imports.spec.js.map +1 -1
- package/lib/protocol-translation.d.ts +2 -2
- package/lib/protocol-translation.d.ts.map +1 -1
- package/lib/protocol-translation.js +10 -14
- package/lib/protocol-translation.js.map +1 -1
- package/lib/quickfix.d.ts +1 -1
- package/lib/quickfix.d.ts.map +1 -1
- package/lib/quickfix.js +1 -1
- package/lib/quickfix.js.map +1 -1
- package/lib/refactor.d.ts +1 -2
- package/lib/refactor.d.ts.map +1 -1
- package/lib/refactor.js +4 -4
- package/lib/refactor.js.map +1 -1
- package/lib/ts-protocol.d.ts +29 -14
- package/lib/ts-protocol.d.ts.map +1 -1
- package/lib/ts-protocol.js +50 -13
- package/lib/ts-protocol.js.map +1 -1
- package/lib/tsServer/callbackMap.d.ts +1 -1
- package/lib/tsServer/callbackMap.d.ts.map +1 -1
- package/lib/tsServer/callbackMap.js.map +1 -1
- package/lib/tsServer/requestQueue.d.ts +1 -1
- package/lib/tsServer/requestQueue.d.ts.map +1 -1
- package/lib/tsServer/requests.d.ts +4 -3
- package/lib/tsServer/requests.d.ts.map +1 -1
- package/lib/tsServer/requests.js +2 -0
- package/lib/tsServer/requests.js.map +1 -1
- package/lib/tsServer/server.d.ts +9 -4
- package/lib/tsServer/server.d.ts.map +1 -1
- package/lib/tsServer/server.js +7 -0
- package/lib/tsServer/server.js.map +1 -1
- package/lib/tsServer/serverError.d.ts +1 -1
- package/lib/tsServer/serverError.d.ts.map +1 -1
- package/lib/tsServer/serverError.js +4 -4
- package/lib/tsServer/serverError.js.map +1 -1
- package/lib/tsServer/serverProcess.d.ts.map +1 -1
- package/lib/tsServer/serverProcess.js +9 -2
- package/lib/tsServer/serverProcess.js.map +1 -1
- package/lib/tsServer/spawner.js +3 -3
- package/lib/tsServer/spawner.js.map +1 -1
- package/lib/tsServer/tracer.d.ts +2 -2
- package/lib/tsServer/tracer.d.ts.map +1 -1
- package/lib/tsServer/versionProvider.js +1 -1
- package/lib/tsServer/versionProvider.js.map +1 -1
- package/lib/tsp-client.d.ts +2 -2
- package/lib/tsp-client.d.ts.map +1 -1
- package/lib/tsp-client.js +10 -2
- package/lib/tsp-client.js.map +1 -1
- package/lib/tsp-client.spec.js +11 -9
- package/lib/tsp-client.spec.js.map +1 -1
- package/lib/utils/SnippetString.js +4 -4
- package/lib/utils/SnippetString.js.map +1 -1
- package/lib/utils/api.d.ts +2 -0
- package/lib/utils/api.d.ts.map +1 -1
- package/lib/utils/api.js +17 -15
- package/lib/utils/api.js.map +1 -1
- package/lib/utils/logger.d.ts +1 -1
- package/lib/utils/logger.d.ts.map +1 -1
- package/lib/utils/logger.js +1 -3
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/previewer.d.ts +1 -1
- package/lib/utils/previewer.d.ts.map +1 -1
- package/lib/utils/previewer.js.map +1 -1
- package/lib/utils/tsconfig.d.ts +1 -1
- package/lib/utils/tsconfig.d.ts.map +1 -1
- package/lib/utils/tsconfig.js +5 -4
- package/lib/utils/tsconfig.js.map +1 -1
- package/lib/utils/typeConverters.d.ts +1 -1
- package/lib/utils/typeConverters.d.ts.map +1 -1
- package/package.json +16 -16
- package/lib/tsp-command-types.d.ts +0 -188
- package/lib/tsp-command-types.d.ts.map +0 -1
- package/lib/tsp-command-types.js +0 -99
- package/lib/tsp-command-types.js.map +0 -1
package/lib/lsp-server.js
CHANGED
|
@@ -14,7 +14,7 @@ import API from './utils/api.js';
|
|
|
14
14
|
import { LogLevel, PrefixingLogger } from './utils/logger.js';
|
|
15
15
|
import { TspClient } from './tsp-client.js';
|
|
16
16
|
import { DiagnosticEventQueue } from './diagnostic-queue.js';
|
|
17
|
-
import { toDocumentHighlight, uriToPath, toSymbolKind, toLocation, pathToUri, toTextEdit, normalizePath } from './protocol-translation.js';
|
|
17
|
+
import { toDocumentHighlight, uriToPath, toSymbolKind, toLocation, toSelectionRange, pathToUri, toTextEdit, normalizePath } from './protocol-translation.js';
|
|
18
18
|
import { LspDocuments } from './document.js';
|
|
19
19
|
import { asCompletionItem, asResolvedCompletionItem, getCompletionTriggerCharacter } from './completion.js';
|
|
20
20
|
import { asSignatureHelp, toTsTriggerReason } from './hover.js';
|
|
@@ -22,6 +22,7 @@ import { Commands } from './commands.js';
|
|
|
22
22
|
import { provideQuickFix } from './quickfix.js';
|
|
23
23
|
import { provideRefactors } from './refactor.js';
|
|
24
24
|
import { provideOrganizeImports } from './organize-imports.js';
|
|
25
|
+
import { tsp } from './ts-protocol.js';
|
|
25
26
|
import { collectDocumentSymbols, collectSymbolInformation } from './document-symbol.js';
|
|
26
27
|
import { computeCallers, computeCallees } from './calls.js';
|
|
27
28
|
import { TsServerLogLevel } from './utils/configuration.js';
|
|
@@ -37,6 +38,7 @@ import { getInferredProjectCompilerOptions } from './utils/tsconfig.js';
|
|
|
37
38
|
import { Position, Range } from './utils/typeConverters.js';
|
|
38
39
|
import { CodeActionKind } from './utils/types.js';
|
|
39
40
|
import { ConfigurationManager } from './configuration-manager.js';
|
|
41
|
+
var CommandTypes = tsp.CommandTypes;
|
|
40
42
|
export class LspServer {
|
|
41
43
|
constructor(options) {
|
|
42
44
|
this.options = options;
|
|
@@ -137,10 +139,10 @@ export class LspServer {
|
|
|
137
139
|
logger: this.options.logger,
|
|
138
140
|
onEvent: this.onTsEvent.bind(this),
|
|
139
141
|
onExit: (exitCode, signal) => {
|
|
142
|
+
this.shutdown();
|
|
140
143
|
if (exitCode) {
|
|
141
|
-
|
|
144
|
+
throw new Error(`tsserver process has exited (exit code: ${exitCode}, signal: ${signal}). Stopping the server.`);
|
|
142
145
|
}
|
|
143
|
-
this.shutdown();
|
|
144
146
|
},
|
|
145
147
|
});
|
|
146
148
|
const started = this.tspClient.start();
|
|
@@ -156,6 +158,7 @@ export class LspServer {
|
|
|
156
158
|
this.typeScriptAutoFixProvider = new TypeScriptAutoFixProvider(this.tspClient);
|
|
157
159
|
this.configurationManager.setAndConfigureTspClient(this.workspaceRoot, this._tspClient, hostInfo);
|
|
158
160
|
this.setCompilerOptionsForInferredProjects();
|
|
161
|
+
const prepareSupport = textDocument?.rename?.prepareSupport && this.tspClient.apiVersion.gte(API.v310);
|
|
159
162
|
const initializeResult = {
|
|
160
163
|
capabilities: {
|
|
161
164
|
textDocumentSync: lsp.TextDocumentSyncKind.Incremental,
|
|
@@ -188,8 +191,9 @@ export class LspServer {
|
|
|
188
191
|
},
|
|
189
192
|
hoverProvider: true,
|
|
190
193
|
inlayHintProvider: true,
|
|
191
|
-
renameProvider: true,
|
|
194
|
+
renameProvider: prepareSupport ? { prepareProvider: true } : true,
|
|
192
195
|
referencesProvider: true,
|
|
196
|
+
selectionRangeProvider: true,
|
|
193
197
|
signatureHelpProvider: {
|
|
194
198
|
triggerCharacters: ['(', ',', '<'],
|
|
195
199
|
retriggerCharacters: [')'],
|
|
@@ -254,7 +258,7 @@ export class LspServer {
|
|
|
254
258
|
}
|
|
255
259
|
// Bundled version
|
|
256
260
|
const bundledVersion = typescriptVersionProvider.bundledVersion();
|
|
257
|
-
if (bundledVersion
|
|
261
|
+
if (bundledVersion?.isValid) {
|
|
258
262
|
return bundledVersion;
|
|
259
263
|
}
|
|
260
264
|
return null;
|
|
@@ -278,7 +282,7 @@ export class LspServer {
|
|
|
278
282
|
resolveJsonModule: true,
|
|
279
283
|
},
|
|
280
284
|
};
|
|
281
|
-
this.tspClient.executeWithoutWaitingForResponse(
|
|
285
|
+
this.tspClient.executeWithoutWaitingForResponse(CommandTypes.CompilerOptionsForInferredProjects, args);
|
|
282
286
|
}
|
|
283
287
|
didChangeConfiguration(params) {
|
|
284
288
|
this.configurationManager.setWorkspaceConfiguration(params.settings || {});
|
|
@@ -326,7 +330,7 @@ export class LspServer {
|
|
|
326
330
|
return;
|
|
327
331
|
}
|
|
328
332
|
if (this.documents.open(file, params.textDocument)) {
|
|
329
|
-
this.tspClient.notify(
|
|
333
|
+
this.tspClient.notify(CommandTypes.Open, {
|
|
330
334
|
file,
|
|
331
335
|
fileContent: params.textDocument.text,
|
|
332
336
|
scriptKindName: this.getScriptKindName(params.textDocument.languageId),
|
|
@@ -368,7 +372,7 @@ export class LspServer {
|
|
|
368
372
|
if (!document) {
|
|
369
373
|
return;
|
|
370
374
|
}
|
|
371
|
-
this.tspClient.notify(
|
|
375
|
+
this.tspClient.notify(CommandTypes.Close, { file });
|
|
372
376
|
// We won't be updating diagnostics anymore for that file, so clear them
|
|
373
377
|
// so we don't leave stale ones.
|
|
374
378
|
this.options.lspClient.publishDiagnostics({
|
|
@@ -385,8 +389,8 @@ export class LspServer {
|
|
|
385
389
|
}
|
|
386
390
|
const document = this.documents.get(file);
|
|
387
391
|
if (!document) {
|
|
388
|
-
this.logger.error(
|
|
389
|
-
throw new Error(
|
|
392
|
+
this.logger.error(`Received change on non-opened document ${textDocument.uri}`);
|
|
393
|
+
throw new Error(`Received change on non-opened document ${textDocument.uri}`);
|
|
390
394
|
}
|
|
391
395
|
if (textDocument.version === null) {
|
|
392
396
|
throw new Error(`Received document change event for ${textDocument.uri} without valid version identifier`);
|
|
@@ -409,7 +413,7 @@ export class LspServer {
|
|
|
409
413
|
endLine = endPos.line + 1;
|
|
410
414
|
endOffset = endPos.character + 1;
|
|
411
415
|
}
|
|
412
|
-
this.tspClient.notify(
|
|
416
|
+
this.tspClient.notify(CommandTypes.Change, {
|
|
413
417
|
file,
|
|
414
418
|
line,
|
|
415
419
|
offset,
|
|
@@ -426,19 +430,19 @@ export class LspServer {
|
|
|
426
430
|
}
|
|
427
431
|
async definition(params) {
|
|
428
432
|
return this.getDefinition({
|
|
429
|
-
type: this.features.definitionLinkSupport ?
|
|
433
|
+
type: this.features.definitionLinkSupport ? CommandTypes.DefinitionAndBoundSpan : CommandTypes.Definition,
|
|
430
434
|
params,
|
|
431
435
|
});
|
|
432
436
|
}
|
|
433
437
|
async implementation(params) {
|
|
434
438
|
return this.getSymbolLocations({
|
|
435
|
-
type:
|
|
439
|
+
type: CommandTypes.Implementation,
|
|
436
440
|
params,
|
|
437
441
|
});
|
|
438
442
|
}
|
|
439
443
|
async typeDefinition(params) {
|
|
440
444
|
return this.getSymbolLocations({
|
|
441
|
-
type:
|
|
445
|
+
type: CommandTypes.TypeDefinition,
|
|
442
446
|
params,
|
|
443
447
|
});
|
|
444
448
|
}
|
|
@@ -448,7 +452,7 @@ export class LspServer {
|
|
|
448
452
|
if (!file) {
|
|
449
453
|
return undefined;
|
|
450
454
|
}
|
|
451
|
-
if (type ===
|
|
455
|
+
if (type === CommandTypes.DefinitionAndBoundSpan) {
|
|
452
456
|
const args = Position.toFileLocationRequestArgs(file, params.position);
|
|
453
457
|
const response = await this.tspClient.request(type, args);
|
|
454
458
|
if (response.type !== 'response' || !response.body) {
|
|
@@ -470,7 +474,7 @@ export class LspServer {
|
|
|
470
474
|
};
|
|
471
475
|
});
|
|
472
476
|
}
|
|
473
|
-
return this.getSymbolLocations({ type:
|
|
477
|
+
return this.getSymbolLocations({ type: CommandTypes.Definition, params });
|
|
474
478
|
}
|
|
475
479
|
async getSymbolLocations({ type, params }) {
|
|
476
480
|
const file = uriToPath(params.textDocument.uri);
|
|
@@ -491,11 +495,11 @@ export class LspServer {
|
|
|
491
495
|
if (!file) {
|
|
492
496
|
return [];
|
|
493
497
|
}
|
|
494
|
-
const response = await this.tspClient.request(
|
|
498
|
+
const response = await this.tspClient.request(CommandTypes.NavTree, {
|
|
495
499
|
file,
|
|
496
500
|
});
|
|
497
501
|
const tree = response.body;
|
|
498
|
-
if (!tree
|
|
502
|
+
if (!tree?.childItems) {
|
|
499
503
|
return [];
|
|
500
504
|
}
|
|
501
505
|
if (this.supportHierarchicalDocumentSymbol) {
|
|
@@ -513,7 +517,7 @@ export class LspServer {
|
|
|
513
517
|
}
|
|
514
518
|
get supportHierarchicalDocumentSymbol() {
|
|
515
519
|
const textDocument = this.initializeParams?.capabilities.textDocument;
|
|
516
|
-
const documentSymbol = textDocument
|
|
520
|
+
const documentSymbol = textDocument?.documentSymbol;
|
|
517
521
|
return !!documentSymbol && !!documentSymbol.hierarchicalDocumentSymbolSupport;
|
|
518
522
|
}
|
|
519
523
|
/*
|
|
@@ -528,11 +532,11 @@ export class LspServer {
|
|
|
528
532
|
}
|
|
529
533
|
const document = this.documents.get(file);
|
|
530
534
|
if (!document) {
|
|
531
|
-
throw new Error(
|
|
535
|
+
throw new Error(`The document should be opened for completion, file: ${file}`);
|
|
532
536
|
}
|
|
533
537
|
const completionOptions = this.configurationManager.workspaceConfiguration.completions || {};
|
|
534
538
|
try {
|
|
535
|
-
const result = await this.interuptDiagnostics(() => this.tspClient.request(
|
|
539
|
+
const result = await this.interuptDiagnostics(() => this.tspClient.request(CommandTypes.CompletionInfo, {
|
|
536
540
|
file,
|
|
537
541
|
line: params.position.line + 1,
|
|
538
542
|
offset: params.position.character + 1,
|
|
@@ -569,13 +573,14 @@ export class LspServer {
|
|
|
569
573
|
}
|
|
570
574
|
async completionResolve(item) {
|
|
571
575
|
this.logger.log('completion/resolve', item);
|
|
576
|
+
const document = item.data?.file ? this.documents.get(item.data.file) : undefined;
|
|
572
577
|
await this.configurationManager.configureGloballyFromDocument(item.data.file);
|
|
573
|
-
const { body } = await this.interuptDiagnostics(() => this.tspClient.request(
|
|
574
|
-
const details = body
|
|
578
|
+
const { body } = await this.interuptDiagnostics(() => this.tspClient.request(CommandTypes.CompletionDetails, item.data));
|
|
579
|
+
const details = body?.length && body[0];
|
|
575
580
|
if (!details) {
|
|
576
581
|
return item;
|
|
577
582
|
}
|
|
578
|
-
return asResolvedCompletionItem(item, details, this.tspClient, this.documents, this.configurationManager.workspaceConfiguration.completions || {}, this.features);
|
|
583
|
+
return asResolvedCompletionItem(item, details, document, this.tspClient, this.documents, this.configurationManager.workspaceConfiguration.completions || {}, this.features);
|
|
579
584
|
}
|
|
580
585
|
async hover(params) {
|
|
581
586
|
const file = uriToPath(params.textDocument.uri);
|
|
@@ -584,7 +589,7 @@ export class LspServer {
|
|
|
584
589
|
return { contents: [] };
|
|
585
590
|
}
|
|
586
591
|
const result = await this.interuptDiagnostics(() => this.getQuickInfo(file, params.position));
|
|
587
|
-
if (!result
|
|
592
|
+
if (!result?.body) {
|
|
588
593
|
return { contents: [] };
|
|
589
594
|
}
|
|
590
595
|
const contents = new MarkdownString();
|
|
@@ -600,7 +605,7 @@ export class LspServer {
|
|
|
600
605
|
}
|
|
601
606
|
async getQuickInfo(file, position) {
|
|
602
607
|
try {
|
|
603
|
-
return await this.tspClient.request(
|
|
608
|
+
return await this.tspClient.request(CommandTypes.Quickinfo, {
|
|
604
609
|
file,
|
|
605
610
|
line: position.line + 1,
|
|
606
611
|
offset: position.character + 1,
|
|
@@ -610,19 +615,30 @@ export class LspServer {
|
|
|
610
615
|
return undefined;
|
|
611
616
|
}
|
|
612
617
|
}
|
|
618
|
+
async prepareRename(params) {
|
|
619
|
+
const file = uriToPath(params.textDocument.uri);
|
|
620
|
+
if (!file) {
|
|
621
|
+
return null;
|
|
622
|
+
}
|
|
623
|
+
const result = await this.tspClient.request(CommandTypes.Rename, Position.toFileLocationRequestArgs(file, params.position));
|
|
624
|
+
const renameInfo = result.body?.info;
|
|
625
|
+
if (!renameInfo) {
|
|
626
|
+
return null;
|
|
627
|
+
}
|
|
628
|
+
if (!renameInfo.canRename) {
|
|
629
|
+
throw new Error(renameInfo.localizedErrorMessage);
|
|
630
|
+
}
|
|
631
|
+
return Range.fromTextSpan(renameInfo.triggerSpan);
|
|
632
|
+
}
|
|
613
633
|
async rename(params) {
|
|
614
634
|
const file = uriToPath(params.textDocument.uri);
|
|
615
635
|
this.logger.log('onRename', params, file);
|
|
616
636
|
if (!file) {
|
|
617
|
-
return
|
|
637
|
+
return null;
|
|
618
638
|
}
|
|
619
|
-
const result = await this.tspClient.request(
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
offset: params.position.character + 1,
|
|
623
|
-
});
|
|
624
|
-
if (!result.body || !result.body.info.canRename || result.body.locs.length === 0) {
|
|
625
|
-
return undefined;
|
|
639
|
+
const result = await this.tspClient.request(CommandTypes.Rename, Position.toFileLocationRequestArgs(file, params.position));
|
|
640
|
+
if (!result.body?.info.canRename || result.body.locs.length === 0) {
|
|
641
|
+
return null;
|
|
626
642
|
}
|
|
627
643
|
const workspaceEdit = {};
|
|
628
644
|
result.body.locs
|
|
@@ -650,7 +666,7 @@ export class LspServer {
|
|
|
650
666
|
if (!file) {
|
|
651
667
|
return [];
|
|
652
668
|
}
|
|
653
|
-
const result = await this.tspClient.request(
|
|
669
|
+
const result = await this.tspClient.request(CommandTypes.References, {
|
|
654
670
|
file,
|
|
655
671
|
line: params.position.line + 1,
|
|
656
672
|
offset: params.position.character + 1,
|
|
@@ -670,7 +686,7 @@ export class LspServer {
|
|
|
670
686
|
}
|
|
671
687
|
const formatOptions = params.options;
|
|
672
688
|
await this.configurationManager.configureGloballyFromDocument(file, formatOptions);
|
|
673
|
-
const response = await this.tspClient.request(
|
|
689
|
+
const response = await this.tspClient.request(CommandTypes.Format, {
|
|
674
690
|
file,
|
|
675
691
|
line: 1,
|
|
676
692
|
offset: 1,
|
|
@@ -691,7 +707,7 @@ export class LspServer {
|
|
|
691
707
|
}
|
|
692
708
|
const formatOptions = params.options;
|
|
693
709
|
await this.configurationManager.configureGloballyFromDocument(file, formatOptions);
|
|
694
|
-
const response = await this.tspClient.request(
|
|
710
|
+
const response = await this.tspClient.request(CommandTypes.Format, {
|
|
695
711
|
file,
|
|
696
712
|
line: params.range.start.line + 1,
|
|
697
713
|
offset: params.range.start.character + 1,
|
|
@@ -704,6 +720,20 @@ export class LspServer {
|
|
|
704
720
|
}
|
|
705
721
|
return [];
|
|
706
722
|
}
|
|
723
|
+
async selectionRanges(params) {
|
|
724
|
+
const file = uriToPath(params.textDocument.uri);
|
|
725
|
+
if (!file) {
|
|
726
|
+
return null;
|
|
727
|
+
}
|
|
728
|
+
const response = await this.tspClient.request(CommandTypes.SelectionRange, {
|
|
729
|
+
file,
|
|
730
|
+
locations: params.positions.map(Position.toLocation),
|
|
731
|
+
});
|
|
732
|
+
if (response.type !== 'response' || !response.body) {
|
|
733
|
+
return null;
|
|
734
|
+
}
|
|
735
|
+
return response.body.map(toSelectionRange);
|
|
736
|
+
}
|
|
707
737
|
async signatureHelp(params) {
|
|
708
738
|
const file = uriToPath(params.textDocument.uri);
|
|
709
739
|
this.logger.log('signatureHelp', params, file);
|
|
@@ -711,7 +741,7 @@ export class LspServer {
|
|
|
711
741
|
return undefined;
|
|
712
742
|
}
|
|
713
743
|
const response = await this.interuptDiagnostics(() => this.getSignatureHelp(file, params));
|
|
714
|
-
if (!response
|
|
744
|
+
if (!response?.body) {
|
|
715
745
|
return undefined;
|
|
716
746
|
}
|
|
717
747
|
return asSignatureHelp(response.body, params.context, this.documents);
|
|
@@ -719,7 +749,7 @@ export class LspServer {
|
|
|
719
749
|
async getSignatureHelp(file, params) {
|
|
720
750
|
try {
|
|
721
751
|
const { position, context } = params;
|
|
722
|
-
return await this.tspClient.request(
|
|
752
|
+
return await this.tspClient.request(CommandTypes.SignatureHelp, {
|
|
723
753
|
file,
|
|
724
754
|
line: position.line + 1,
|
|
725
755
|
offset: position.character + 1,
|
|
@@ -778,7 +808,7 @@ export class LspServer {
|
|
|
778
808
|
errorCodes,
|
|
779
809
|
};
|
|
780
810
|
try {
|
|
781
|
-
return await this.tspClient.request(
|
|
811
|
+
return await this.tspClient.request(CommandTypes.GetCodeFixes, args);
|
|
782
812
|
}
|
|
783
813
|
catch (err) {
|
|
784
814
|
return undefined;
|
|
@@ -791,7 +821,7 @@ export class LspServer {
|
|
|
791
821
|
kind: context.only?.length === 1 ? context.only[0] : undefined,
|
|
792
822
|
};
|
|
793
823
|
try {
|
|
794
|
-
return await this.tspClient.request(
|
|
824
|
+
return await this.tspClient.request(CommandTypes.GetApplicableRefactors, args);
|
|
795
825
|
}
|
|
796
826
|
catch (err) {
|
|
797
827
|
return undefined;
|
|
@@ -800,7 +830,7 @@ export class LspServer {
|
|
|
800
830
|
async getOrganizeImports(args) {
|
|
801
831
|
try {
|
|
802
832
|
await this.configurationManager.configureGloballyFromDocument(args.scope.args.file);
|
|
803
|
-
return await this.tspClient.request(
|
|
833
|
+
return await this.tspClient.request(CommandTypes.OrganizeImports, args);
|
|
804
834
|
}
|
|
805
835
|
catch (err) {
|
|
806
836
|
return undefined;
|
|
@@ -817,16 +847,16 @@ export class LspServer {
|
|
|
817
847
|
if (!await this.applyFileCodeEdits(codeAction.changes)) {
|
|
818
848
|
return;
|
|
819
849
|
}
|
|
820
|
-
if (codeAction.commands
|
|
850
|
+
if (codeAction.commands?.length) {
|
|
821
851
|
for (const command of codeAction.commands) {
|
|
822
|
-
await this.tspClient.request(
|
|
852
|
+
await this.tspClient.request(CommandTypes.ApplyCodeActionCommand, { command });
|
|
823
853
|
}
|
|
824
854
|
}
|
|
825
855
|
}
|
|
826
856
|
else if (arg.command === Commands.APPLY_REFACTORING && arg.arguments) {
|
|
827
857
|
const args = arg.arguments[0];
|
|
828
|
-
const { body } = await this.tspClient.request(
|
|
829
|
-
if (!body
|
|
858
|
+
const { body } = await this.tspClient.request(CommandTypes.GetEditsForRefactor, args);
|
|
859
|
+
if (!body?.edits.length) {
|
|
830
860
|
return;
|
|
831
861
|
}
|
|
832
862
|
for (const edit of body.edits) {
|
|
@@ -848,7 +878,7 @@ export class LspServer {
|
|
|
848
878
|
else if (arg.command === Commands.CONFIGURE_PLUGIN && arg.arguments) {
|
|
849
879
|
const [pluginName, configuration] = arg.arguments;
|
|
850
880
|
if (this.tspClient?.apiVersion.gte(API.v314)) {
|
|
851
|
-
this.tspClient.executeWithoutWaitingForResponse(
|
|
881
|
+
this.tspClient.executeWithoutWaitingForResponse(CommandTypes.ConfigurePlugin, {
|
|
852
882
|
configuration,
|
|
853
883
|
pluginName,
|
|
854
884
|
});
|
|
@@ -858,7 +888,7 @@ export class LspServer {
|
|
|
858
888
|
const file = arg.arguments[0];
|
|
859
889
|
const additionalArguments = arg.arguments[1] || {};
|
|
860
890
|
await this.configurationManager.configureGloballyFromDocument(file);
|
|
861
|
-
const { body } = await this.tspClient.request(
|
|
891
|
+
const { body } = await this.tspClient.request(CommandTypes.OrganizeImports, {
|
|
862
892
|
scope: {
|
|
863
893
|
type: 'file',
|
|
864
894
|
args: { file },
|
|
@@ -875,9 +905,9 @@ export class LspServer {
|
|
|
875
905
|
const [_, codeActions] = arg.arguments;
|
|
876
906
|
for (const codeAction of codeActions) {
|
|
877
907
|
await this.applyFileCodeEdits(codeAction.changes);
|
|
878
|
-
if (codeAction.commands
|
|
908
|
+
if (codeAction.commands?.length) {
|
|
879
909
|
for (const command of codeAction.commands) {
|
|
880
|
-
await this.tspClient.request(
|
|
910
|
+
await this.tspClient.request(CommandTypes.ApplyCodeActionCommand, { command });
|
|
881
911
|
}
|
|
882
912
|
}
|
|
883
913
|
// Execute only the first code action.
|
|
@@ -917,7 +947,7 @@ export class LspServer {
|
|
|
917
947
|
return [];
|
|
918
948
|
}
|
|
919
949
|
try {
|
|
920
|
-
const { body } = await this.tspClient.request(
|
|
950
|
+
const { body } = await this.tspClient.request(CommandTypes.GetEditsForFileRename, {
|
|
921
951
|
oldFilePath,
|
|
922
952
|
newFilePath,
|
|
923
953
|
});
|
|
@@ -935,7 +965,7 @@ export class LspServer {
|
|
|
935
965
|
}
|
|
936
966
|
let response;
|
|
937
967
|
try {
|
|
938
|
-
response = await this.tspClient.request(
|
|
968
|
+
response = await this.tspClient.request(CommandTypes.DocumentHighlights, {
|
|
939
969
|
file,
|
|
940
970
|
line: arg.position.line + 1,
|
|
941
971
|
offset: arg.position.character + 1,
|
|
@@ -963,7 +993,7 @@ export class LspServer {
|
|
|
963
993
|
return this.documents.files[0] || this.workspaceRoot;
|
|
964
994
|
}
|
|
965
995
|
async workspaceSymbol(params) {
|
|
966
|
-
const result = await this.tspClient.request(
|
|
996
|
+
const result = await this.tspClient.request(CommandTypes.Navto, {
|
|
967
997
|
file: this.lastFileOrDummy(),
|
|
968
998
|
searchValue: params.query,
|
|
969
999
|
});
|
|
@@ -995,9 +1025,9 @@ export class LspServer {
|
|
|
995
1025
|
}
|
|
996
1026
|
const document = this.documents.get(file);
|
|
997
1027
|
if (!document) {
|
|
998
|
-
throw new Error(
|
|
1028
|
+
throw new Error(`The document should be opened for foldingRanges', file: ${file}`);
|
|
999
1029
|
}
|
|
1000
|
-
const { body } = await this.tspClient.request(
|
|
1030
|
+
const { body } = await this.tspClient.request(CommandTypes.GetOutliningSpans, { file });
|
|
1001
1031
|
if (!body) {
|
|
1002
1032
|
return undefined;
|
|
1003
1033
|
}
|
|
@@ -1086,7 +1116,7 @@ export class LspServer {
|
|
|
1086
1116
|
character: 0,
|
|
1087
1117
|
});
|
|
1088
1118
|
try {
|
|
1089
|
-
const result = await this.tspClient.request(
|
|
1119
|
+
const result = await this.tspClient.request(CommandTypes.ProvideInlayHints, {
|
|
1090
1120
|
file,
|
|
1091
1121
|
start: start,
|
|
1092
1122
|
length: end - start,
|
|
@@ -1143,7 +1173,7 @@ export class LspServer {
|
|
|
1143
1173
|
}
|
|
1144
1174
|
async getSemanticTokens(doc, file, startOffset, endOffset) {
|
|
1145
1175
|
try {
|
|
1146
|
-
const result = await this.tspClient.request(
|
|
1176
|
+
const result = await this.tspClient.request(CommandTypes.EncodedSemanticClassificationsFull, {
|
|
1147
1177
|
file,
|
|
1148
1178
|
start: startOffset,
|
|
1149
1179
|
length: endOffset - startOffset,
|
package/lib/lsp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-server.js","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lsp-server.js","sourceRoot":"","sources":["../src/lsp-server.ts"],"names":[],"mappings":"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"}
|