xref: /freebsd/.clang-format (revision ab041f71)
1b0f20f11SAlex Richardson# $FreeBSD$
2b0f20f11SAlex Richardson# Basic .clang-format
3b0f20f11SAlex Richardson---
4b0f20f11SAlex RichardsonBasedOnStyle: WebKit
5b0f20f11SAlex RichardsonAlignAfterOpenBracket: DontAlign
6b0f20f11SAlex RichardsonAlignConsecutiveAssignments: false
7b0f20f11SAlex RichardsonAlignConsecutiveDeclarations: false
8b0f20f11SAlex RichardsonAlignEscapedNewlines: Left
9b0f20f11SAlex RichardsonAlignOperands: false
1022a39a89SAlex RichardsonAlignTrailingComments: true
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
27b0f20f11SAlex RichardsonPenaltyBreakBeforeFirstCallParameter: 1000
28b0f20f11SAlex RichardsonCompactNamespaces: true
29b0f20f11SAlex RichardsonDerivePointerAlignment: false
30b0f20f11SAlex RichardsonDisableFormat: false
31b0f20f11SAlex RichardsonForEachMacros:
329e8fd9d8SConrad Meyer  - ARB_ARRFOREACH
339e8fd9d8SConrad Meyer  - ARB_ARRFOREACH_REVWCOND
349e8fd9d8SConrad Meyer  - ARB_ARRFOREACH_REVERSE
359e8fd9d8SConrad Meyer  - ARB_FOREACH
369e8fd9d8SConrad Meyer  - ARB_FOREACH_FROM
379e8fd9d8SConrad Meyer  - ARB_FOREACH_SAFE
389e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE
399e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE_FROM
409e8fd9d8SConrad Meyer  - ARB_FOREACH_REVERSE_SAFE
419e8fd9d8SConrad Meyer  - CPU_FOREACH
42b0f20f11SAlex Richardson  - FOREACH_THREAD_IN_PROC
43b0f20f11SAlex Richardson  - FOREACH_PROC_IN_SYSTEM
44b0f20f11SAlex Richardson  - FOREACH_PRISON_CHILD
45b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT
46b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT_LOCKED
47b0f20f11SAlex Richardson  - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL
48b0f20f11SAlex Richardson  - MNT_VNODE_FOREACH_ALL
49b0f20f11SAlex Richardson  - MNT_VNODE_FOREACH_ACTIVE
509e8fd9d8SConrad Meyer  - RB_FOREACH
519e8fd9d8SConrad Meyer  - RB_FOREACH_FROM
529e8fd9d8SConrad Meyer  - RB_FOREACH_SAFE
539e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE
549e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE_FROM
559e8fd9d8SConrad Meyer  - RB_FOREACH_REVERSE_SAFE
569e8fd9d8SConrad Meyer  - SLIST_FOREACH
579e8fd9d8SConrad Meyer  - SLIST_FOREACH_FROM
589e8fd9d8SConrad Meyer  - SLIST_FOREACH_FROM_SAFE
599e8fd9d8SConrad Meyer  - SLIST_FOREACH_SAFE
609e8fd9d8SConrad Meyer  - SLIST_FOREACH_PREVPTR
619e8fd9d8SConrad Meyer  - SPLAY_FOREACH
629e8fd9d8SConrad Meyer  - LIST_FOREACH
639e8fd9d8SConrad Meyer  - LIST_FOREACH_FROM
649e8fd9d8SConrad Meyer  - LIST_FOREACH_FROM_SAFE
659e8fd9d8SConrad Meyer  - LIST_FOREACH_SAFE
669e8fd9d8SConrad Meyer  - STAILQ_FOREACH
679e8fd9d8SConrad Meyer  - STAILQ_FOREACH_FROM
689e8fd9d8SConrad Meyer  - STAILQ_FOREACH_FROM_SAFE
699e8fd9d8SConrad Meyer  - STAILQ_FOREACH_SAFE
709e8fd9d8SConrad Meyer  - TAILQ_FOREACH
719e8fd9d8SConrad Meyer  - TAILQ_FOREACH_FROM
729e8fd9d8SConrad Meyer  - TAILQ_FOREACH_FROM_SAFE
739e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE
749e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_FROM
759e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_FROM_SAFE
769e8fd9d8SConrad Meyer  - TAILQ_FOREACH_REVERSE_SAFE
779e8fd9d8SConrad Meyer  - TAILQ_FOREACH_SAFE
789e8fd9d8SConrad Meyer  - VM_MAP_ENTRY_FOREACH
79ab041f71SD Scott Phillips  - VM_PAGE_DUMP_FOREACH
80b0f20f11SAlex RichardsonIndentCaseLabels: false
81b0f20f11SAlex RichardsonIndentPPDirectives: None
82b0f20f11SAlex RichardsonLanguage: Cpp
83b0f20f11SAlex RichardsonNamespaceIndentation: None
84b0f20f11SAlex RichardsonPointerAlignment: Right
85b0f20f11SAlex RichardsonContinuationIndentWidth: 4
86b0f20f11SAlex RichardsonIndentWidth: 8
87b0f20f11SAlex RichardsonTabWidth: 8
88b0f20f11SAlex RichardsonColumnLimit: 80
89b0f20f11SAlex RichardsonUseTab: Always
90b0f20f11SAlex RichardsonSpaceAfterCStyleCast: false
91e59d5d14SConrad MeyerIncludeBlocks: Regroup
92e59d5d14SConrad MeyerIncludeCategories:
93e59d5d14SConrad Meyer  - Regex: '^\"opt_.*\.h\"'
94e59d5d14SConrad Meyer    Priority: 1
95e59d5d14SConrad Meyer    SortPriority: 10
96e59d5d14SConrad Meyer  - Regex: '^<sys/cdefs\.h>'
97e59d5d14SConrad Meyer    Priority: 2
98e59d5d14SConrad Meyer    SortPriority: 20
99e59d5d14SConrad Meyer  - Regex: '^<sys/types\.h>'
100e59d5d14SConrad Meyer    Priority: 2
101e59d5d14SConrad Meyer    SortPriority: 21
102e59d5d14SConrad Meyer  - Regex: '^<sys/param\.h>'
103e59d5d14SConrad Meyer    Priority: 2
104e59d5d14SConrad Meyer    SortPriority: 22
105e59d5d14SConrad Meyer  - Regex: '^<sys.*/'
106e59d5d14SConrad Meyer    Priority: 2
107e59d5d14SConrad Meyer    SortPriority: 23
108e59d5d14SConrad Meyer  - Regex: '^<vm/vm\.h>'
109e59d5d14SConrad Meyer    Priority: 3
110e59d5d14SConrad Meyer    SortPriority: 30
111e59d5d14SConrad Meyer  - Regex: '^<vm/'
112e59d5d14SConrad Meyer    Priority: 3
113e59d5d14SConrad Meyer    SortPriority: 31
114e59d5d14SConrad Meyer  - Regex: '^<machine/'
115e59d5d14SConrad Meyer    Priority: 4
116e59d5d14SConrad Meyer    SortPriority: 40
117e59d5d14SConrad Meyer  - Regex: '^<(x86|amd64|i386|xen)/'
118e59d5d14SConrad Meyer    Priority: 5
119e59d5d14SConrad Meyer    SortPriority: 50
120e59d5d14SConrad Meyer  - Regex: '^<dev/'
121e59d5d14SConrad Meyer    Priority: 6
122e59d5d14SConrad Meyer    SortPriority: 60
123e59d5d14SConrad Meyer  - Regex: '^<net.*/'
124e59d5d14SConrad Meyer    Priority: 7
125e59d5d14SConrad Meyer    SortPriority: 70
126e59d5d14SConrad Meyer  - Regex: '^<protocols/'
127e59d5d14SConrad Meyer    Priority: 7
128e59d5d14SConrad Meyer    SortPriority: 71
129e59d5d14SConrad Meyer  - Regex: '^<(fs|nfs(|client|server)|ufs)/'
130e59d5d14SConrad Meyer    Priority: 8
131e59d5d14SConrad Meyer    SortPriority: 80
132e59d5d14SConrad Meyer  - Regex: '^<[^/].*\.h'
133e59d5d14SConrad Meyer    Priority: 9
134e59d5d14SConrad Meyer    SortPriority: 90
135e59d5d14SConrad Meyer  - Regex: '^\".*\.h\"'
136e59d5d14SConrad Meyer    Priority: 10
137e59d5d14SConrad Meyer    SortPriority: 100
138a8caa639SConrad Meyer# LLVM's header include ordering style is almost the exact opposite of ours.
139a8caa639SConrad Meyer# Unfortunately, they have hard-coded their preferences into clang-format.
140a8caa639SConrad Meyer# Clobbering this regular expression to avoid matching prevents non-system
141a8caa639SConrad Meyer# headers from being forcibly moved to the top of the include list.
142a8caa639SConrad Meyer# http://llvm.org/docs/CodingStandards.html#include-style
143a8caa639SConrad MeyerIncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING'
144e59d5d14SConrad MeyerSortIncludes: true
145b0f20f11SAlex RichardsonKeepEmptyLinesAtTheStartOfBlocks: true
1469e8fd9d8SConrad MeyerTypenameMacros:
1479e8fd9d8SConrad Meyer  - ARB_ELMTYPE
1489e8fd9d8SConrad Meyer  - ARB_HEAD
1499e8fd9d8SConrad Meyer  - ARB8_HEAD
1509e8fd9d8SConrad Meyer  - ARB16_HEAD
1519e8fd9d8SConrad Meyer  - ARB32_HEAD
1529e8fd9d8SConrad Meyer  - ARB_ENTRY
1539e8fd9d8SConrad Meyer  - ARB8_ENTRY
1549e8fd9d8SConrad Meyer  - ARB16_ENTRY
1559e8fd9d8SConrad Meyer  - ARB32_ENTRY
1569e8fd9d8SConrad Meyer  - LIST_CLASS_ENTRY
1579e8fd9d8SConrad Meyer  - LIST_CLASS_HEAD
1589e8fd9d8SConrad Meyer  - LIST_ENTRY
1599e8fd9d8SConrad Meyer  - LIST_HEAD
1609e8fd9d8SConrad Meyer  - QUEUE_TYPEOF
1619e8fd9d8SConrad Meyer  - RB_ENTRY
1629e8fd9d8SConrad Meyer  - RB_HEAD
1639e8fd9d8SConrad Meyer  - SLIST_CLASS_HEAD
1649e8fd9d8SConrad Meyer  - SLIST_CLASS_ENTRY
1659e8fd9d8SConrad Meyer  - SLIST_HEAD
1669e8fd9d8SConrad Meyer  - SLIST_ENTRY
1679e8fd9d8SConrad Meyer  - SMR_POINTER
1689e8fd9d8SConrad Meyer  - SPLAY_ENTRY
1699e8fd9d8SConrad Meyer  - SPLAY_HEAD
1709e8fd9d8SConrad Meyer  - STAILQ_CLASS_ENTRY
1719e8fd9d8SConrad Meyer  - STAILQ_CLASS_HEAD
1729e8fd9d8SConrad Meyer  - STAILQ_ENTRY
1739e8fd9d8SConrad Meyer  - STAILQ_HEAD
1749e8fd9d8SConrad Meyer  - TAILQ_CLASS_ENTRY
1759e8fd9d8SConrad Meyer  - TAILQ_CLASS_HEAD
1769e8fd9d8SConrad Meyer  - TAILQ_ENTRY
1779e8fd9d8SConrad Meyer  - TAILQ_HEAD
178