如何在“clang-tidy --export-fixes”生成的更改集上运行“clang-apply-replacements”?

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

命令

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 .
立即执行,不打印任何消息,也不进行任何更改。

clang-tidy
2个回答
3
投票

我也遇到了完全相同的问题。只需将修复文件的扩展名更改为

.yaml

如果他们使用

clang-apply-replacements

.yml

将找不到您的文件

0
投票

这已在 45fec0c 中更改,LLVM/Clang 19 将支持

.yml
文件。

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