clang-tidy игнорирует именование идентификаторов читаемости в Windows
Я хочу использовать clang-tidy для обеспечения соблюдения стилевых правил моей компании. Я работаю на Windows 10. Я установил LLVM v6.0.1. Вот мой тестовый файл:
class foo_bar
{
public:
foo_bar() = default;
private:
int bar_;
};
И вот командная строка, которую я запускаю:
clang-tidy.exe -checks='-*,readability-identifier-naming' -config="{CheckOptions: [ {key: readability-identifier-naming.ClassCase, value: CamelCase} ]}" test.cpp -- -std=c++11
clang-tidy не выдает никаких ошибок (я ожидал проблему с именем класса). Я не вижу, где моя ошибка. Кто-нибудь может направить меня?
Я попробовал ту же командную строку с тем же файлом в Ubuntu 16.04.4, и у меня есть желаемый результат:
1 warning generated.
C:\Users\Cyril\dev\clang_test\main.cpp:1:7: warning: invalid case style for class 'foo_bar' [readability-identifier-naming]
class foo_bar
^
1 ответ
Кажется, что clang-tidy на Windows имеет проблему с комбинацией -checks
а также -config
опции.
Вы можете на самом деле положить все в -config
:
clang-tidy.exe -config="{Checks: '-*,readability-identifier-naming', CheckOptions: [ {key: readability-identifier-naming.ClassCase, value: CamelCase} ]}" test.cpp -- -std=c++11
Это дает желаемый результат
X:\test.cpp:1:7: warning: invalid case style for class 'foo_bar' [readability-identifier-naming]
class foo_bar
^~~~~~~
FooBar
Протестировано на LLVM 6.0 на Windows.
Если вы используете оболочку Windows Cmd (cmd.exe), то проблема заключается в использовании одинарных кавычек (') в -checks
вариант в этой строке
clang-tidy.exe -checks='-*,readability-identifier-naming' ....
если вы измените это на (используя (") вместо этого)
clang-tidy.exe -checks="-*,readability-identifier-naming" ....
тогда это будет работать правильно.
Это не проблема при использовании bash для Windows только при запуске в cmd.exe