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