如何从命令行使用 VS Code 的格式化程序?

问题描述 投票:0回答:4

我的团队中有人使用 vim,但我们其他人使用 VS Code 的默认格式化程序(即

vscode.typescript-language-features
)。我想添加一个 git 预提交钩子或无需打开应用程序即可调用格式化程序的东西。

另请参阅:

visual-studio-code code-formatting
4个回答
4
投票

VS Code 没有“a 格式化程序”。它有多个内置格式提供程序,并且扩展也可以实现自己的格式提供程序

据我所知,在撰写本文时,没有简单的方法可以完成所要求的操作。

我建议弄清楚是否有一个底层格式化工具,无论您在 VS Code 中使用的格式化程序都是构建在/包装之上的,然后找出是否可以从命令行调用该工具。这可能需要阅读一些文档和/或源代码。我在对“Visual Studio Code 使用什么 JSON 格式化程序来格式化 JSON?”的回答中给出了执行此操作的过程的示例。这有点复杂,并且“精确”过程很可能会根据提供格式化功能的格式化程序/VS Code 扩展而有很大差异,因此这是我可以想象给出的最佳答案,而无需为阳光下的每个格式化程序提供彻底的答案一直在这里,这太宽泛了 但要尝试概括,

找出哪个扩展提供格式化功能 - 它可能是您手动安装的扩展,或者

内置于 VS Code 的扩展

。格式化程序应在状态栏中指示 - 单击
    {}
  • 图标即可弹出包含该信息的弹出窗口。或者检查您是否触摸了任何语言覆盖设置
    editor.defaultFormatter
    设置
    
    在 VS Code 的扩展视图中转到该扩展的页面 如果文档提到有一个底层格式化工具,那么您可以跳过以下许多步骤
  • 找到扩展源代码存储库的链接(仅当扩展在其
  • 扩展清单中提供该链接时才会存在
  • 如果扩展是闭源的,您必须在安装后使用扩展(请参阅用户主目录下的 .vscode/extensions/ 目录)
  • 从这一点开始,您必须弄清楚格式化是如何实现的,并希望它是通过调用底层格式化工具来实现的,您可以通过命令行使用该工具或为其编写命令行包装器。您可以尝试查看扩展清单(package.json 文件)的
    depndencies
    属性是否提供任何信息,或者 grep 查找与
  • DocumentFormattingEditProvider
     相关的内容,并查看是否有任何对非 JS 的调用程序。
    
    如果 VS Code 做到了这一点,理论上这可能会更简单,但事实并非如此——至少在撰写本文时还没有。例如,请参阅
    可以从命令行调用 VSCode 扩展命令?
可以直接从集成终端(集成终端 -> VSCode API)向 VSCode 发送命令吗?

截至 2021 年 7 月,vscode 似乎没有提供任何在应用程序本身之外运行其格式化程序的方法


2
投票

有一个很棒的 git hooks 工具,名为

Husky

1
投票
here

找到它的文档。 这是一个 package.json 文件中的示例,每当执行

git

pre-commit
时,它都会使用 pretty-quick 来执行 prettier "husky": { "hooks": { "pre-commit": "pretty-quick --staged" } }, ....
我发现这种方法远远优于在每个文件保存时运行更漂亮。


格式化文档 (Ctrl+Shift+I) - 格式化整个活动文件。设置选择格式 (Ctrl+K Ctrl+F) - 设置所选文本的格式。


-2
投票

© www.soinside.com 2019 - 2024. All rights reserved.