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