有没有一种方法可以运行 clang-format
的模式,如果它报告的文件符合指定的格式?一种模拟运行模式,它在需要更改时报告,但不进行更改。理想情况下,如果文件需要更改,我希望 clang-format 只返回一个非零退出代码。或者,更理想的情况是,一个非零退出代码和一个需要对标准输出进行更改的文件列表。
我试图保持这个问题的通用性,以便更多的人可以回答,但我要做的是写一个 git 提前提交钩子,将拒绝任何不符合预期的提交。Clang 格式。对索引中的文件列表运行 clang-format 很容易。但是很难知道 clang 格式是否真的改变了什么。
我有一个潜在的解决方案基于 -output-replacements-xml
(我将作为一个答案) ,但它是一个黑客,我觉得这应该更直接。欢迎评论/建议、编辑、不同的答案/方法。