Skip to content

Commit 79c67e6

Browse files
committed
Adopt style(9) using clang-format
This commit adopts FreeBSD's style(9). This file is retrieved from https://github.com/freebsd/freebsd-src/blob/main/.clang-format. Contributers can apply this style on modified files in future changes.
1 parent 8f8eaef commit 79c67e6

File tree

1 file changed

+197
-0
lines changed

1 file changed

+197
-0
lines changed

.clang-format

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
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

0 commit comments

Comments
 (0)