xref: /freebsd/.clang-format (revision 2c18289b)
1b0f20f11SAlex Richardson# Basic .clang-format
2b0f20f11SAlex Richardson---
3b0f20f11SAlex RichardsonBasedOnStyle: WebKit
4b0f20f11SAlex RichardsonAlignAfterOpenBracket: DontAlign
5*2c18289bSMark JohnstonAlignConsecutiveMacros: AcrossEmptyLines
6b0f20f11SAlex RichardsonAlignConsecutiveAssignments: false
7b0f20f11SAlex RichardsonAlignConsecutiveDeclarations: false
8b0f20f11SAlex RichardsonAlignEscapedNewlines: Left
9b0f20f11SAlex RichardsonAlignOperands: false
1022a39a89SAlex RichardsonAlignTrailingComments: true
1171167bd5SAlex RichardsonAllowAllArgumentsOnNextLine: false
12b0f20f11SAlex RichardsonAllowAllParametersOfDeclarationOnNextLine: false
138efceeb6SAlex RichardsonAllowShortBlocksOnASingleLine: Never
14b0f20f11SAlex RichardsonAllowShortCaseLabelsOnASingleLine: false
15b0f20f11SAlex RichardsonAllowShortFunctionsOnASingleLine: InlineOnly
168efceeb6SAlex RichardsonAllowShortIfStatementsOnASingleLine: Never
17b0f20f11SAlex RichardsonAllowShortLoopsOnASingleLine: false
18b0f20f11SAlex RichardsonAlwaysBreakAfterReturnType: TopLevelDefinitions
19b0f20f11SAlex RichardsonAlwaysBreakBeforeMultilineStrings: false
20b0f20f11SAlex RichardsonAlwaysBreakTemplateDeclarations: MultiLine
21b0f20f11SAlex RichardsonBinPackArguments: true
22b0f20f11SAlex RichardsonBinPackParameters: true
23b0f20f11SAlex RichardsonBreakBeforeBinaryOperators: None
24b0f20f11SAlex RichardsonBreakBeforeBraces: WebKit
25b0f20f11SAlex RichardsonBreakBeforeTernaryOperators: false
26b0f20f11SAlex Richardson# TODO: BreakStringLiterals can cause very strange formatting so turn it off?
27b0f20f11SAlex RichardsonBreakStringLiterals: false
2871167bd5SAlex Richardson# Prefer:
2971167bd5SAlex Richardson# some_var = function(arg1,
3071167bd5SAlex Richardson#    arg2)
3171167bd5SAlex Richardson# over:
3271167bd5SAlex Richardson# some_var =
3371167bd5SAlex Richardson#     function(arg1, arg2)
3471167bd5SAlex RichardsonPenaltyBreakAssignment: 100
3571167bd5SAlex Richardson# Prefer:
3671167bd5SAlex Richardson# some_long_function(arg1, arg2
3771167bd5SAlex Richardson#     arg3)
3871167bd5SAlex Richardson# over:
3971167bd5SAlex Richardson# some_long_function(
4071167bd5SAlex Richardson#     arg1, arg2, arg3)
4171167bd5SAlex RichardsonPenaltyBreakBeforeFirstCallParameter: 100
42b0f20f11SAlex RichardsonCompactNamespaces: true
43b0f20f11SAlex RichardsonDerivePointerAlignment: false
44b0f20f11SAlex RichardsonDisableFormat: false
45b0f20f11SAlex RichardsonForEachMacros:
469e8fd9d8SConrad Meyer  - ARB_ARRFOREACH
479e8fd9d8SConrad Meyer  - ARB_ARRFOREACH_REVWCOND
489e8fd9d8SConrad Meyer  - ARB_ARRFOREACH_REVERSE
499e8fd9d8SConrad Meyer  - ARB_FOREACH
509e8fd9d8SConrad Meyer  - ARB_FOREACH_FROM
519e8fd9d8SConrad Meyer  - ARB_FOREACH_SAFE
529e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE
539e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE_FROM
549e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE_SAFE
55a3e3d908SMark Johnston  - BIT_FOREACH_ISCLR
56a3e3d908SMark Johnston  - BIT_FOREACH_ISSET
579e8fd9d8SConrad Meyer  - CPU_FOREACH
58a3e3d908SMark Johnston  - CPU_FOREACH_ISCLR
59a3e3d908SMark Johnston  - CPU_FOREACH_ISSET
60b0f20f11SAlex Richardson  - FOREACH_THREAD_IN_PROC
61b0f20f11SAlex Richardson  - FOREACH_PROC_IN_SYSTEM
62b0f20f11SAlex Richardson  - FOREACH_PRISON_CHILD
63b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT
64b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT_LOCKED
65b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL
66b0f20f11SAlex Richardson  - MNT_VNODE_FOREACH_ALL
67b0f20f11SAlex Richardson  - MNT_VNODE_FOREACH_ACTIVE
689e8fd9d8SConrad Meyer  - RB_FOREACH
699e8fd9d8SConrad Meyer  - RB_FOREACH_FROM
709e8fd9d8SConrad Meyer  - RB_FOREACH_SAFE
719e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE
729e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE_FROM
739e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE_SAFE
749e8fd9d8SConrad Meyer  - SLIST_FOREACH
759e8fd9d8SConrad Meyer  - SLIST_FOREACH_FROM
769e8fd9d8SConrad Meyer  - SLIST_FOREACH_FROM_SAFE
779e8fd9d8SConrad Meyer  - SLIST_FOREACH_SAFE
789e8fd9d8SConrad Meyer  - SLIST_FOREACH_PREVPTR
799e8fd9d8SConrad Meyer  - SPLAY_FOREACH
809e8fd9d8SConrad Meyer  - LIST_FOREACH
819e8fd9d8SConrad Meyer  - LIST_FOREACH_FROM
829e8fd9d8SConrad Meyer  - LIST_FOREACH_FROM_SAFE
839e8fd9d8SConrad Meyer  - LIST_FOREACH_SAFE
849e8fd9d8SConrad Meyer  - STAILQ_FOREACH
859e8fd9d8SConrad Meyer  - STAILQ_FOREACH_FROM
869e8fd9d8SConrad Meyer  - STAILQ_FOREACH_FROM_SAFE
879e8fd9d8SConrad Meyer  - STAILQ_FOREACH_SAFE
889e8fd9d8SConrad Meyer  - TAILQ_FOREACH
899e8fd9d8SConrad Meyer  - TAILQ_FOREACH_FROM
909e8fd9d8SConrad Meyer  - TAILQ_FOREACH_FROM_SAFE
919e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE
929e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_FROM
939e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_FROM_SAFE
949e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_SAFE
959e8fd9d8SConrad Meyer  - TAILQ_FOREACH_SAFE
969e8fd9d8SConrad Meyer  - VM_MAP_ENTRY_FOREACH
97ab041f71SD Scott Phillips  - VM_PAGE_DUMP_FOREACH
98*2c18289bSMark JohnstonSpaceBeforeParens: ControlStatementsExceptForEachMacros
99b0f20f11SAlex RichardsonIndentCaseLabels: false
100b0f20f11SAlex RichardsonIndentPPDirectives: None
101b0f20f11SAlex RichardsonLanguage: Cpp
102b0f20f11SAlex RichardsonNamespaceIndentation: None
103b0f20f11SAlex RichardsonPointerAlignment: Right
104b0f20f11SAlex RichardsonContinuationIndentWidth: 4
105b0f20f11SAlex RichardsonIndentWidth: 8
106b0f20f11SAlex RichardsonTabWidth: 8
107b0f20f11SAlex RichardsonColumnLimit: 80
108b0f20f11SAlex RichardsonUseTab: Always
109b0f20f11SAlex RichardsonSpaceAfterCStyleCast: false
110e59d5d14SConrad MeyerIncludeBlocks: Regroup
111e59d5d14SConrad MeyerIncludeCategories:
112e59d5d14SConrad Meyer  - Regex: '^\"opt_.*\.h\"'
113e59d5d14SConrad Meyer    Priority: 1
114e59d5d14SConrad Meyer    SortPriority: 10
115e59d5d14SConrad Meyer  - Regex: '^<sys/cdefs\.h>'
116e59d5d14SConrad Meyer    Priority: 2
117e59d5d14SConrad Meyer    SortPriority: 20
118e59d5d14SConrad Meyer  - Regex: '^<sys/types\.h>'
119e59d5d14SConrad Meyer    Priority: 2
120e59d5d14SConrad Meyer    SortPriority: 21
121e59d5d14SConrad Meyer  - Regex: '^<sys/param\.h>'
122e59d5d14SConrad Meyer    Priority: 2
123e59d5d14SConrad Meyer    SortPriority: 22
124453d775bSAlex Richardson  - Regex: '^<sys/systm\.h>'
125e59d5d14SConrad Meyer    Priority: 2
126e59d5d14SConrad Meyer    SortPriority: 23
127453d775bSAlex Richardson  - Regex: '^<sys.*/'
128453d775bSAlex Richardson    Priority: 2
129453d775bSAlex Richardson    SortPriority: 24
130e59d5d14SConrad Meyer  - Regex: '^<vm/vm\.h>'
131e59d5d14SConrad Meyer    Priority: 3
132e59d5d14SConrad Meyer    SortPriority: 30
133e59d5d14SConrad Meyer  - Regex: '^<vm/'
134e59d5d14SConrad Meyer    Priority: 3
135e59d5d14SConrad Meyer    SortPriority: 31
136e59d5d14SConrad Meyer  - Regex: '^<machine/'
137e59d5d14SConrad Meyer    Priority: 4
138e59d5d14SConrad Meyer    SortPriority: 40
139e59d5d14SConrad Meyer  - Regex: '^<(x86|amd64|i386|xen)/'
140e59d5d14SConrad Meyer    Priority: 5
141e59d5d14SConrad Meyer    SortPriority: 50
142e59d5d14SConrad Meyer  - Regex: '^<dev/'
143e59d5d14SConrad Meyer    Priority: 6
144e59d5d14SConrad Meyer    SortPriority: 60
145e59d5d14SConrad Meyer  - Regex: '^<net.*/'
146e59d5d14SConrad Meyer    Priority: 7
147e59d5d14SConrad Meyer    SortPriority: 70
148e59d5d14SConrad Meyer  - Regex: '^<protocols/'
149e59d5d14SConrad Meyer    Priority: 7
150e59d5d14SConrad Meyer    SortPriority: 71
151e59d5d14SConrad Meyer  - Regex: '^<(fs|nfs(|client|server)|ufs)/'
152e59d5d14SConrad Meyer    Priority: 8
153e59d5d14SConrad Meyer    SortPriority: 80
154e59d5d14SConrad Meyer  - Regex: '^<[^/].*\.h'
155e59d5d14SConrad Meyer    Priority: 9
156e59d5d14SConrad Meyer    SortPriority: 90
157e59d5d14SConrad Meyer  - Regex: '^\".*\.h\"'
158e59d5d14SConrad Meyer    Priority: 10
159e59d5d14SConrad Meyer    SortPriority: 100
160a8caa639SConrad Meyer# LLVM's header include ordering style is almost the exact opposite of ours.
161a8caa639SConrad Meyer# Unfortunately, they have hard-coded their preferences into clang-format.
162a8caa639SConrad Meyer# Clobbering this regular expression to avoid matching prevents non-system
163a8caa639SConrad Meyer# headers from being forcibly moved to the top of the include list.
164a8caa639SConrad Meyer# http://llvm.org/docs/CodingStandards.html#include-style
165a8caa639SConrad MeyerIncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING'
166e59d5d14SConrad MeyerSortIncludes: true
167*2c18289bSMark JohnstonKeepEmptyLinesAtTheStartOfBlocks: false
1689e8fd9d8SConrad MeyerTypenameMacros:
1699e8fd9d8SConrad Meyer  - ARB_ELMTYPE
1709e8fd9d8SConrad Meyer  - ARB_HEAD
1719e8fd9d8SConrad Meyer  - ARB8_HEAD
1729e8fd9d8SConrad Meyer  - ARB16_HEAD
1739e8fd9d8SConrad Meyer  - ARB32_HEAD
1749e8fd9d8SConrad Meyer  - ARB_ENTRY
1759e8fd9d8SConrad Meyer  - ARB8_ENTRY
1769e8fd9d8SConrad Meyer  - ARB16_ENTRY
1779e8fd9d8SConrad Meyer  - ARB32_ENTRY
1789e8fd9d8SConrad Meyer  - LIST_CLASS_ENTRY
1799e8fd9d8SConrad Meyer  - LIST_CLASS_HEAD
1809e8fd9d8SConrad Meyer  - LIST_ENTRY
1819e8fd9d8SConrad Meyer  - LIST_HEAD
1829e8fd9d8SConrad Meyer  - QUEUE_TYPEOF
1839e8fd9d8SConrad Meyer  - RB_ENTRY
1849e8fd9d8SConrad Meyer  - RB_HEAD
1859e8fd9d8SConrad Meyer  - SLIST_CLASS_HEAD
1869e8fd9d8SConrad Meyer  - SLIST_CLASS_ENTRY
1879e8fd9d8SConrad Meyer  - SLIST_HEAD
1889e8fd9d8SConrad Meyer  - SLIST_ENTRY
1899e8fd9d8SConrad Meyer  - SMR_POINTER
1909e8fd9d8SConrad Meyer  - SPLAY_ENTRY
1919e8fd9d8SConrad Meyer  - SPLAY_HEAD
1929e8fd9d8SConrad Meyer  - STAILQ_CLASS_ENTRY
1939e8fd9d8SConrad Meyer  - STAILQ_CLASS_HEAD
1949e8fd9d8SConrad Meyer  - STAILQ_ENTRY
1959e8fd9d8SConrad Meyer  - STAILQ_HEAD
1969e8fd9d8SConrad Meyer  - TAILQ_CLASS_ENTRY
1979e8fd9d8SConrad Meyer  - TAILQ_CLASS_HEAD
1989e8fd9d8SConrad Meyer  - TAILQ_ENTRY
1999e8fd9d8SConrad Meyer  - TAILQ_HEAD
200