提交 575e1630 编写于 作者: M Matt Bierner

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
上级 848010a7
...@@ -4,9 +4,17 @@ ...@@ -4,9 +4,17 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import { PluginManager } from './utils/plugins';
interface ApiV0 { class ApiV0 {
readonly onCompletionAccepted: vscode.Event<vscode.CompletionItem & { metadata?: any }>; public constructor(
public readonly onCompletionAccepted: vscode.Event<vscode.CompletionItem & { metadata?: any }>,
private readonly _pluginManager: PluginManager,
) { }
configurePlugin(pluginId: string, configuration: {}): void {
this._pluginManager.setConfiguration(pluginId, configuration);
}
} }
export interface Api { export interface Api {
...@@ -14,14 +22,13 @@ export interface Api { ...@@ -14,14 +22,13 @@ export interface Api {
} }
export function getExtensionApi( export function getExtensionApi(
onCompletionAccepted: vscode.Event<vscode.CompletionItem> onCompletionAccepted: vscode.Event<vscode.CompletionItem>,
pluginManager: PluginManager,
): Api { ): Api {
return { return {
getAPI(version) { getAPI(version) {
if (version === 0) { if (version === 0) {
return { return new ApiV0(onCompletionAccepted, pluginManager);
onCompletionAccepted: onCompletionAccepted
} as ApiV0;
} }
return undefined; return undefined;
} }
......
...@@ -69,7 +69,7 @@ export function activate( ...@@ -69,7 +69,7 @@ export function activate(
} }
} }
return getExtensionApi(onCompletionAccepted.event); return getExtensionApi(onCompletionAccepted.event, pluginManager);
} }
function createLazyClientHost( function createLazyClientHost(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册