我想实现第二个代码格式化。此格式化应该可以通过其他命令执行。
我已经注册了DocumentFormattingEditProvider
,这很好。
vscode.languages.registerDocumentFormattingEditProvider({ language: 'sosse' }, {
provideDocumentFormattingEdits(document: vscode.TextDocument) {
return formattingAction(document);
},
});
但在我的情况下,我需要对单行进行第二次格式化操作,该操作由命令执行。 我考虑过使用:
vscode.commands.registerCommand(command, callback)
但我不知道如何访问和更改文档。
答案 0 :(得分:1)
但我不知道如何访问和更改文档。
我认为registerCommand()
的特殊变体正是您所寻找的:registerTextEditorCommand()
。来自API docs:
文本编辑器命令与普通命令不同,因为它们仅在调用命令时存在活动编辑器时执行。此外,编辑器命令的命令处理程序可以访问活动编辑器和编辑构建器。
这意味着callback
会传递TextEditor
的实例以及TextEditorEdit
。