使用VS-Code-Extension

时间:2018-04-18 16:27:38

标签: formatting visual-studio-code vscode-extensions

我想实现第二个代码格式化。此格式化应该可以通过其他命令执行。

我已经注册了DocumentFormattingEditProvider,这很好。

vscode.languages.registerDocumentFormattingEditProvider({ language: 'sosse' }, {
    provideDocumentFormattingEdits(document: vscode.TextDocument) {
        return formattingAction(document);
    },
});

但在我的情况下,我需要对单行进行第二次格式化操作,该操作由命令执行。 我考虑过使用:

vscode.commands.registerCommand(command, callback)

但我不知道如何访问和更改文档。

1 个答案:

答案 0 :(得分:1)

  

但我不知道如何访问和更改文档。

我认为registerCommand()的特殊变体正是您所寻找的:registerTextEditorCommand()。来自API docs

  

文本编辑器命令与普通命令不同,因为它们仅在调用命令时存在活动编辑器时执行。此外,编辑器命令的命令处理程序可以访问活动编辑器和编辑构建器。

这意味着callback会传递TextEditor的实例以及TextEditorEdit