Я хочу изменить проверки, которые выполняет программа анализатора кода clang-tidy
, но похоже, что содержимое файла конфигурации .clang-tidy
игнорируется.
- Я создаю файл, вызывая
clang-tidy
с флагом-dump-config
и перенаправляю вывод в файл.clang-tidy
. - Затем я вызываю
sed
, чтобы заменить значение800
значением700
, которое соответствует параметру с ключомgoogle-readability-function-size.StatementThreshold
. Конкретный вариант мне не важен, это просто для тестирования. - Я подтверждаю, что значение действительно было изменено.
- Наконец, я повторно запускаю
clang-tidy
, чтобы убедиться, что он принял новую конфигурацию, но она остается неизменной.
# generate config
clang-tidy -dump-config > .clang-tidy
# change config
sed -i 's/800/700/' .clang-tidy
# verify change
grep '700' .clang-tidy
# use config, does not work
clang-tidy -config '' -dump-config
CheckOption остается со значением по умолчанию, содержимое файла конфигурации игнорируется:
CheckOptions:
# some lines omitted for brevity
- key: google-readability-function-size.StatementThreshold
value: '800'
Запуск clang-tidy -config '' -dump-config -explain-config
показывает, что, по крайней мере, файл конфигурации был найден, то есть в обнаруженном файле конфигурации включено много специальных проверок clang-analyzer, но проверка google-readability-function-size.StatementThreshold
отсутствует в списке.
Я также попытался передать конфигурацию напрямую в качестве параметра командной строки с помощью команды clang-tidy -config="{CheckOptions: [ {key: google-readability-function-size.StatementThreshold, value: 700} ]}" -dump-config
, но получил тот же результат.
Команда clang-tidy --version
, работающая в Ubuntu 20.04, дает следующий результат:
LLVM (http://llvm.org/):
LLVM version 10.0.0
Optimized build.
Default target: x86_64-pc-linux-gnu
Host CPU: haswell