From 7c64668e7f09f4e82acd81a1eb16c5edfb7a927d Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 23 Apr 2019 14:53:16 +0300 Subject: [PATCH] Text --- .../CPP/Проверка именования в Clang Tidy.md | 302 +++++++++++++----- wiki/css/clang-table.css | 12 + 2 files changed, 235 insertions(+), 79 deletions(-) create mode 100644 wiki/css/clang-table.css diff --git a/wiki/Prog/Lang/CPP/Проверка именования в Clang Tidy.md b/wiki/Prog/Lang/CPP/Проверка именования в Clang Tidy.md index 3744546..272b8ce 100644 --- a/wiki/Prog/Lang/CPP/Проверка именования в Clang Tidy.md +++ b/wiki/Prog/Lang/CPP/Проверка именования в Clang Tidy.md @@ -1,16 +1,17 @@ --- -title: "Проверка именования в Clang Tidy" +title: "Проверка именования в clang-tidy" category: Программирование tags: C++, программирование, clang, clang-tidy, форматирование, summary: -CSS: table-100.css +CSS: table-100.css, clang-table.css toc: yes ... [TOC] -Программа Clang Tidy может проверить стилистику регистра идентификаторов, -а также их префиксы и суффиксы. Возможные варианты стилей: +Программа [clang-tidy](https://clang.llvm.org/extra/clang-tidy/) может +проверить стилистику регистра идентификаторов, а также их префиксы и суффиксы. +Возможные варианты стилей: ``` lower_case @@ -22,6 +23,9 @@ Camel_Snake_Case aNy_CasE ``` +Перечень вариантов идентификаторов приведён +[здесь](https://clang.llvm.org/extra/clang-tidy/checks/readability-identifier-naming.html). + Для включения проверки именования идентификаторов нужно в находящемся в корне проекта файле `.clang-tidy` включить данный тип диагностики (опция `clang-diagnostic-*,readability-identifier-naming`), а затем указать @@ -54,21 +58,21 @@ AbstractClassCase | `CamelCase` AbstractClassPrefix | `''` AbstractClassSuffix | `''` -Пример кода до форматирования (было `ABSTRACT_CLASS`): +Пример кода до форматирования: ```cpp class ABSTRACT_CLASS { -public: - ABSTRACT_CLASS(); + public: + ABSTRACT_CLASS(); }; ``` -Пример кода после форматирования (стало `AbstractClass`): +Пример кода после форматирования: ```cpp class AbstractClass { -public: - AbstractClass(); + public: + AbstractClass(); }; ``` @@ -80,13 +84,14 @@ ClassCase | `CamelCase` ClassPrefix | `''` ClassSuffix | `''` + Пример кода до форматирования: ```cpp class TEST_CLASS { -public: - TEST_CLASS(); - ~TEST_CLASS(); + public: + TEST_CLASS(); + ~TEST_CLASS(); }; ``` @@ -94,9 +99,9 @@ public: ```cpp class TestClass { -public: - TestClass(); - ~TestClass(); + public: + TestClass(); + ~TestClass(); }; ``` @@ -112,7 +117,7 @@ StructSuffix | `''` ```cpp struct TEST_struct { - int a; + int a; }; ``` @@ -121,7 +126,7 @@ struct TEST_struct { ```cpp struct TestStruct { - int a; + int a; }; ``` @@ -137,8 +142,8 @@ UnionSuffix | `''` ```cpp union TEST_union { - int a; - char b; + int a; + char b; }; ``` @@ -146,8 +151,8 @@ union TEST_union { ```cpp union TestUnion { - int a; - char b; + int a; + char b; }; ``` @@ -162,13 +167,13 @@ EnumSuffix | `''` Пример кода до форматирования: ```cpp -enum TEST_enum { One, Two }; +enum TEST_enum { ONE, TWO }; ``` Пример кода после форматирования: ```cpp -enum TestEnum { One, Two }; +enum TestEnum { ONE, TWO }; ``` @@ -183,7 +188,7 @@ EnumConstantSuffix | `''` Пример кода до форматирования: ```cpp -enum TestEnum { one, two }; +enum TestEnum { one, TWO }; ``` Пример кода после форматирования: @@ -258,13 +263,19 @@ TypeAliasSuffix | `''` Пример кода до форматирования: ```cpp +struct MyStructure { + int a; +}; using MY_STRUCT_TYPE = MyStructure; ``` Пример кода после форматирования: ```cpp -using my_struct_type = MyStructure; +struct MyStructure { + int a; +}; +using MyStructType = MyStructure; ``` ### Typedef (Объявление типа) @@ -351,13 +362,19 @@ StatucVariableSuffix | `''` Пример кода до форматирования: ```cpp -static unsigned Static_Variable; +int functionWithStaticVariable() { + static int StaticVariable = 0; + return StaticVariable; +} ``` Пример кода после форматирования: ```cpp -static unsigned staticVariable; +int functionWithStaticVariable() { + static int staticVariable = 0; + return staticVariable; +} ``` @@ -372,19 +389,13 @@ ConstexprVariableSuffix | `''` Пример кода до форматирования: ```cpp -constexpr int get_five() { - return ( 2 + 3 ); -}; -constexpr int CONST_FIVE = get_five(); +constexpr int CONST_FIVE = 5; ``` Пример кода после форматирования: ```cpp -constexpr int get_five() { - return ( 2 + 3 ); -}; -constexpr int const_five = get_five(); +constexpr int const_five = 5; ``` @@ -419,20 +430,74 @@ LocalPointerSuffix | `''` Пример кода до форматирования: ```cpp -void* LocalPointer; +void* function() { + void* LocalPointer = nullptr; + return LocalPointer; +} ``` Пример кода после форматирования: ```cpp -void* localpointer; +void* function() { + void* localPointer = nullptr; + return localPointer; +} ``` ### Member (Член) ??? -### ClassMember (Член класса) ??? +### ClassMember (Член класса) +Параметр | Значение +-------------------------------|---------------- +ClassMemberCase | `camelBack` +ClassMemberPrefix | `''` +ClassMemberSuffix | `''` + +Пример кода до форматирования: + +```cpp +class ClassWithClassMember { + public: + static int CLASS_MEMBER; +}; +``` + +Пример кода после форматирования: + +```cpp +class ClassWithClassMember { + public: + static int classMember; +}; +``` + + +### ConstantMember (Константный член) + +Параметр | Значение +-------------------------------|---------------- +ConstantMemberCase | `lower_case` +ConstantMemberPrefix | `''` +ConstantMemberSuffix | `''` + +Пример кода до форматирования: + +```cpp +class ClassWithConstantMember { + char const ConstMember[4] = "123"; +}; +``` + +Пример кода после форматирования: + +```cpp +class ClassWithConstantMember { + char const const_member[4] = "123"; +}; +``` ### PrivateMember (Приватный член) @@ -446,8 +511,8 @@ PrivateMemberSuffix | `''` ```cpp class ClassWithPrivateMember { -private: - int PrivateMember; + private: + int PrivateMember; }; ``` @@ -455,8 +520,8 @@ private: ```cpp class ClassWithPrivateMember { -private: - int m_privateMember; + private: + int m_privateMember; }; ``` @@ -473,8 +538,8 @@ ProtectedMemberSuffix | `''` ```cpp class ClassWithProtectedMember { -protected: - int ProtectedMember; + protected: + int ProtectedMember; }; ``` @@ -482,8 +547,8 @@ protected: ```cpp class ClassWithProtectedMember { -protected: - int protectedMember; + protected: + int protectedMember; }; ``` @@ -500,8 +565,8 @@ PublicMemberSuffix | `''` ```cpp class ClassWithPublicMember { -protected: - int PublicMember; + public: + int PublicMember; }; ``` @@ -509,15 +574,35 @@ protected: ```cpp class ClassWithPublicMember { -protected: - int publicMember; + public: + int publicMember; }; ``` ## Константы -### Constant (Константа) + +### Constant (Константа) ??? + +Параметр | Значение +-------------------------------|---------------- +ConstantCase | `UPPER_CASE` +ConstantPrefix | `''` +ConstantSuffix | `''` + +Пример кода до форматирования: + +```cpp +const int theOne = 1; +``` + +Пример кода после форматирования: + +```cpp +const int THE_ONE = 1; +``` + ### GlobalConstant (Глобальная константа) @@ -594,7 +679,7 @@ int functionWithStaticConstant() { } ``` -### ClassConstant (Константа класс) +### ClassConstant (Константа класса) Параметр | Значение -------------------------------|---------------- @@ -605,18 +690,18 @@ ClassConstantSuffix | `''` Пример кода до форматирования: ```cpp -class ClassWithConstMember { - public: - static int const constant_member = 0; +class ClassWithClassConstant { + public: + static int const Class_Constant = 0; }; ``` Пример кода после форматирования: ```cpp -class ClassWithConstMember { - public: - static int const CONSTANT_MEMBER = 0; +class ClassWithClassConstant { + public: + static int const CLASS_CONSTANT = 0; }; ``` @@ -624,7 +709,7 @@ class ClassWithConstMember { Параметр | Значение -------------------------------|---------------- -GlobalConstantPointerCase | `UPPER_CASE` +GlobalConstantPointerCase | `lower_case` GlobalConstantPointerPrefix | `''` GlobalConstantPointerSuffix | `''` @@ -639,7 +724,7 @@ void* const GlobalConstPointer = global_pointer; ```cpp void* global_pointer; -void* const GLOBAL_CONST_POINTER = global_pointer; +void* const global_const_pointer = global_pointer; ``` @@ -647,7 +732,7 @@ void* const GLOBAL_CONST_POINTER = global_pointer; Параметр | Значение -------------------------------|---------------- -LocalConstantPointerCase | `UPPER_CASE` +LocalConstantPointerCase | `camelBack` LocalConstantPointerPrefix | `''` LocalConstantPointerSuffix | `''` @@ -666,16 +751,12 @@ void* functionWithLocalConstPointer() { ```cpp void* functionWithLocalConstPointer() { void* pointer = nullptr; - void* const LOCAL_CONST_POINTER = pointer; - return LOCAL_CONST_POINTER; + void* const localConstPointer = pointer; + return localConstPointer; } ``` -### ConstMember (Константный член) - - - ## Функции @@ -730,14 +811,14 @@ int globalFunction() { ``` -### ConstexptFunction (Функция constexpr) +### ConstexprFunction (Функция constexpr) Параметр | Значение -------------------------------|---------------- -ConstexptFunctionCase | `camelBack` -ConstexptFunctionPrefix | `''` -ConstexptFunctionSuffix | `''` +ConstexprFunctionCase | `camelBack` +ConstexprFunctionPrefix | `''` +ConstexprFunctionSuffix | `''` Пример кода до форматирования: @@ -759,7 +840,7 @@ constexpr int getFive() { ### Method (Метод) ??? -### ClassMethod (Метод класса) ??? +### ClassMethod (Метод класса) Параметр | Значение -------------------------------|---------------- @@ -905,6 +986,7 @@ PublicMethodSuffix | `''` class ClassWithPublicMethod { public: int get_int() { return 0; }; +}; ``` Пример кода после форматирования: @@ -965,7 +1047,7 @@ char returnChar(const char return_Value) { ```cpp char returnChar(const char returnValue) { - return return_Value; + return returnValue; }; ``` @@ -994,8 +1076,6 @@ void* returnVoid(void* const returnValue) { }; ``` -### ParameterPack (Список параметров) - ### PointerParameter (Параметр типа указатель) Параметр | Значение @@ -1020,6 +1100,10 @@ void* returnPtr(void* returnValue) { }; ``` + +## Шаблоны + + ### TemplateParameter (Параметр шаблона) Параметр | Значение @@ -1031,7 +1115,7 @@ TemplateParameterSuffix | `''` Пример кода до форматирования: ```cpp -templateint tFunction(TType t_value) { +template int tFunction(TType t_value) { return 0; } ``` @@ -1039,14 +1123,54 @@ templateint tFunction(TType t_value) { Пример кода после форматирования: ```cpp -templateint tFunction(TType tValue) { +template int tFunction(TType tValue) { return 0; } ``` +### ParameterPack (Список параметров шаблона) + +Параметр | Значение +-------------------------------|---------------- +ParameterPackCase | `camelBack` +ParameterPackPrefix | `''` +ParameterPackSuffix | `''` + +Пример кода до форматирования: + +```cpp +template void f(Types ... Parameters_Pack); +``` + +Пример кода после форматирования: + +```cpp +template void f(Types ... parametersPack); +``` + + ### TemplateTemplateParameter (Параметр шаблона шаблона) +Параметр | Значение +-------------------------------|---------------- +TemplateTemplateParameterCase | `camelBack` +TemplateTemplateParameterPrefix| `''` +TemplateTemplateParameterSuffix| `''` + +Пример кода до форматирования: + +```cpp +template class TPL_TPL_Parameter> +class AllmightyClass { }; +``` + +Пример кода после форматирования: + +```cpp +template class tplTplParameter> +class AllmightyClass { }; +``` ### TypeTemplateParameter (Типа параметра шаблона) @@ -1074,7 +1198,27 @@ templateint tFunction(TType value) { ``` - ### ValueTemplateParameter (Значение параметра шаблона) +Параметр | Значение +-------------------------------|---------------- +ValueTemplateParameterCase | `camelBack` +ValueTemplateParameterPrefix | `''` +ValueTemplateParameterSuffix | `''` + +Пример кода до форматирования: + +```cpp +template int tFunction(TType tValue) { + return 0; +} +``` + +Пример кода после форматирования: + +```cpp +template int tFunction(TType tValue) { + return 0; +} +``` diff --git a/wiki/css/clang-table.css b/wiki/css/clang-table.css new file mode 100644 index 0000000..e7d05e7 --- /dev/null +++ b/wiki/css/clang-table.css @@ -0,0 +1,12 @@ +table { + margin-bottom: 16px; + } + +th, td { + width: 50%; + padding: 5px; + text-align: left; + border: 1px solid #ddd; +} + +tr:hover {background-color:#f5f5f5;}