diff --git a/extensions/typescript-language-features/src/extension.browser.ts b/extensions/typescript-language-features/src/extension.browser.ts index 58cfe515f81..8c44b2d9575 100644 --- a/extensions/typescript-language-features/src/extension.browser.ts +++ b/extensions/typescript-language-features/src/extension.browser.ts @@ -11,7 +11,7 @@ import { LanguageConfigurationManager } from './features/languageConfiguration'; import { createLazyClientHost, lazilyActivateClient } from './lazyClientHost'; import { CommandManager } from './utils/commandManager'; import { PluginManager } from './utils/plugins'; -import { noopRequestCanceller } from './tsServer/cancellation'; +import { noopRequestCancellerFactory } from './tsServer/cancellation'; export function activate( context: vscode.ExtensionContext @@ -25,10 +25,7 @@ export function activate( const onCompletionAccepted = new vscode.EventEmitter(); context.subscriptions.push(onCompletionAccepted); - const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, noopLogDirectoryProvider, { - create: () => noopRequestCanceller - - }, item => { + const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, noopLogDirectoryProvider, noopRequestCancellerFactory, item => { onCompletionAccepted.fire(item); }); diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts index 2bbba69705d..85b79d3202c 100644 --- a/extensions/typescript-language-features/src/extension.ts +++ b/extensions/typescript-language-features/src/extension.ts @@ -11,7 +11,7 @@ import { registerCommands } from './commands/index'; import { LanguageConfigurationManager } from './features/languageConfiguration'; import * as task from './features/task'; import { createLazyClientHost, lazilyActivateClient } from './lazyClientHost'; -import { NodeRequestCanceller } from './tsServer/cancellation.electron'; +import { nodeRequestCancellerFactory } from './tsServer/cancellation.electron'; import { CommandManager } from './utils/commandManager'; import * as electron from './utils/electron'; import { PluginManager } from './utils/plugins'; @@ -30,9 +30,7 @@ export function activate( const logDirectoryProvider = new NodeLogDirectoryProvider(context); - const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, logDirectoryProvider, { - create: (kind, tracer) => new NodeRequestCanceller(kind, tracer) - }, item => { + const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, logDirectoryProvider, nodeRequestCancellerFactory, item => { onCompletionAccepted.fire(item); }); diff --git a/extensions/typescript-language-features/src/tsServer/cancellation.electron.ts b/extensions/typescript-language-features/src/tsServer/cancellation.electron.ts index 715729ba82f..e098889b450 100644 --- a/extensions/typescript-language-features/src/tsServer/cancellation.electron.ts +++ b/extensions/typescript-language-features/src/tsServer/cancellation.electron.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as fs from 'fs'; -import { OngoingRequestCanceller } from './cancellation'; +import { OngoingRequestCanceller, OngoingRequestCancellerFactory } from './cancellation'; import { getTempFile } from '../utils/electron'; import Tracer from '../utils/tracer'; @@ -31,3 +31,10 @@ export class NodeRequestCanceller implements OngoingRequestCanceller { return true; } } + + +export const nodeRequestCancellerFactory = new class implements OngoingRequestCancellerFactory { + create(serverId: string, tracer: Tracer): OngoingRequestCanceller { + return new NodeRequestCanceller(serverId, tracer); + } +}; diff --git a/extensions/typescript-language-features/src/tsServer/cancellation.ts b/extensions/typescript-language-features/src/tsServer/cancellation.ts index 031a0976bbb..0eda4e574dc 100644 --- a/extensions/typescript-language-features/src/tsServer/cancellation.ts +++ b/extensions/typescript-language-features/src/tsServer/cancellation.ts @@ -14,10 +14,16 @@ export interface OngoingRequestCancellerFactory { create(serverId: string, tracer: Tracer): OngoingRequestCanceller; } -export const noopRequestCanceller = new class implements OngoingRequestCanceller { +const noopRequestCanceller = new class implements OngoingRequestCanceller { public readonly cancellationPipeName = undefined; public tryCancelOngoingRequest(_seq: number): boolean { return false; } }; + +export const noopRequestCancellerFactory = new class implements OngoingRequestCancellerFactory { + create(_serverId: string, _tracer: Tracer): OngoingRequestCanceller { + return noopRequestCanceller; + } +};