我想包含来自外部项目的标头,但 clang-tidy 对此非常不满意,并生成了大量警告列表。为了解决这个问题,我尝试禁用来自此标头的所有诊断。
我试过:
// NOLINTBEGIN
// NOLINTNEXTLINE
#include <bad.hpp> // NOLINT
// NOLINTEND
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用。
此电子邮件线程建议使用-header-filter(HeaderFilterRegex) 选项。
HeaderFilterRegex: '^((?!bad.hpp).)*$'
Run Code Online (Sandbox Code Playgroud)
但这会导致所有标头被忽略,因为 clang tidy使用POSIX 正则表达式语法。这不支持负面展望。
正如这个答案所建议的那样,我还考虑使用线路过滤器,但配置文件没有这样的选项。
有可能吗?
截至今天(2022 年 4 月 19 日),披露 llvm 博客上的此帖子表明该功能不受支持。
相关注释有:
HeaderFilterRegex使用 进行解析llvm::Regex,它不支持负向前瞻。std::regex代替,因为某些编译器不支持。未来版本可能会实现基于 glob 的文件名过滤。llvm::Regexstd::regexclang-tidy我现在只能看到两种可能的解决方法:
HeaderFilterRegex。clang-tidy使用std::regex并使用您自己的版本。| 归档时间: |
|
| 查看次数: |
7969 次 |
| 最近记录: |