在开发新的VSCODE扩展时,如何生成语言服务器协议要求并处理响应?

时间:2018-08-01 15:49:40

标签: visual-studio-code ide vscode-extensions language-server-protocol

使用Microsoft提供的LSP时,客户端如何生成所需的json数据并将其发送到服务器?然后如何处理服务器响应的json数据?

我已经阅读了官方文档,但没有找到方法。我要做的就是获取函数定义文本字符串,而不仅仅是在“悬停”中显示它。 enter image description here

1 个答案:

答案 0 :(得分:0)

VSCode将信息发送给您的已实现服务器。例如,initialize request会在客户端启动插件后立即发送到服务器。

然后,服务器将必须构建逻辑以处理客户端发送的JSON有效负载,并返回符合LSP specifications的特定响应。我建议您打开VSCode中的跟踪功能,以查看客户端和服务器正在发送/接收的消息。对于lsp-sample,您可以设置以下设置:"languageServerExample.trace.server": "verbose"中的package.json以启用跟踪。

关于您对函数定义文本字符串的问题,我假设您以某种方式希望在客户端代码中使用它(?),如果是这种情况,则必须在悬停处理程序中提取函数定义字符串,因为这就是服务器发送信息的方式。