summaryrefslogtreecommitdiff
path: root/.clang-format
blob: c592dda681fecfaa6bf64fb3f539eafaf4123ed8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# 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