Я пытаюсь написать простое расширение для кода VS, которое переименовывает выделение в данную строку. Приложение было загружено с генератором расширений: https://code.visualstudio.com/docs/extensions/example-hello-world#_generate-a-new-extension
Для этого я использую этот код:
const editor = vscode.window.activeTextEditor;
if (!editor) throw Error;
const position = editor.selection.active
const uri = editor.document.uri
vscode.commands.executeCommand("vscode.executeDocumentRenameProvider", uri, position, "donkey")
.then(edit => {
if (!edit) throw Error;
return vscode.workspace.applyEdit(edit);
});
Команда привязана к связыванию клавиш. Я запускаю отладчик с помощью F5 (запуск экземпляра vs-кода для отладки, как в учебнике: https://code.visualstudio.com/docs/extensions/example-hello-world#_debugging-your-extension). Затем я выбираю группу кода в файле, который я открыл в этом экземпляре отладки, и нажимаю свою привязку клавиш.
Однако в консоли отладки я получаю «отклоненное обещание, не обработанное в течение 1 секунды». Никакой ошибки не выдается, и так как executeCommand - это переменное типа Thenable, а не настоящее обещание, я не могу вызвать catch () для него.
Я пытался обернуть вызов в блок try / catch, но безуспешно.
Когда я пытаюсь сделать что-то другое, например, показать сообщение с помощью vscode.window.showInformationMessage или запросить ввод у пользователя, оно работает, и я не вижу ошибки.
Я также пытался сделать то же самое с версией расширения Typescript, но у меня такое же поведение.
Я не вижу, что я делаю неправильно, я что-то упускаю?