.clang-format (2c18289b72c8594bb5dbe22d54ff3434a56ec6c6) .clang-format (cd024ff37bc5950173e4c7f34f7259d85825e810)
1# Basic .clang-format
2---
3BasedOnStyle: WebKit
4AlignAfterOpenBracket: DontAlign
5AlignConsecutiveMacros: AcrossEmptyLines
6AlignConsecutiveAssignments: false
7AlignConsecutiveDeclarations: false
8AlignEscapedNewlines: Left
9AlignOperands: false
10AlignTrailingComments: true
11AllowAllArgumentsOnNextLine: false
12AllowAllParametersOfDeclarationOnNextLine: false
13AllowShortBlocksOnASingleLine: Never
14AllowShortCaseLabelsOnASingleLine: false
15AllowShortFunctionsOnASingleLine: InlineOnly
16AllowShortIfStatementsOnASingleLine: Never
17AllowShortLoopsOnASingleLine: false
18AlwaysBreakAfterReturnType: TopLevelDefinitions
19AlwaysBreakBeforeMultilineStrings: false
20AlwaysBreakTemplateDeclarations: MultiLine
21BinPackArguments: true
22BinPackParameters: true
23BreakBeforeBinaryOperators: None
24BreakBeforeBraces: WebKit
25BreakBeforeTernaryOperators: false
26# TODO: BreakStringLiterals can cause very strange formatting so turn it off?
27BreakStringLiterals: false
28# Prefer:
29# some_var = function(arg1,
30# arg2)
31# over:
32# some_var =
33# function(arg1, arg2)
34PenaltyBreakAssignment: 100
35# Prefer:
36# some_long_function(arg1, arg2
37# arg3)
38# over:
39# some_long_function(
40# arg1, arg2, arg3)
41PenaltyBreakBeforeFirstCallParameter: 100
42CompactNamespaces: true
43DerivePointerAlignment: false
44DisableFormat: false
45ForEachMacros:
46 - ARB_ARRFOREACH
47 - ARB_ARRFOREACH_REVWCOND
48 - ARB_ARRFOREACH_REVERSE
49 - ARB_FOREACH
50 - ARB_FOREACH_FROM
51 - ARB_FOREACH_SAFE
52 - ARB_FOREACH_REVERSE
53 - ARB_FOREACH_REVERSE_FROM
54 - ARB_FOREACH_REVERSE_SAFE
55 - BIT_FOREACH_ISCLR
56 - BIT_FOREACH_ISSET
57 - CPU_FOREACH
58 - CPU_FOREACH_ISCLR
59 - CPU_FOREACH_ISSET
60 - FOREACH_THREAD_IN_PROC
61 - FOREACH_PROC_IN_SYSTEM
62 - FOREACH_PRISON_CHILD
63 - FOREACH_PRISON_DESCENDANT
64 - FOREACH_PRISON_DESCENDANT_LOCKED
65 - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL
66 - MNT_VNODE_FOREACH_ALL
67 - MNT_VNODE_FOREACH_ACTIVE
68 - RB_FOREACH
69 - RB_FOREACH_FROM
70 - RB_FOREACH_SAFE
71 - RB_FOREACH_REVERSE
72 - RB_FOREACH_REVERSE_FROM
73 - RB_FOREACH_REVERSE_SAFE
74 - SLIST_FOREACH
75 - SLIST_FOREACH_FROM
76 - SLIST_FOREACH_FROM_SAFE
77 - SLIST_FOREACH_SAFE
78 - SLIST_FOREACH_PREVPTR
79 - SPLAY_FOREACH
80 - LIST_FOREACH
81 - LIST_FOREACH_FROM
82 - LIST_FOREACH_FROM_SAFE
83 - LIST_FOREACH_SAFE
84 - STAILQ_FOREACH
85 - STAILQ_FOREACH_FROM
86 - STAILQ_FOREACH_FROM_SAFE
87 - STAILQ_FOREACH_SAFE
88 - TAILQ_FOREACH
89 - TAILQ_FOREACH_FROM
90 - TAILQ_FOREACH_FROM_SAFE
91 - TAILQ_FOREACH_REVERSE
92 - TAILQ_FOREACH_REVERSE_FROM
93 - TAILQ_FOREACH_REVERSE_FROM_SAFE
94 - TAILQ_FOREACH_REVERSE_SAFE
95 - TAILQ_FOREACH_SAFE
96 - VM_MAP_ENTRY_FOREACH
97 - VM_PAGE_DUMP_FOREACH
98SpaceBeforeParens: ControlStatementsExceptForEachMacros
99IndentCaseLabels: false
100IndentPPDirectives: None
101Language: Cpp
102NamespaceIndentation: None
103PointerAlignment: Right
104ContinuationIndentWidth: 4
105IndentWidth: 8
106TabWidth: 8
107ColumnLimit: 80
108UseTab: Always
109SpaceAfterCStyleCast: false
110IncludeBlocks: Regroup
111IncludeCategories:
112 - Regex: '^\"opt_.*\.h\"'
113 Priority: 1
114 SortPriority: 10
115 - Regex: '^<sys/cdefs\.h>'
116 Priority: 2
117 SortPriority: 20
118 - Regex: '^<sys/types\.h>'
119 Priority: 2
120 SortPriority: 21
121 - Regex: '^<sys/param\.h>'
122 Priority: 2
123 SortPriority: 22
124 - Regex: '^<sys/systm\.h>'
125 Priority: 2
126 SortPriority: 23
127 - Regex: '^<sys.*/'
128 Priority: 2
129 SortPriority: 24
130 - Regex: '^<vm/vm\.h>'
131 Priority: 3
132 SortPriority: 30
133 - Regex: '^<vm/'
134 Priority: 3
135 SortPriority: 31
136 - Regex: '^<machine/'
137 Priority: 4
138 SortPriority: 40
139 - Regex: '^<(x86|amd64|i386|xen)/'
140 Priority: 5
141 SortPriority: 50
142 - Regex: '^<dev/'
143 Priority: 6
144 SortPriority: 60
145 - Regex: '^<net.*/'
146 Priority: 7
147 SortPriority: 70
148 - Regex: '^<protocols/'
149 Priority: 7
150 SortPriority: 71
151 - Regex: '^<(fs|nfs(|client|server)|ufs)/'
152 Priority: 8
153 SortPriority: 80
154 - Regex: '^<[^/].*\.h'
155 Priority: 9
156 SortPriority: 90
157 - Regex: '^\".*\.h\"'
158 Priority: 10
159 SortPriority: 100
160# LLVM's header include ordering style is almost the exact opposite of ours.
161# Unfortunately, they have hard-coded their preferences into clang-format.
162# Clobbering this regular expression to avoid matching prevents non-system
163# headers from being forcibly moved to the top of the include list.
164# http://llvm.org/docs/CodingStandards.html#include-style
165IncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING'
166SortIncludes: true
167KeepEmptyLinesAtTheStartOfBlocks: false
168TypenameMacros:
169 - ARB_ELMTYPE
170 - ARB_HEAD
171 - ARB8_HEAD
172 - ARB16_HEAD
173 - ARB32_HEAD
174 - ARB_ENTRY
175 - ARB8_ENTRY
176 - ARB16_ENTRY
177 - ARB32_ENTRY
178 - LIST_CLASS_ENTRY
179 - LIST_CLASS_HEAD
180 - LIST_ENTRY
181 - LIST_HEAD
182 - QUEUE_TYPEOF
183 - RB_ENTRY
184 - RB_HEAD
185 - SLIST_CLASS_HEAD
186 - SLIST_CLASS_ENTRY
187 - SLIST_HEAD
188 - SLIST_ENTRY
189 - SMR_POINTER
190 - SPLAY_ENTRY
191 - SPLAY_HEAD
192 - STAILQ_CLASS_ENTRY
193 - STAILQ_CLASS_HEAD
194 - STAILQ_ENTRY
195 - STAILQ_HEAD
196 - TAILQ_CLASS_ENTRY
197 - TAILQ_CLASS_HEAD
198 - TAILQ_ENTRY
199 - TAILQ_HEAD
1# Run manually to reformat a file:
2# clang-format -i --style=file <file>
3Language: Cpp
4BasedOnStyle: Google