如何配置多个格式化程序在VSCode中保存时按顺序运行? [英] How can I configure multiple formatters to run in a sequence on save in VSCode?
本文介绍了如何配置多个格式化程序在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
格式,不包括formatOnPaste
或formatOnType
。
这篇关于如何配置多个格式化程序在VSCode中保存时按顺序运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文