|  | # 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 | 
|  |  | 
|  | # While we do want to enforce a character limit of 80 characters, we often | 
|  | # allow lines to overflow that limit to prioritize readability. Setting a | 
|  | # character limit here with penalties has been finicky and creates too many | 
|  | # false positives. | 
|  | # | 
|  | # NEEDSWORK: It would be nice if we can find optimal settings to ensure we | 
|  | # can re-enable the limit here. | 
|  | ColumnLimit: 0 | 
|  |  | 
|  | # 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 consecutive macro definitions. | 
|  | AlignConsecutiveMacros: true | 
|  |  | 
|  | # 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 | 
|  |  | 
|  | # Add no space around the bit field | 
|  | # unsigned bf:2; | 
|  | BitFieldColonSpacing: None | 
|  |  | 
|  | # Attach braces to surrounding context except break before braces on function | 
|  | # definitions. | 
|  | # void foo() | 
|  | # { | 
|  | #    if (true) { | 
|  | #    } else { | 
|  | #    } | 
|  | # }; | 
|  | BreakBeforeBraces: Linux | 
|  |  | 
|  | # Break after operators | 
|  | # int value = 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 | 
|  |  | 
|  | # Indents directives before the hash. Each level uses a single space for | 
|  | # indentation. | 
|  | # #if FOO | 
|  | # # include <foo> | 
|  | # #endif | 
|  | IndentPPDirectives: AfterHash | 
|  | PPIndentWidth: 1 | 
|  |  | 
|  | # 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 | 
|  |  | 
|  | # No space is inserted after the logical not operator | 
|  | SpaceAfterLogicalNot: false | 
|  |  | 
|  | # Insert spaces before and after assignment operators | 
|  | # int a = 5;    not    int a=5; | 
|  | # a += 42;             a+=42; | 
|  | SpaceBeforeAssignmentOperators: true | 
|  |  | 
|  | # Spaces will be removed before case colon. | 
|  | # case 1: break;    not     case 1 : break; | 
|  | SpaceBeforeCaseColon: false | 
|  |  | 
|  | # Put a space before opening parentheses only after control statement keywords. | 
|  | # void f() { | 
|  | #   if (true) { | 
|  | #     f(); | 
|  | #   } | 
|  | # } | 
|  | SpaceBeforeParens: ControlStatementsExceptControlMacros | 
|  |  | 
|  | # Don't insert spaces inside empty '()' | 
|  | SpaceInEmptyParentheses: false | 
|  |  | 
|  | # No space before first '[' in arrays | 
|  | # int a[5][5];     not      int a [5][5]; | 
|  | SpaceBeforeSquareBrackets: false | 
|  |  | 
|  | # No space will be inserted into {} | 
|  | # while (true) {}    not    while (true) { } | 
|  | SpaceInEmptyBlock: 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 /  - '/; s/(.*$/'/" | sort | uniq | 
|  | ForEachMacros: | 
|  | - 'for_each_builtin' | 
|  | - 'for_each_string_list_item' | 
|  | - 'for_each_ut' | 
|  | - 'for_each_wanted_builtin' | 
|  | - 'hashmap_for_each_entry' | 
|  | - 'hashmap_for_each_entry_from' | 
|  | - 'kh_foreach' | 
|  | - 'kh_foreach_value' | 
|  | - 'list_for_each' | 
|  | - 'list_for_each_dir' | 
|  | - 'list_for_each_prev' | 
|  | - 'list_for_each_prev_safe' | 
|  | - 'list_for_each_safe' | 
|  | - 'strintmap_for_each_entry' | 
|  | - 'strmap_for_each_entry' | 
|  | - 'strset_for_each_entry' | 
|  |  | 
|  | # A list of macros that should be interpreted as conditionals instead of as | 
|  | # function calls. | 
|  | IfMacros: | 
|  | - 'if_test' | 
|  |  | 
|  | # The maximum number of consecutive empty lines to keep. | 
|  | MaxEmptyLinesToKeep: 1 | 
|  |  | 
|  | # No empty line at the start of a block. | 
|  | KeepEmptyLinesAtTheStartOfBlocks: false | 
|  |  | 
|  | # Don't sort #include's | 
|  | SortIncludes: false | 
|  |  | 
|  | # Remove optional braces of control statements (if, else, for, and while) | 
|  | # according to the LLVM coding style. This avoids braces on simple | 
|  | # single-statement bodies of statements but keeps braces if one side of | 
|  | # if/else if/.../else cascade has multi-statement body. | 
|  | RemoveBracesLLVM: true |