typescript vscode LSP扩展,如何让自定义操作出现在下拉菜单中?

bnl4lu3b  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(148)

我正在编写一个LSP服务器和vscode客户端,并且有一个服务器端CodeAction,我希望用户能够在光标位于文本文件中的任何时候调用它。
我知道如何在服务器端定义自定义代码操作,但我不知道如何在客户端公开它们。
例如,假设我想要一个动作“CrAzYcAsE at point”,我希望当用户右键单击文件中的任何地方时,该动作作为选项显示在菜单中(如果他们愿意,我希望他们能够将其绑定到一个键组合,甚至可能有一个默认值)。
在许多方面,这与Is there a way to execute a custom action through the CodeAction request?相反
我怀疑答案可能是按照www.example.com定义一个自定义命令https://code.visualstudio.com/api/references/vscode-api#commands,但它没有给予调用LSP的CodeAction端点的命令的任何示例。
注意,我不能将其实现为CodeAction的“quickfix”,因为只有用户知道何时调用该操作,注册quickfix意味着黄色问号将显示在所有行上,这将使用户非常分心。

dbf7pr2w

dbf7pr2w1#

您是否尝试允许用户从Contect菜单中触发特定“codeActionKind”的“codeActionRequest”?
我知道你可以通过“package.json”的contributes部分添加上下文菜单项。目前我能想到的唯一方法是在客户端注册一个自定义命令,该命令将使用特定参数触发调用内置代码操作特性。
如果你已经找到了一种方法,我很想知道一种更好的方法,它不需要客户端在 typescript 中实现。

相关问题