Visual Studio语言扩展,如何调用自己的函数?

时间:2018-08-12 06:34:30

标签: visual-studio-code vscode-extensions

我已经实现了自己的语言服务器(基于Visual Studio示例扩展git树中的lsp-sample)。它执行基本语言解析..etc。

我想在扩展程序的客户端中提供一些简单的功能,这些功能需要访问扩展程序的服务器部分中已解析的数据。

如何将自己的呼叫添加到客户端/服务器,以便可以向服务器询问内容?

我希望从客户端向服务器端发送命令/调用,并获得答案。

我环顾四周,有一个LanguageClient.registerFeature()是答案的一部分吗?

任何帮助将不胜感激。尤其是带有示例代码。

cdturner

1 个答案:

答案 0 :(得分:0)

您可以为此使用通用的setState / sendRequest()和自定义方法名称。一个基于lsp-sample的简单示例如下所示:

(在onRequest()的{​​{1}}中)

activate()

(在client/src/extension.ts的{​​{1}}回调中)

client.onReady().then(() => {
    client.sendRequest("custom/data", "foo").then(data => console.log(data));
});

进行了这些更改后,可以在开发控制台中看到以下输出:


相反的通信看起来非常相似-有关将自定义通知从服务器发送到客户端的示例,请参见here