Visual Studio Code 中的多个格式化程序

Posted

技术标签:

【中文标题】Visual Studio Code 中的多个格式化程序【英文标题】:Multiple formatters in Visual Studio Code 【发布时间】:2018-08-31 21:21:53 【问题描述】:

在我的团队中,有些人使用 VS Code,有些人使用 WebStorm。为了对齐代码格式,我为 VS Code 编写了一个扩展,添加了一些缺失的规则。

我的计划是与 VS Code 附带的本机格式化程序一起运行我的扩展程序。我使用 API 提供我的编辑:

vscode.languages.registerDocumentFormattingEditProvider('typescript', 
    provideDocumentFormattingEdits(document: vscode.TextDocument) 
        const textEdit: vscode.TextEdit[];
        return textEdit;
    

但似乎我无法在本机格式化程序上运行它,我必须选择其中一个。是否可以同时使用上述 API 运行?

【问题讨论】:

这里是一些关于相同语言格式器矛盾的官方信息:code.visualstudio.com/blogs/2016/11/15/… 似乎没有办法将自定义格式化程序与本机格式化程序一起使用。这里有更多信息:github.com/Microsoft/vscode/issues/11609 【参考方案1】:

我找到了一种在 VSCode 中运行多个格式化程序的方法。只需在另一个扩展中运行一个扩展的格式化命令。

在我自己的extension.ts中:

const firstFormatter = commands.executeCommand('editor.action.formatDocument');

firstFormatter.then(() => myFormat());

像这样,任何自定义扩展都可以使用多个格式化程序顺序格式化文档。

【讨论】:

您能否提供指向您的扩展源代码的链接?

以上是关于Visual Studio Code 中的多个格式化程序的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code 中的 Groovy 格式化程序/美化器 [关闭]

带你掌握Visual Studio Code的格式化程序

如何在 Visual Studio Code 中格式化 PHP 文件中的 HTML [重复]

带你掌握Visual Studio Code的格式化程序

Visual Studio Code 格式化ESlint 的方法

如何在 Windows 上的 Visual Studio Code 中格式化代码