Export RequestCancellerFactory implementations as constants

This commit is contained in:
Matt Bierner 2020-07-20 10:00:51 -07:00
parent 538ff07c71
commit 8bf2ae16a0
4 changed files with 19 additions and 11 deletions

View file

@ -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<vscode.CompletionItem>();
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);
});

View file

@ -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);
});

View file

@ -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);
}
};

View file

@ -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;
}
};