Является ли расширение vscode-python для VSCode языковой службой или только расширением? - PullRequest
0 голосов
/ 04 июля 2018

Я хочу написать расширение для VSCode, которое повторно использует функцию рефакторинга / переименования расширения vscode-python . Так что, когда пользователь выполнит мою команду, мое расширение будет переименовывать переменную из файла .py. Я не знаю, является ли vscode-python только расширением или он реализует LSP Language Server Protocol. И как я называю функцию переименования / рефакторинга vscode-python. Можете ли вы дать мне несколько советов? Большое спасибо!

1 Ответ

0 голосов
/ 04 июля 2018

Похоже, что расширение Python реализует API VSCode напрямую для таких функций, как переименование, вместо использования уровня абстракции 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)]
)
...