命令
clang-tidy --export-fixes=fixes.yml <sources>
生成一个文件fixes.yml
,其立场如下
---
Diagnostics:
- DiagnosticName: modernize-loop-convert
DiagnosticMessage:
Message: use range-based for loop instead
FilePath: 'Base/Util/StringUtils.cpp'
FileOffset: 1510
Replacements:
- FilePath: 'Base/Util/StringUtils.cpp'
Offset: 1514
Length: 37
ReplacementText: '(const auto & item : items)'
Level: Warning
BuildDirectory: 'tidy/Base'
看起来完全合理。
如何将这些更改应用到源?
man clang-apply-replacements
说
USAGE: clang-apply-replacements [options] <Search Root Directory>
没有一个选项是相关的。一些网络资源告诉我们,我们只需将更改集放入根目录中,即可在根目录中搜索任何
.yml
文件。
对我不起作用:
clang-apply-replacements .
立即执行,不打印任何消息,也不进行任何更改。
我也遇到了完全相同的问题。只需将修复文件的扩展名更改为
.yaml
如果他们使用 clang-apply-replacements
.yml
将找不到您的文件
这已在 45fec0c 中更改,LLVM/Clang 19 将支持
.yml
文件。