У меня есть код, подобный следующему
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 из источника, где вы модифицируете static bool LineIsMarkedWithNOLINT()
в ClangTidyDiagnosticConsumer.cpp всегда возвращать false. Или даже создайте новую опцию командной строки, чтобы изменить поведение, если оно того стоит.
Других решений пока нет …