1# Basic .clang-format 2--- 3BasedOnStyle: WebKit 4AlignAfterOpenBracket: DontAlign 5AlignConsecutiveMacros: AcrossEmptyLines 6AlignConsecutiveAssignments: false 7AlignConsecutiveDeclarations: false 8AlignEscapedNewlines: Left 9AlignOperands: false 10AlignTrailingComments: true 11AllowAllArgumentsOnNextLine: false 12AllowAllParametersOfDeclarationOnNextLine: false 13AllowShortBlocksOnASingleLine: Never 14AllowShortCaseLabelsOnASingleLine: false 15AllowShortFunctionsOnASingleLine: InlineOnly 16AllowShortIfStatementsOnASingleLine: Never 17AllowShortLoopsOnASingleLine: false 18AlwaysBreakAfterReturnType: TopLevelDefinitions 19AlwaysBreakBeforeMultilineStrings: false 20AlwaysBreakTemplateDeclarations: MultiLine 21BinPackArguments: true 22BinPackParameters: true 23BreakBeforeBinaryOperators: None 24BreakBeforeBraces: WebKit 25BreakBeforeTernaryOperators: false 26# TODO: BreakStringLiterals can cause very strange formatting so turn it off? 27BreakStringLiterals: false 28# Prefer: 29# some_var = function(arg1, 30# arg2) 31# over: 32# some_var = 33# function(arg1, arg2) 34PenaltyBreakAssignment: 100 35# Prefer: 36# some_long_function(arg1, arg2 37# arg3) 38# over: 39# some_long_function( 40# arg1, arg2, arg3) 41PenaltyBreakBeforeFirstCallParameter: 100 42CompactNamespaces: true 43DerivePointerAlignment: false 44DisableFormat: false 45ForEachMacros: 46 - ARB_ARRFOREACH 47 - ARB_ARRFOREACH_REVWCOND 48 - ARB_ARRFOREACH_REVERSE 49 - ARB_FOREACH 50 - ARB_FOREACH_FROM 51 - ARB_FOREACH_SAFE 52 - ARB_FOREACH_REVERSE 53 - ARB_FOREACH_REVERSE_FROM 54 - ARB_FOREACH_REVERSE_SAFE 55 - BIT_FOREACH_ISCLR 56 - BIT_FOREACH_ISSET 57 - CPU_FOREACH 58 - CPU_FOREACH_ISCLR 59 - CPU_FOREACH_ISSET 60 - FOREACH_THREAD_IN_PROC 61 - FOREACH_PROC_IN_SYSTEM 62 - FOREACH_PRISON_CHILD 63 - FOREACH_PRISON_DESCENDANT 64 - FOREACH_PRISON_DESCENDANT_LOCKED 65 - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL 66 - MNT_VNODE_FOREACH_ALL 67 - MNT_VNODE_FOREACH_ACTIVE 68 - RB_FOREACH 69 - RB_FOREACH_FROM 70 - RB_FOREACH_SAFE 71 - RB_FOREACH_REVERSE 72 - RB_FOREACH_REVERSE_FROM 73 - RB_FOREACH_REVERSE_SAFE 74 - SLIST_FOREACH 75 - SLIST_FOREACH_FROM 76 - SLIST_FOREACH_FROM_SAFE 77 - SLIST_FOREACH_SAFE 78 - SLIST_FOREACH_PREVPTR 79 - SPLAY_FOREACH 80 - LIST_FOREACH 81 - LIST_FOREACH_FROM 82 - LIST_FOREACH_FROM_SAFE 83 - LIST_FOREACH_SAFE 84 - STAILQ_FOREACH 85 - STAILQ_FOREACH_FROM 86 - STAILQ_FOREACH_FROM_SAFE 87 - STAILQ_FOREACH_SAFE 88 - TAILQ_FOREACH 89 - TAILQ_FOREACH_FROM 90 - TAILQ_FOREACH_FROM_SAFE 91 - TAILQ_FOREACH_REVERSE 92 - TAILQ_FOREACH_REVERSE_FROM 93 - TAILQ_FOREACH_REVERSE_FROM_SAFE 94 - TAILQ_FOREACH_REVERSE_SAFE 95 - TAILQ_FOREACH_SAFE 96 - VM_MAP_ENTRY_FOREACH 97 - VM_PAGE_DUMP_FOREACH 98SpaceBeforeParens: ControlStatementsExceptForEachMacros 99IndentCaseLabels: false 100IndentPPDirectives: None 101Language: Cpp 102NamespaceIndentation: None 103PointerAlignment: Right 104ContinuationIndentWidth: 4 105IndentWidth: 8 106TabWidth: 8 107ColumnLimit: 80 108UseTab: Always 109SpaceAfterCStyleCast: false 110IncludeBlocks: Regroup 111IncludeCategories: 112 - Regex: '^\"opt_.*\.h\"' 113 Priority: 1 114 SortPriority: 10 115 - Regex: '^<sys/cdefs\.h>' 116 Priority: 2 117 SortPriority: 20 118 - Regex: '^<sys/types\.h>' 119 Priority: 2 120 SortPriority: 21 121 - Regex: '^<sys/param\.h>' 122 Priority: 2 123 SortPriority: 22 124 - Regex: '^<sys/systm\.h>' 125 Priority: 2 126 SortPriority: 23 127 - Regex: '^<sys.*/' 128 Priority: 2 129 SortPriority: 24 130 - Regex: '^<vm/vm\.h>' 131 Priority: 3 132 SortPriority: 30 133 - Regex: '^<vm/' 134 Priority: 3 135 SortPriority: 31 136 - Regex: '^<machine/' 137 Priority: 4 138 SortPriority: 40 139 - Regex: '^<(x86|amd64|i386|xen)/' 140 Priority: 5 141 SortPriority: 50 142 - Regex: '^<dev/' 143 Priority: 6 144 SortPriority: 60 145 - Regex: '^<net.*/' 146 Priority: 7 147 SortPriority: 70 148 - Regex: '^<protocols/' 149 Priority: 7 150 SortPriority: 71 151 - Regex: '^<(fs|nfs(|client|server)|ufs)/' 152 Priority: 8 153 SortPriority: 80 154 - Regex: '^<[^/].*\.h' 155 Priority: 9 156 SortPriority: 90 157 - Regex: '^\".*\.h\"' 158 Priority: 10 159 SortPriority: 100 160# LLVM's header include ordering style is almost the exact opposite of ours. 161# Unfortunately, they have hard-coded their preferences into clang-format. 162# Clobbering this regular expression to avoid matching prevents non-system 163# headers from being forcibly moved to the top of the include list. 164# http://llvm.org/docs/CodingStandards.html#include-style 165IncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING' 166SortIncludes: true 167KeepEmptyLinesAtTheStartOfBlocks: false 168TypenameMacros: 169 - ARB_ELMTYPE 170 - ARB_HEAD 171 - ARB8_HEAD 172 - ARB16_HEAD 173 - ARB32_HEAD 174 - ARB_ENTRY 175 - ARB8_ENTRY 176 - ARB16_ENTRY 177 - ARB32_ENTRY 178 - LIST_CLASS_ENTRY 179 - LIST_CLASS_HEAD 180 - LIST_ENTRY 181 - LIST_HEAD 182 - QUEUE_TYPEOF 183 - RB_ENTRY 184 - RB_HEAD 185 - SLIST_CLASS_HEAD 186 - SLIST_CLASS_ENTRY 187 - SLIST_HEAD 188 - SLIST_ENTRY 189 - SMR_POINTER 190 - SPLAY_ENTRY 191 - SPLAY_HEAD 192 - STAILQ_CLASS_ENTRY 193 - STAILQ_CLASS_HEAD 194 - STAILQ_ENTRY 195 - STAILQ_HEAD 196 - TAILQ_CLASS_ENTRY 197 - TAILQ_CLASS_HEAD 198 - TAILQ_ENTRY 199 - TAILQ_HEAD 200