clang-tidy обрабатывает пространство имен как глобальную переменную при использовании readability-identifier-naming

#c #clang #llvm #clang-tidy

#c #лязг #llvm #clang-tidy

Вопрос:

Я использую clang-tidy для обработки исходного кода. В файле .clang-tidy , который я определил:

 Checks: '-*,readability-identifier-naming'
CheckOptions:
...
  - { key: readability-identifier-naming.NamespacePrefix,               value: n1_        },
  - { key: readability-identifier-naming.GlobalVariablePrefix,          value: g1_        },
...
 

Мой руководитель.ч:

 namespace n1_test
{
...
}
 

Компоновка этого файла с помощью clang-tidy (пробовал 11.1.0, 13.0.0git (оба скомпилированы мной) и 10.0.0 (загружены)) на Linux Mint 19.2 (Tina)

с:

 clang-tidy-11.1.0 -export-fixes=fixes.txt /tmp/clangTest/mylib/source/myHeader.h -- -I/tmp/clangTest/myLib/source
 

приводит к:

  warning: invalid case style for global variable 'n1_test' [readability-identifier-naming]
namespace n1_test {
          ^~~~~~~~~~
          g1_n1_test
 

Я не понимаю, почему NamespacePrefix это не работает, и clang-tidy обрабатывает пространство имен как глобальную переменную. Я тоже тестирую NamespaceCase , но это не работает.

PS: Согласно документации, это должно работать

Комментарии:

1. Компилируется ли ваш код (возможно, ошибка из другого места)? В противном случае это кажется ошибкой.

2. он компилируется. Возможно, я также должен упомянуть, что я также получил ошибку при включении списка: .error: 'list' file not found [clang-diagnostic-error] #include <list>

3. Тогда кажется, что ваша «установка / настройка» в некотором роде нарушена. Думаю, предоставление системной информации (в основном Windows или * nix) может помочь. И где находятся стандартные заголовки.

4. Linux Mint 19.2 (Tina)

Ответ №1:

невозможно использовать clang-tidy непосредственно для файлов заголовков. Вместо этого я должен проверить файл cpp и добавить -header-filter=.* , чтобы также проверить заголовки:

 clang-tidy-11.1.0 -header-filter=.* -export-fixes=fixes.txt /tmp/clangTest/mylib/source/main.cpp -- -I/tmp/clangTest/myLib/source