1

我想从 Visual Studio 代码启动用户操作。它将读取当前打开的文本文档,通过某种 UI 操作(自定义按钮,或者如果可能的话通过 CodeAction)提取一段代码,使用语言服务器协议将其发送到服务器,完成一些工作并返回一些输出回客户端。

我已阅读 CodeAction 的语言服务器协议规范,但它通常仅用于快速修复和重构,我可以将它用于任何其他自定义操作吗?如果是这样,怎么做?

4

1 回答 1

0

代码操作在执行时可以调用任意客户端命令:

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 以外的客户端的兼容性大大降低。您确定为此需要客户端逻辑吗?

于 2019-08-14T16:06:12.183 回答