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