2

我想为 VSCode 编写一个扩展,以重用vscode-python扩展的重构/重命名功能。这样,当用户执行我的命令时,我的扩展程序将对 .py 文件的变量进行重命名。我不知道vscode-python它只是一个扩展还是它正在实现语言服务器协议 LSP。以及我如何调用vscode-python. 你能给我一些提示吗?非常感谢你!

4

1 回答 1

1

看来 Python 扩展是直接为重命名等功能实现 VSCode API,而不是使用 LSP 抽象层。参见它的例子renameProvider.ts,它实现了vscode.RenameProvider

https://github.com/Microsoft/vscode-python/blob/c976b6c98e34e041b7ee826ec22f9820ba90f8ac/src/client/providers/renameProvider.ts

我不认为它的实现方式对作为调用者的你来说真的很重要 - 看起来你很幸运,最近才添加了以编程方式触发重命名的功能,并将作为 VSCode 1.25.0 的一部分很快发布/六月发布:

以编程方式开始重命名的 API (#50856)

它也是即将发布的版本的发行说明的一部分,其中给出了以下使用示例:

vscode.commands.executeCommand(
  'editor.action.rename',
  [vscode.Uri.file('/my/file.abc'), new vscode.Position(14, 7)]
)
于 2018-07-04T08:03:24.333 回答