我想包含来自外部项目的标头,但 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 正则表达式语法。这不支持负面展望。
正如这个答案所建议的那样,我还考虑使用线路过滤器,但配置文件没有这样的选项。
有可能吗?
我已将我的 cpp 项目的 clang 与 CMakeLists.txt 链接起来
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=google-*,cppcoreguidelines-*")
Run Code Online (Sandbox Code Playgroud)
因为,我想将所有 clang 配置移动到一个文件中,所以我在 google 上搜索了一下,发现有 .clang-tidy 文件可用于此用途。
但是,我无法配置 CMakeList.txt 来实际使用该文件。
谁能告诉我应该如何更改 CMakeList.txt 中的该行以将其与 .clang-tidy 文件链接?