diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000000..929b9a60559 --- /dev/null +++ b/.clang-format @@ -0,0 +1,65 @@ +--- +# Language +Language: Cpp +Standard: Cpp11 + +# Identation +TabWidth: 8 +UseTab: Always +IndentWidth: 8 +ColumnLimit: 80 + +# Identation detail +AlignAfterOpenBracket: DontAlign +ContinuationIndentWidth: 8 +BreakConstructorInitializers: AfterColon +ConstructorInitializerIndentWidth: 8 +ConstructorInitializerAllOnOneLineOrOnePerLine: false +BinPackParameters: true +BinPackArguments: false +AlignOperands: false +AlignEscapedNewlines: DontAlign +AccessModifierOffset: -8 + +# Includes +IncludeBlocks: Regroup +IncludeCategories: + # the "main header" iplicitly gets priority 0 + # system headers + - Regex: '^<[^>]+>$' + Priority: 1 + # non-system headers + - Regex: '.*' + Priority: 2 +SortIncludes: true + +# Spaces +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpacesInAngles: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false + +# Brace wrapping +# Not directly mentioned in the coding conventions, +# but required to avoid tons of auto reformatting +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: true + AfterControlStatement: true + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: true + BeforeCatch: true + BeforeElse: true + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true + + +... + diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 00000000000..5e2e245f7a8 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,33 @@ +--- +Checks: 'readability-identifier-naming,readability-misleading-indentation,readability-simplify-boolean-expr,readability-braces-around-statements,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects' +WarningsAsErrors: '' +HeaderFilterRegex: '' # don't show errors from headers +AnalyzeTemporaryDtors: false +FormatStyle: none +User: user +CheckOptions: + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.EnumCase + value: CamelCase + - key: readability-identifier-naming.TypedefCase + value: CamelCase + - key: readability-identifier-naming.UnionCase + value: CamelCase + - key: readability-identifier-naming.StructCase + value: CamelCase + - key: readability-identifier-naming.UnionCase + value: CamelCase +# not yet working, as it currently applies both for static and object members +# - key: readability-identifier-naming.MemberPrefix +# value: 'm_' + # currently only working for local static variables: + - key: readability-identifier-naming.StaticVariablePrefix + value: 's_' +# not yet working +# - key: readability-identifier-naming.VariableCase +# value: camelBack + - key: readability-identifier-naming.FunctionCase + value: camelBack +... +