Использование NOLINT для подавления лакомства. Как я могу подавить подавление?

У меня есть код, подобный следующему

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 для этой строки без изменения моего кода?

1

Решение

AFAIK Там нет простого способа сделать это так, как вы хотите. Всякий раз, когда clang-tidy находит комментарий NOLINT, он просто пропускает эту строку, и нет опции командной строки, чтобы предотвратить такое поведение.

Поскольку NOLINT помещается в комментарии, вы не можете использовать препроцессор, поскольку комментарии удаляются перед расширением макроса.

Что вы можете сделать, это найти и заменить // NOLINT с другим (желательно уникальным) текстом, таким как // DISABLE_NOLINT, запустите проверку и затем замените ее обратно.

если ты ДЕЙСТВИТЕЛЬНО не хотите трогать этот код, вы можете создать свою собственную clang-tidy из источника, где вы модифицируете static bool LineIsMarkedWithNOLINT() в ClangTidyDiagnosticConsumer.cpp всегда возвращать false. Или даже создайте новую опцию командной строки, чтобы изменить поведение, если оно того стоит.

1

Другие решения

Других решений пока нет …