diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..bd04385 --- /dev/null +++ b/.clang-format @@ -0,0 +1,131 @@ +# -*- mode: yaml -*- +# Written for clang-format 11. +# https://releases.llvm.org/11.0.0/tools/clang/docs/ClangFormatStyleOptions.html +--- +DisableFormat: false +Language: Cpp + +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveBitFields: false +AlignConsecutiveDeclarations: false +AlignConsecutiveMacros: false +AlignEscapedNewlines: DontAlign +AlignOperands: Align +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: false +AllowAllConstructorInitializersOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: false +AllowShortEnumsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: Inline +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: true +BinPackParameters: true +BraceWrapping: # If BreakBeforeBraces is set to Custom. + AfterCaseLabel: true + AfterClass: true + AfterControlStatement: Always + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: true + BeforeCatch: true + BeforeElse: true + BeforeLambdaBody: true + BeforeWhile: true + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: false +BreakBeforeBinaryOperators: NonAssignment +BreakBeforeBraces: Custom +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +BreakInheritanceList: BeforeComma +BreakStringLiterals: true +ColumnLimit: 80 +# CommentPragmas: 'regex' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DeriveLineEnding: true +DerivePointerAlignment: false +FixNamespaceComments: true +ForEachMacros: + - FOREACH + - RANGES_FOR + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Regroup +IncludeCategories: # stdlib headers into own group. + - Regex: '^[^\.]+$' + Priority: 4 +IndentCaseBlocks: false +IndentCaseLabels: false +IndentExternBlock: NoIndent +IndentGotoLabels: false +IndentPPDirectives: AfterHash +IndentWidth: 4 +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: true +# MacroBlockBegin: 'string' +# MacroBlockEnd: 'string' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +# NamespaceMacros: 'string' +PenaltyBreakAssignment: 250 +PenaltyBreakBeforeFirstCallParameter: 300 +# PenaltyBreakComment: 300 +# PenaltyBreakFirstLessLess: 120 +# PenaltyBreakString: 1000 +# PenaltyBreakTemplateDeclaration: 10 +# PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 100 +PointerAlignment: Right +# RawStringFormats: # +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +# StatementMacros: +# - Q_UNUSED +# - QT_REQUIRE_VERSION +TabWidth: 4 +# TypenameMacros: +# - STACK_OF +# - LIST +UseCRLF: false +UseTab: Never +# WhitespaceSensitiveMacros: ['string', 'string'] +... diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..fc14d6c --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,47 @@ +# -*- mode: conf; fill-column: 100; -*- +# Written for clang-tidy 11. + +--- +Checks: '*, + -cppcoreguidelines-non-private-member-variables-in-classes, + -fuchsia-default-arguments-calls, + -fuchsia-default-arguments-declarations, + -fuchsia-default-arguments, + -llvm-include-order, + -llvm-header-guard, + -misc-non-private-member-variables-in-classes, + -fuchsia-overloaded-operator, + -cppcoreguidelines-avoid-magic-numbers, + -readability-magic-numbers, + -cppcoreguidelines-pro-bounds-array-to-pointer-decay, + -hicpp-no-array-decay, + -modernize-avoid-c-arrays, + -cppcoreguidelines-avoid-c-arrays, + -hicpp-avoid-c-arrays, + -google-build-using-namespace, + -readability-named-parameter, + -google-runtime-references, + -hicpp-avoid-goto, + -hicpp-vararg, + -fuchsia-statically-constructed-objects, + -google-readability-todo, + -modernize-use-trailing-return-type, + -fuchsia-multiple-inheritance, + -llvmlibc*, + -cppcoreguidelines-avoid-non-const-global-variables, + -cert-*-c' +FormatStyle: file # Use .clang-format. +CheckOptions: # ↓ Clashes with static private member prefix. (static int _var;) ↓ + - { key: readability-identifier-naming.VariableCase, value: lower_case } + - { key: readability-identifier-naming.MemberCase, value: lower_case } + - { key: readability-identifier-naming.PrivateMemberCase, value: lower_case } + - { key: readability-identifier-naming.PrivateMemberPrefix, value: _ } + - { key: readability-identifier-naming.ProtectedMemberCase, value: lower_case } + - { key: readability-identifier-naming.ProtectedMemberPrefix, value: _ } + + - { key: readability-identifier-naming.ClassCase, value: lower_case } + - { key: readability-identifier-naming.StructCase, value: lower_case } + - { key: readability-identifier-naming.EnumCase, value: lower_case } + - { key: readability-identifier-naming.FunctionCase, value: lower_case } + - { key: readability-identifier-naming.ParameterCase, value: lower_case } +...