如何配置多个格式化程序在VSCode中保存时按顺序运行? [英] How can I configure multiple formatters to run in a sequence on save in VSCode?

查看:72
本文介绍了如何配置多个格式化程序在VSCode中保存时按顺序运行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个Haskell项目,该项目的格式必须同时由

  • stylish-haskell(用于导入重新排序)
  • brittany(用于常规格式)

我可以为一种语言设置单个默认格式化程序:

"[haskell]": {
    "editor.defaultFormatter": "MaxGabriel.brittany"
}

或者我可以使用editor.action.formatDocument.multiple("在命令调色板中使用...格式化文档")从列表中选择一个。

但我需要在保存时一个接一个地运行这两个命令。到目前为止,我只能在保存时运行单个默认格式化程序。在这种情况下,顺序并不重要,但在更一般的情况下可以。

我尝试将editor.defaultFormatter设置为格式化程序列表(这不起作用,正如预期的那样),并构建了一个使用各种参数调用editor.action.formatDocument.multiple的本地扩展,这只会调出可用格式化程序的下拉列表以供选择。

如何在保存时按顺序运行两个格式化程序?

推荐答案

我不认为这真的是官方支持的用例,但您可以通过让扩展执行以下操作来解决它:

  • 为Haskell禁用"editor.formatOnSave"
  • vscode.workspace.onDidSaveTextDocument注册回调,其中您:
    • 使用WorkspaceConfiguration接口将"editor.defaultFormatter"设置为第一个格式化程序
    • 调用"editor.action.formatDocument"
    • "editor.defaultFormatter"设置为第二个格式化程序
    • 再次呼叫"editor.action.formatDocument"

当然,这只包括formatOnSave格式,不包括formatOnPasteformatOnType

这篇关于如何配置多个格式化程序在VSCode中保存时按顺序运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆