我正在编写一个应该连接到 tsserver 的 vscode 扩展,以便为 typescript/javascript 提供语言支持。
这是我的做法(在 extension.ts 中,在 activate 中):
const serverModule = path.resolve(
__dirname,
"..",
"node_modules",
"typescript",
"lib",
"tsserver.js"
);
const debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] };
const serverOptions: ServerOptions = {
run: { module: serverModule, transport: TransportKind.ipc },
debug: {
module: serverModule,
transport: TransportKind.ipc,
options: debugOptions,
},
};
const clientOptions = {
documentSelector: [
{
scheme: "file",
language: "typescript",
},
],
};
client = new LanguageClient(
"server-id",
"server-name",
serverOptions,
clientOptions
);
context.subscriptions.push(client.start());
但是当我调用 client.onReady().then(() => client.sendRequest(...)); 请求未发送。我几乎可以肯定问题是初始化阶段不成功,所以 onReady() 方法阻止了我。我如何让它工作?