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