1# This file is an example configuration for clang-format 5.0. 2# 3# Note that this style definition should only be understood as a hint 4# for writing new code. The rules are still work-in-progress and does 5# not yet exactly match the style we have in the existing code. 6 7# Use tabs whenever we need to fill whitespace that spans at least from one tab 8# stop to the next one. 9# 10# These settings are mirrored in .editorconfig. Keep them in sync. 11UseTab: Always 12TabWidth: 8 13IndentWidth: 8 14ContinuationIndentWidth: 8 15ColumnLimit: 80 16 17# C Language specifics 18Language: Cpp 19 20# Align parameters on the open bracket 21# someLongFunction(argument1, 22# argument2); 23AlignAfterOpenBracket: Align 24 25# Don't align consecutive assignments 26# int aaaa = 12; 27# int b = 14; 28AlignConsecutiveAssignments: false 29 30# Don't align consecutive declarations 31# int aaaa = 12; 32# double b = 3.14; 33AlignConsecutiveDeclarations: false 34 35# Align escaped newlines as far left as possible 36# #define A \ 37# int aaaa; \ 38# int b; \ 39# int cccccccc; 40AlignEscapedNewlines: Left 41 42# Align operands of binary and ternary expressions 43# int aaa = bbbbbbbbbbb + 44# cccccc; 45AlignOperands: true 46 47# Don't align trailing comments 48# int a; // Comment a 49# int b = 2; // Comment b 50AlignTrailingComments: false 51 52# By default don't allow putting parameters onto the next line 53# myFunction(foo, bar, baz); 54AllowAllParametersOfDeclarationOnNextLine: false 55 56# Don't allow short braced statements to be on a single line 57# if (a) not if (a) return; 58# return; 59AllowShortBlocksOnASingleLine: false 60AllowShortCaseLabelsOnASingleLine: false 61AllowShortFunctionsOnASingleLine: false 62AllowShortIfStatementsOnASingleLine: false 63AllowShortLoopsOnASingleLine: false 64 65# By default don't add a line break after the return type of top-level functions 66# int foo(); 67AlwaysBreakAfterReturnType: None 68 69# Pack as many parameters or arguments onto the same line as possible 70# int myFunction(int aaaaaaaaaaaa, int bbbbbbbb, 71# int cccc); 72BinPackArguments: true 73BinPackParameters: true 74 75# Attach braces to surrounding context except break before braces on function 76# definitions. 77# void foo() 78# { 79# if (true) { 80# } else { 81# } 82# }; 83BreakBeforeBraces: Linux 84 85# Break after operators 86# int valuve = aaaaaaaaaaaaa + 87# bbbbbb - 88# ccccccccccc; 89BreakBeforeBinaryOperators: None 90BreakBeforeTernaryOperators: false 91 92# Don't break string literals 93BreakStringLiterals: false 94 95# Use the same indentation level as for the switch statement. 96# Switch statement body is always indented one level more than case labels. 97IndentCaseLabels: false 98 99# Don't indent a function definition or declaration if it is wrapped after the 100# type 101IndentWrappedFunctionNames: false 102 103# Align pointer to the right 104# int *a; 105PointerAlignment: Right 106 107# Don't insert a space after a cast 108# x = (int32)y; not x = (int32) y; 109SpaceAfterCStyleCast: false 110 111# Insert spaces before and after assignment operators 112# int a = 5; not int a=5; 113# a += 42; a+=42; 114SpaceBeforeAssignmentOperators: true 115 116# Put a space before opening parentheses only after control statement keywords. 117# void f() { 118# if (true) { 119# f(); 120# } 121# } 122SpaceBeforeParens: ControlStatements 123 124# Don't insert spaces inside empty '()' 125SpaceInEmptyParentheses: false 126 127# The number of spaces before trailing line comments (// - comments). 128# This does not affect trailing block comments (/* - comments). 129SpacesBeforeTrailingComments: 1 130 131# Don't insert spaces in casts 132# x = (int32) y; not x = ( int32 ) y; 133SpacesInCStyleCastParentheses: false 134 135# Don't insert spaces inside container literals 136# var arr = [1, 2, 3]; not var arr = [ 1, 2, 3 ]; 137SpacesInContainerLiterals: false 138 139# Don't insert spaces after '(' or before ')' 140# f(arg); not f( arg ); 141SpacesInParentheses: false 142 143# Don't insert spaces after '[' or before ']' 144# int a[5]; not int a[ 5 ]; 145SpacesInSquareBrackets: false 146 147# Insert a space after '{' and before '}' in struct initializers 148Cpp11BracedListStyle: false 149 150# A list of macros that should be interpreted as foreach loops instead of as 151# function calls. 152ForEachMacros: ['for_each_string_list_item'] 153 154# The maximum number of consecutive empty lines to keep. 155MaxEmptyLinesToKeep: 1 156 157# No empty line at the start of a block. 158KeepEmptyLinesAtTheStartOfBlocks: false 159 160# Penalties 161# This decides what order things should be done if a line is too long 162PenaltyBreakAssignment: 10 163PenaltyBreakBeforeFirstCallParameter: 30 164PenaltyBreakComment: 10 165PenaltyBreakFirstLessLess: 0 166PenaltyBreakString: 10 167PenaltyExcessCharacter: 100 168PenaltyReturnTypeOnItsOwnLine: 60 169 170# Don't sort #include's 171SortIncludes: false