我有如下代码

int do_thing( int arg1, int arg2, int arg3 ) { // NOLINT : don't care that arg2 and arg3 aren't used
  return arg1;
}

NOLINT注释通常会抑制整洁的警告。但是,如何在不更改代码的情况下重新启用该行的clang-tidy?

最佳答案

AFAIK没有简单的方法可以按照您想要的方式进行操作。每当clang-tidy找到NOLINT注释时,它只会跳过该行,没有命令行选项可以防止此行为。

由于NOLINT放在注释中,因此您不能使用预处理器,因为注释在宏扩展之前已被删除。

您可以做的是找到// NOLINT并将其替换为其他一些(最好是唯一的)文本,例如// DISABLE_NOLINT,运行clang-tidy检查,然后将其替换回去。

如果您真的是不想触摸该代码,则可以从源代码构建自己的clang-tidy,在该源代码中,您可以在ClangTidyDiagnosticConsumer.cpp中将static bool LineIsMarkedWithNOLINT()修改为始终返回false。如果您值得尝试,甚至可以使用新的命令行选项来切换行为。

关于c++ - 使用NOLINT抑制整洁。如何抑制压制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51228177/

10-11 18:08