mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Add clang-tidy and clang-format configuration
This commit is contained in:
		
							
								
								
									
										190
									
								
								.clang-format
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								.clang-format
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,190 @@ | ||||
| --- | ||||
| Language:        Cpp | ||||
| # BasedOnStyle:  Mozilla | ||||
| AccessModifierOffset: -4 | ||||
| AlignAfterOpenBracket: BlockIndent | ||||
| AlignArrayOfStructures: Left | ||||
| AlignConsecutiveMacros: false  | ||||
| AlignConsecutiveAssignments: false  | ||||
| AlignConsecutiveBitFields: false  | ||||
| AlignConsecutiveDeclarations: false | ||||
| AlignEscapedNewlines: Left | ||||
| AlignOperands:   AlignAfterOperator | ||||
| AlignTrailingComments: false | ||||
| AllowAllArgumentsOnNextLine: true | ||||
| AllowAllParametersOfDeclarationOnNextLine: false | ||||
| AllowShortEnumsOnASingleLine: false | ||||
| AllowShortBlocksOnASingleLine: Never | ||||
| AllowShortCaseLabelsOnASingleLine: false | ||||
| AllowShortFunctionsOnASingleLine: Empty | ||||
| AllowShortLambdasOnASingleLine: None | ||||
| AllowShortIfStatementsOnASingleLine: Never | ||||
| AllowShortLoopsOnASingleLine: false | ||||
| AlwaysBreakAfterDefinitionReturnType: None | ||||
| AlwaysBreakAfterReturnType: None | ||||
| AlwaysBreakBeforeMultilineStrings: true | ||||
| AlwaysBreakTemplateDeclarations: Yes | ||||
| AttributeMacros: | ||||
|   - __capability | ||||
| BinPackArguments: false | ||||
| BinPackParameters: false | ||||
| BraceWrapping: | ||||
|   AfterCaseLabel:  false | ||||
|   AfterClass:      true | ||||
|   AfterControlStatement: Never | ||||
|   AfterEnum:       true | ||||
|   AfterFunction:   true | ||||
|   AfterNamespace:  false | ||||
|   AfterObjCDeclaration: false | ||||
|   AfterStruct:     true | ||||
|   AfterUnion:      true | ||||
|   AfterExternBlock: true | ||||
|   BeforeCatch:     false | ||||
|   BeforeElse:      false | ||||
|   BeforeLambdaBody: false | ||||
|   BeforeWhile:     false | ||||
|   IndentBraces:    false | ||||
|   SplitEmptyFunction: false | ||||
|   SplitEmptyRecord: false | ||||
|   SplitEmptyNamespace: false | ||||
| BreakBeforeBinaryOperators: None | ||||
| BreakBeforeConceptDeclarations: true | ||||
| BreakBeforeBraces: Allman | ||||
| BreakBeforeInheritanceComma: false | ||||
| BreakInheritanceList: BeforeComma | ||||
| BreakBeforeTernaryOperators: true | ||||
| BreakConstructorInitializersBeforeComma: false | ||||
| BreakConstructorInitializers: BeforeComma | ||||
| BreakAfterJavaFieldAnnotations: false | ||||
| BreakStringLiterals: true | ||||
| ColumnLimit:     160 | ||||
| CommentPragmas:  '^ IWYU pragma:' | ||||
| QualifierAlignment: Left | ||||
| CompactNamespaces: false | ||||
| ConstructorInitializerIndentWidth: 4 | ||||
| ContinuationIndentWidth: 4 | ||||
| Cpp11BracedListStyle: true | ||||
| DeriveLineEnding: true | ||||
| DerivePointerAlignment: false | ||||
| DisableFormat:   false | ||||
| EmptyLineAfterAccessModifier: Never | ||||
| EmptyLineBeforeAccessModifier: LogicalBlock | ||||
| ExperimentalAutoDetectBinPacking: false | ||||
| PackConstructorInitializers: BinPack | ||||
| BasedOnStyle:    '' | ||||
| ConstructorInitializerAllOnOneLineOrOnePerLine: false | ||||
| AllowAllConstructorInitializersOnNextLine: true | ||||
| FixNamespaceComments: false | ||||
| ForEachMacros: | ||||
|   - foreach | ||||
|   - Q_FOREACH | ||||
|   - BOOST_FOREACH | ||||
| IfMacros: | ||||
|   - KJ_IF_MAYBE | ||||
| IncludeBlocks: Preserve | ||||
| IncludeCategories: | ||||
|   # Precompiled header | ||||
|   - Regex:           '"StdInc\.h"' | ||||
|     Priority:        0 | ||||
|     SortPriority:    -1 | ||||
| IncludeIsMainRegex: '(Test)?$' | ||||
| IncludeIsMainSourceRegex: '' | ||||
| IndentAccessModifiers: false | ||||
| IndentCaseLabels: true | ||||
| IndentCaseBlocks: false | ||||
| IndentGotoLabels: true | ||||
| IndentPPDirectives: AfterHash | ||||
| IndentExternBlock: AfterExternBlock | ||||
| IndentRequires:  false | ||||
| IndentWidth:     4 | ||||
| IndentWrappedFunctionNames: false | ||||
| InsertTrailingCommas: None | ||||
| JavaScriptQuotes: Leave | ||||
| JavaScriptWrapImports: true | ||||
| KeepEmptyLinesAtTheStartOfBlocks: true | ||||
| LambdaBodyIndentation: Signature | ||||
| MacroBlockBegin: '' | ||||
| MacroBlockEnd:   '' | ||||
| MaxEmptyLinesToKeep: 1 | ||||
| NamespaceIndentation: None | ||||
| ObjCBinPackProtocolList: Auto | ||||
| ObjCBlockIndentWidth: 4 | ||||
| ObjCBreakBeforeNestedBlockParam: true | ||||
| ObjCSpaceAfterProperty: true | ||||
| ObjCSpaceBeforeProtocolList: false | ||||
| PenaltyBreakAssignment: 2 | ||||
| PenaltyBreakBeforeFirstCallParameter: 19 | ||||
| PenaltyBreakComment: 300 | ||||
| PenaltyBreakFirstLessLess: 120 | ||||
| PenaltyBreakOpenParenthesis: 0 | ||||
| PenaltyBreakString: 1000 | ||||
| PenaltyBreakTemplateDeclaration: 10 | ||||
| PenaltyExcessCharacter: 1000000 | ||||
| PenaltyReturnTypeOnItsOwnLine: 200 | ||||
| PenaltyIndentedWhitespace: 0 | ||||
| PointerAlignment: Middle | ||||
| PPIndentWidth:   -1 | ||||
| ReferenceAlignment: Pointer | ||||
| ReflowComments:  false | ||||
| RemoveBracesLLVM: false | ||||
| SeparateDefinitionBlocks: Leave | ||||
| ShortNamespaceLines: 1 | ||||
| SortIncludes:    CaseSensitive | ||||
| SortJavaStaticImport: Before | ||||
| SortUsingDeclarations: true | ||||
| SpaceAfterCStyleCast: false | ||||
| SpaceAfterLogicalNot: false | ||||
| SpaceAfterTemplateKeyword: false | ||||
| SpaceBeforeAssignmentOperators: true | ||||
| SpaceBeforeCaseColon: false | ||||
| SpaceBeforeCpp11BracedList: false | ||||
| SpaceBeforeCtorInitializerColon: true | ||||
| SpaceBeforeInheritanceColon: true | ||||
| SpaceBeforeParens: Never | ||||
| SpaceBeforeParensOptions: | ||||
|   AfterControlStatements: true | ||||
|   AfterForeachMacros: true | ||||
|   AfterFunctionDefinitionName: false | ||||
|   AfterFunctionDeclarationName: false | ||||
|   AfterIfMacros:   true | ||||
|   AfterOverloadedOperator: false | ||||
|   BeforeNonEmptyParentheses: false | ||||
| SpaceAroundPointerQualifiers: Default | ||||
| SpaceBeforeRangeBasedForLoopColon: true | ||||
| SpaceInEmptyBlock: false | ||||
| SpaceInEmptyParentheses: false | ||||
| SpacesBeforeTrailingComments: 1 | ||||
| SpacesInAngles:  Never | ||||
| SpacesInConditionalStatement: false | ||||
| SpacesInContainerLiterals: true | ||||
| SpacesInCStyleCastParentheses: false | ||||
| SpacesInLineCommentPrefix: | ||||
|   Minimum:         0 | ||||
|   Maximum:         -1 | ||||
| SpacesInParentheses: false | ||||
| SpacesInSquareBrackets: false | ||||
| SpaceBeforeSquareBrackets: false | ||||
| BitFieldColonSpacing: Both | ||||
| Standard:        Latest | ||||
| StatementAttributeLikeMacros: | ||||
|   - FALLTHROUGH | ||||
|   - STRONG_INLINE | ||||
|   - DLL_EXPORT | ||||
|   - DLL_IMPORT | ||||
|   - ELF_VISIBILITY | ||||
|   - Q_EMIT | ||||
| StatementMacros: | ||||
|   - Q_UNUSED | ||||
|   - QT_REQUIRE_VERSION | ||||
| TabWidth:        4 | ||||
| UseCRLF:         false | ||||
| UseTab:          ForContinuationAndIndentation  | ||||
| WhitespaceSensitiveMacros: | ||||
|   - STRINGIZE | ||||
|   - PP_STRINGIZE | ||||
|   - BOOST_PP_STRINGIZE | ||||
|   - NS_SWIFT_NAME | ||||
|   - CF_SWIFT_NAME | ||||
| ... | ||||
|  | ||||
|  | ||||
							
								
								
									
										83
									
								
								.clang-tidy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								.clang-tidy
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,83 @@ | ||||
| # Enabled, but situational - a lot of triggers in old code: | ||||
| #  -bugprone-narrowing-conversions,                      # might be too noisy | ||||
| #  -cppcoreguidelines-narrowing-conversions,             # might be too noisy | ||||
| #  -cppcoreguidelines-pro-bounds-pointer-arithmetic,     # pointer arithmetic should be avoided, with possible exception for low-level reader classes | ||||
| #  -misc-private-member-variables-in-classes,            # good for classes, should be disabled/ignored for structs | ||||
| #  -readability-function-cognitive-complexity,           # can show candidates for refactoring | ||||
| # | ||||
| # Currently disabled options: | ||||
| #  -misc-unused-parameters,                              # a lot of intended cases, e.g. interfaces & their implementations | ||||
| #  -misc-include-cleaner,                                # a lot of false-positives, mostly due to StdInc.h | ||||
| #  -cppcoreguidelines-init-variables,                    # better to rely on "maybe initialized" compiler warnings | ||||
| #  -cppcoreguidelines-owning-memory,                     # requires 'gsl' library presence | ||||
| #  -cppcoreguidelines-avoid-magic-numbers,               # too much noise | ||||
| #  -readability-identifier-length,                       # too much noise | ||||
| #  -readability-magic-numbers,                           # too much noise | ||||
| #  -bugprone-easily-swappable-parameters,                # improvement doubtful | ||||
| #  -cppcoreguidelines-avoid-const-or-ref-data-members    # improvement doubtful | ||||
| #  -cppcoreguidelines-special-member-functions,          # improvement doubtful | ||||
| #  -cppcoreguidelines-pro-bounds-constant-array-index,   # improvement doubtful | ||||
| #  -readability-static-accessed-through-instance,        # improvement doubtful | ||||
| #  -readability-else-after-return,                       # improvement doubtful | ||||
| #  -modernize-pass-by-value,                             # improvement doubtful | ||||
| #  -google-readability-braces-around-statements,         # not in our code style | ||||
| #  -google-readability-namespace-comments,               # not in our code style | ||||
| #  -google-readability-todo,                             # not in our code style | ||||
| #  -modernize-use-trailing-return-type,                  # not in our code style | ||||
| #  -modernize-return-braced-init-list,                   # not in our code style | ||||
| #  -modernize-use-nodiscard,                             # not in our code style | ||||
| #  -readability-braces-around-statements,                # not in our code style | ||||
| #  -readability-implicit-bool-conversion,                # not in our code style for pointers, and int-only detection seems to be broken? | ||||
| #  -readability-uppercase-literal-suffix                 # not in our code style | ||||
| #  -readability-convert-member-functions-to-static,      # candidate for re-enabling, to show poorly designed class methods | ||||
|  | ||||
| Checks: > | ||||
|   -*, | ||||
|   boost-*, | ||||
|   bugprone-*, | ||||
|   clang-*, | ||||
|   cppcoreguidelines-*, | ||||
|   google-*, | ||||
|   misc-*, | ||||
|   modernize-*, | ||||
|   performance-*, | ||||
|   readability-*, | ||||
|   -bugprone-easily-swappable-parameters, | ||||
|   -cppcoreguidelines-avoid-const-or-ref-data-members, | ||||
|   -cppcoreguidelines-avoid-magic-numbers, | ||||
|   -cppcoreguidelines-init-variables, | ||||
|   -cppcoreguidelines-owning-memory, | ||||
|   -cppcoreguidelines-special-member-functions, | ||||
|   -cppcoreguidelines-pro-bounds-constant-array-index, | ||||
|   -google-readability-braces-around-statements, | ||||
|   -google-readability-namespace-comments, | ||||
|   -google-readability-todo, | ||||
|   -misc-include-cleaner, | ||||
|   -misc-unused-parameters, | ||||
|   -modernize-use-trailing-return-type, | ||||
|   -modernize-return-braced-init-list, | ||||
|   -modernize-pass-by-value, | ||||
|   -modernize-use-nodiscard, | ||||
|   -readability-braces-around-statements, | ||||
|   -readability-convert-member-functions-to-static, | ||||
|   -readability-else-after-return, | ||||
|   -readability-identifier-length, | ||||
|   -readability-implicit-bool-conversion, | ||||
|   -readability-magic-numbers, | ||||
|   -readability-static-accessed-through-instance, | ||||
|   -readability-uppercase-literal-suffix, | ||||
|   -readability-use-anyofallof | ||||
|  | ||||
| CheckOptions: | ||||
|   - key:             misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic | ||||
|     value:           'true' | ||||
|   - key:             llvm-else-after-return.WarnOnConditionVariables | ||||
|     value:           'false' | ||||
|   - key:             misc-const-correctness.AnalyzeValues  | ||||
|     value:           'false' | ||||
|   - key:             misc-include-cleaner.IgnoreHeaders | ||||
|     value:           'StdInc.h' | ||||
|   - key:             readability-function-size.StatementThreshold | ||||
|     value:           '800' | ||||
|   - key:             misc-include-cleaner.IgnoreHeaders | ||||
|     value:           'StdInc.h' | ||||
		Reference in New Issue
	
	Block a user