# This file is an example configuration for clang-format 5.0. # # Note that this style definition should only be understood as a hint # for writing new code. The rules are still work-in-progress and does # not yet exactly match the style we have in the existing code. # Use tabs whenever we need to fill whitespace that spans at least from one tab # stop to the next one. # # These settings are mirrored in .editorconfig. Keep them in sync. UseTab: Always TabWidth: 8 IndentWidth: 8 ContinuationIndentWidth: 8 ColumnLimit: 80 # C Language specifics Language: Cpp # Align parameters on the open bracket # someLongFunction(argument1, # argument2); AlignAfterOpenBracket: Align # Don't align consecutive assignments # int aaaa = 12; # int b = 14; AlignConsecutiveAssignments: false # Don't align consecutive declarations # int aaaa = 12; # double b = 3.14; AlignConsecutiveDeclarations: false # Align escaped newlines as far left as possible # #define A \ # int aaaa; \ # int b; \ # int cccccccc; AlignEscapedNewlines: Left # Align operands of binary and ternary expressions # int aaa = bbbbbbbbbbb + # cccccc; AlignOperands: true # Don't align trailing comments # int a; // Comment a # int b = 2; // Comment b AlignTrailingComments: false # By default don't allow putting parameters onto the next line # myFunction(foo, bar, baz); AllowAllParametersOfDeclarationOnNextLine: false # Don't allow short braced statements to be on a single line # if (a) not if (a) return; # return; AllowShortBlocksOnASingleLine: false AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false # By default don't add a line break after the return type of top-level functions # int foo(); AlwaysBreakAfterReturnType: None # Pack as many parameters or arguments onto the same line as possible # int myFunction(int aaaaaaaaaaaa, int bbbbbbbb, # int cccc); BinPackArguments: true BinPackParameters: true # Attach braces to surrounding context except break before braces on function # definitions. # void foo() # { # if (true) { # } else { # } # }; BreakBeforeBraces: Linux # Break after operators # int valuve = aaaaaaaaaaaaa + # bbbbbb - # ccccccccccc; BreakBeforeBinaryOperators: None BreakBeforeTernaryOperators: false # Don't break string literals BreakStringLiterals: false # Use the same indentation level as for the switch statement. # Switch statement body is always indented one level more than case labels. IndentCaseLabels: false # Don't indent a function definition or declaration if it is wrapped after the # type IndentWrappedFunctionNames: false # Align pointer to the right # int *a; PointerAlignment: Right # Don't insert a space after a cast # x = (int32)y; not x = (int32) y; SpaceAfterCStyleCast: false # Insert spaces before and after assignment operators # int a = 5; not int a=5; # a += 42; a+=42; SpaceBeforeAssignmentOperators: true # Put a space before opening parentheses only after control statement keywords. # void f() { # if (true) { # f(); # } # } SpaceBeforeParens: ControlStatements # Don't insert spaces inside empty '()' SpaceInEmptyParentheses: false # The number of spaces before trailing line comments (// - comments). # This does not affect trailing block comments (/* - comments). SpacesBeforeTrailingComments: 1 # Don't insert spaces in casts # x = (int32) y; not x = ( int32 ) y; SpacesInCStyleCastParentheses: false # Don't insert spaces inside container literals # var arr = [1, 2, 3]; not var arr = [ 1, 2, 3 ]; SpacesInContainerLiterals: false # Don't insert spaces after '(' or before ')' # f(arg); not f( arg ); SpacesInParentheses: false # Don't insert spaces after '[' or before ']' # int a[5]; not int a[ 5 ]; SpacesInSquareBrackets: false # Insert a space after '{' and before '}' in struct initializers Cpp11BracedListStyle: false # A list of macros that should be interpreted as foreach loops instead of as # function calls. Taken from: # git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' \ # | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \ # | sort | uniq ForEachMacros: - 'for_each_abbrev' - 'for_each_builtin' - 'for_each_string_list_item' - 'for_each_ut' - 'for_each_wanted_builtin' - 'list_for_each' - 'list_for_each_dir' - 'list_for_each_prev' - 'list_for_each_prev_safe' - 'list_for_each_safe' # The maximum number of consecutive empty lines to keep. MaxEmptyLinesToKeep: 1 # No empty line at the start of a block. KeepEmptyLinesAtTheStartOfBlocks: false # Penalties # This decides what order things should be done if a line is too long PenaltyBreakAssignment: 10 PenaltyBreakBeforeFirstCallParameter: 30 PenaltyBreakComment: 10 PenaltyBreakFirstLessLess: 0 PenaltyBreakString: 10 PenaltyExcessCharacter: 100 PenaltyReturnTypeOnItsOwnLine: 60 # Don't sort #include's SortIncludes: false