diff --git a/extensions/typescript/src/features/baseCodeLensProvider.ts b/extensions/typescript/src/features/baseCodeLensProvider.ts index 986cb09b8d08cffb4a6eda75c48b9abd5faf816c..dbfd54eb391c39b1fd3ac4e62f5098c663475c67 100644 --- a/extensions/typescript/src/features/baseCodeLensProvider.ts +++ b/extensions/typescript/src/features/baseCodeLensProvider.ts @@ -5,7 +5,7 @@ 'use strict'; -import { CodeLensProvider, CodeLens, CancellationToken, TextDocument, Range, Uri, Position, Event, EventEmitter, workspace, } from 'vscode'; +import { CodeLensProvider, CodeLens, CancellationToken, TextDocument, Range, Uri, Position, Event, EventEmitter, workspace, ProviderResult, } from 'vscode'; import * as Proto from '../protocol'; import { ITypescriptServiceClient } from '../typescriptService'; @@ -42,14 +42,14 @@ export abstract class TypeScriptBaseCodeLensProvider implements CodeLensProvider } } - provideCodeLenses(document: TextDocument, token: CancellationToken): Promise { + provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult { if (!this.enabled) { - return Promise.resolve([]); + return []; } const filepath = this.client.normalizePath(document.uri); if (!filepath) { - return Promise.resolve([]); + return []; } return this.client.execute('navtree', { file: filepath }, token).then(response => { if (!response) { @@ -61,6 +61,9 @@ export abstract class TypeScriptBaseCodeLensProvider implements CodeLensProvider tree.childItems.forEach(item => this.walkNavTree(document, item, null, referenceableSpans)); } return referenceableSpans.map(span => new ReferencesCodeLens(document.uri, filepath, span)); + }, (err: any) => { + this.client.error(`'navtree' request failed with error.`, err); + return []; }); } diff --git a/extensions/typescript/src/features/implementationsCodeLensProvider.ts b/extensions/typescript/src/features/implementationsCodeLensProvider.ts index ad083c2cbe41797c38844f53915a2e398891f0ae..11f9e99da7cec535127824e78c9630456a0c1b9a 100644 --- a/extensions/typescript/src/features/implementationsCodeLensProvider.ts +++ b/extensions/typescript/src/features/implementationsCodeLensProvider.ts @@ -5,7 +5,7 @@ 'use strict'; -import { CodeLens, CancellationToken, TextDocument, Range, Location } from 'vscode'; +import { CodeLens, CancellationToken, TextDocument, Range, Location, ProviderResult } from 'vscode'; import * as Proto from '../protocol'; import * as PConst from '../protocol.const'; @@ -22,9 +22,9 @@ export default class TypeScriptImplementationsCodeLensProvider extends TypeScrip super(client, 'implementationsCodeLens.enabled'); } - provideCodeLenses(document: TextDocument, token: CancellationToken): Promise { + provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult { if (!this.client.apiVersion.has220Features()) { - return Promise.resolve([]); + return []; } return super.provideCodeLenses(document, token); } diff --git a/extensions/typescript/src/features/referencesCodeLensProvider.ts b/extensions/typescript/src/features/referencesCodeLensProvider.ts index b5d249d6d45cadc350470dfba37b269aa91d5be7..ffd29559e1c286fef90498d8243acbc6d3099f8d 100644 --- a/extensions/typescript/src/features/referencesCodeLensProvider.ts +++ b/extensions/typescript/src/features/referencesCodeLensProvider.ts @@ -5,7 +5,7 @@ 'use strict'; -import { CodeLens, CancellationToken, TextDocument, Range, Location } from 'vscode'; +import { CodeLens, CancellationToken, TextDocument, Range, Location, ProviderResult } from 'vscode'; import * as Proto from '../protocol'; import * as PConst from '../protocol.const'; @@ -22,9 +22,9 @@ export default class TypeScriptReferencesCodeLensProvider extends TypeScriptBase super(client, 'referencesCodeLens.enabled'); } - provideCodeLenses(document: TextDocument, token: CancellationToken): Promise { + provideCodeLenses(document: TextDocument, token: CancellationToken): ProviderResult { if (!this.client.apiVersion.has206Features()) { - return Promise.resolve([]); + return []; } return super.provideCodeLenses(document, token); } diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index f6292a584ca2fb5b7335ac12699b192a0a4d4a7d..68320e063843318d5a0f6ace8a9900abcf66eb5e 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -917,7 +917,8 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient return Uri.file(filepath); } - public execute(command: string, args: any, expectsResultOrToken?: boolean | CancellationToken, token?: CancellationToken): Promise { + public execute(command: string, args: any, expectsResultOrToken?: boolean | CancellationToken): Promise { + let token: CancellationToken | undefined = undefined; let expectsResult = true; if (typeof expectsResultOrToken === 'boolean') { expectsResult = expectsResultOrToken; @@ -925,13 +926,13 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient token = expectsResultOrToken; } - let request: Proto.Request = { + const request: Proto.Request = { seq: this.sequenceNumber++, type: 'request', command: command, arguments: args }; - let requestInfo: RequestItem = { + const requestInfo: RequestItem = { request: request, promise: null, callbacks: null