我想从Visual Studio代码启动用户操作。它将读取当前打开的文本文档,通过某种UI操作(自定义按钮,或者如果可能,通过CodeAction)提取一段代码,使用Language Server Protocol将其发送到服务器,执行一些工作并返回一些输出回到客户。
我已经阅读了CodeAction的语言服务器协议规范,但通常仅用于快速修复和重构,我可以将其用于任何其他自定义操作吗?如果可以,怎么办?
答案 0 :(得分:0)
Code actions可以在执行时调用任意客户端命令:
export interface CodeAction {
[...]
/**
* A command this code action executes. If a code action
* provides an edit and a command, first the edit is
* executed and then the command.
*/
command?: Command;
}
您可以使用vscode.commands
名称空间注册新命令。
[...]使用语言服务器协议将其发送到服务器,进行一些工作并将一些输出返回给客户端
对于这一部分,您可以使用自定义方法在语言服务器和VSCode扩展之间来回发送数据:
这两者当然会使您的语言服务器与VSCode以外的客户端的兼容性大大降低。您确定为此需要客户端逻辑吗?