From 575e1630d556bd6272724d4d20662c8f6ff745e8 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 19 Nov 2018 14:59:19 -0800 Subject: [PATCH] Add API so that extensions can configure TS Server plugins Fixes #63181 This is a replacement for the `_typescript.configurePlugin` command. Using a command, it is easy to forget to check if the js-ts extension is active before executing it. Using an actual api prevents this and also allows better typing --- .../typescript-language-features/src/api.ts | 19 +++++++++++++------ .../src/extension.ts | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/extensions/typescript-language-features/src/api.ts b/extensions/typescript-language-features/src/api.ts index 468f0f22a30..6afc92166ae 100644 --- a/extensions/typescript-language-features/src/api.ts +++ b/extensions/typescript-language-features/src/api.ts @@ -4,9 +4,17 @@ *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; +import { PluginManager } from './utils/plugins'; -interface ApiV0 { - readonly onCompletionAccepted: vscode.Event; +class ApiV0 { + public constructor( + public readonly onCompletionAccepted: vscode.Event, + private readonly _pluginManager: PluginManager, + ) { } + + configurePlugin(pluginId: string, configuration: {}): void { + this._pluginManager.setConfiguration(pluginId, configuration); + } } export interface Api { @@ -14,14 +22,13 @@ export interface Api { } export function getExtensionApi( - onCompletionAccepted: vscode.Event + onCompletionAccepted: vscode.Event, + pluginManager: PluginManager, ): Api { return { getAPI(version) { if (version === 0) { - return { - onCompletionAccepted: onCompletionAccepted - } as ApiV0; + return new ApiV0(onCompletionAccepted, pluginManager); } return undefined; } diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts index 81ef85b97c9..5df59d14f02 100644 --- a/extensions/typescript-language-features/src/extension.ts +++ b/extensions/typescript-language-features/src/extension.ts @@ -69,7 +69,7 @@ export function activate( } } - return getExtensionApi(onCompletionAccepted.event); + return getExtensionApi(onCompletionAccepted.event, pluginManager); } function createLazyClientHost( -- GitLab