]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - .clang-format
Update .clang-format with style(9) header-sorting
[FreeBSD/FreeBSD.git] / .clang-format
1 # $FreeBSD$
2 # Basic .clang-format
3 ---
4 BasedOnStyle: WebKit
5 AlignAfterOpenBracket: DontAlign
6 AlignConsecutiveAssignments: false
7 AlignConsecutiveDeclarations: false
8 AlignEscapedNewlines: Left
9 AlignOperands: false
10 AlignTrailingComments: false
11 AllowAllParametersOfDeclarationOnNextLine: false
12 AllowShortBlocksOnASingleLine: false
13 AllowShortCaseLabelsOnASingleLine: false
14 AllowShortFunctionsOnASingleLine: InlineOnly
15 AllowShortIfStatementsOnASingleLine: false
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 PenaltyBreakBeforeFirstCallParameter: 1000
28 CompactNamespaces: true
29 DerivePointerAlignment: false
30 DisableFormat: false
31 ForEachMacros:
32   - SLIST_FOREACH
33   - SLIST_FOREACH_SAFE
34   - LIST_FOREACH
35   - LIST_FOREACH_SAFE
36   - STAILQ_FOREACH
37   - STAILQ_FOREACH_SAFE
38   - TAILQ_FOREACH
39   - TAILQ_FOREACH_SAFE
40   - TAILQ_FOREACH_REVERSE
41   - TAILQ_FOREACH_REVERSE_SAFE
42   - RB_FOREACH
43   - RB_FOREACH_SAFE
44   - RB_FOREACH_FROM
45   - RB_FOREACH_REVERSE
46   - RB_FOREACH_REVERSE_FROM
47   - RB_FOREACH_REVERSE_SAFE
48   - FOREACH_THREAD_IN_PROC
49   - FOREACH_PROC_IN_SYSTEM
50   - FOREACH_PRISON_CHILD
51   - FOREACH_PRISON_DESCENDANT
52   - FOREACH_PRISON_DESCENDANT_LOCKED
53   - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL
54   - MNT_VNODE_FOREACH_ALL
55   - MNT_VNODE_FOREACH_ACTIVE
56 IndentCaseLabels: false
57 IndentPPDirectives: None
58 Language: Cpp
59 NamespaceIndentation: None
60 PointerAlignment: Right
61 ContinuationIndentWidth: 4
62 IndentWidth: 8
63 TabWidth: 8
64 ColumnLimit: 80
65 UseTab: Always
66 SpaceAfterCStyleCast: false
67 IncludeBlocks: Regroup
68 IncludeCategories:
69   - Regex: '^\"opt_.*\.h\"'
70     Priority: 1
71     SortPriority: 10
72   - Regex: '^<sys/cdefs\.h>'
73     Priority: 2
74     SortPriority: 20
75   - Regex: '^<sys/types\.h>'
76     Priority: 2
77     SortPriority: 21
78   - Regex: '^<sys/param\.h>'
79     Priority: 2
80     SortPriority: 22
81   - Regex: '^<sys.*/'
82     Priority: 2
83     SortPriority: 23
84   - Regex: '^<vm/vm\.h>'
85     Priority: 3
86     SortPriority: 30
87   - Regex: '^<vm/'
88     Priority: 3
89     SortPriority: 31
90   - Regex: '^<machine/'
91     Priority: 4
92     SortPriority: 40
93   - Regex: '^<(x86|amd64|i386|xen)/'
94     Priority: 5
95     SortPriority: 50
96   - Regex: '^<dev/'
97     Priority: 6
98     SortPriority: 60
99   - Regex: '^<net.*/'
100     Priority: 7
101     SortPriority: 70
102   - Regex: '^<protocols/'
103     Priority: 7
104     SortPriority: 71
105   - Regex: '^<(fs|nfs(|client|server)|ufs)/'
106     Priority: 8
107     SortPriority: 80
108   - Regex: '^<[^/].*\.h'
109     Priority: 9
110     SortPriority: 90
111   - Regex: '^\".*\.h\"'
112     Priority: 10
113     SortPriority: 100
114 SortIncludes: true
115 KeepEmptyLinesAtTheStartOfBlocks: true
116 # The options below will only be supported starting with clang 9.0:
117 # TODO-CLANG-9: TypenameMacros:
118 # TODO-CLANG-9:   - SLIST_HEAD
119 # TODO-CLANG-9:   - SLIST_ENTRY
120 # TODO-CLANG-9:   - TAILQ_ENTRY
121 # TODO-CLANG-9:   - TAILQ_HEAD
122 # TODO-CLANG-9:   - STAILQ_ENTRY
123 # TODO-CLANG-9:   - STAILQ_HEAD
124 ...