1# $FreeBSD$ 2# Basic .clang-format 3--- 4BasedOnStyle: WebKit 5AlignAfterOpenBracket: DontAlign 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 - CPU_FOREACH 56 - FOREACH_THREAD_IN_PROC 57 - FOREACH_PROC_IN_SYSTEM 58 - FOREACH_PRISON_CHILD 59 - FOREACH_PRISON_DESCENDANT 60 - FOREACH_PRISON_DESCENDANT_LOCKED 61 - FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL 62 - MNT_VNODE_FOREACH_ALL 63 - MNT_VNODE_FOREACH_ACTIVE 64 - RB_FOREACH 65 - RB_FOREACH_FROM 66 - RB_FOREACH_SAFE 67 - RB_FOREACH_REVERSE 68 - RB_FOREACH_REVERSE_FROM 69 - RB_FOREACH_REVERSE_SAFE 70 - SLIST_FOREACH 71 - SLIST_FOREACH_FROM 72 - SLIST_FOREACH_FROM_SAFE 73 - SLIST_FOREACH_SAFE 74 - SLIST_FOREACH_PREVPTR 75 - SPLAY_FOREACH 76 - LIST_FOREACH 77 - LIST_FOREACH_FROM 78 - LIST_FOREACH_FROM_SAFE 79 - LIST_FOREACH_SAFE 80 - STAILQ_FOREACH 81 - STAILQ_FOREACH_FROM 82 - STAILQ_FOREACH_FROM_SAFE 83 - STAILQ_FOREACH_SAFE 84 - TAILQ_FOREACH 85 - TAILQ_FOREACH_FROM 86 - TAILQ_FOREACH_FROM_SAFE 87 - TAILQ_FOREACH_REVERSE 88 - TAILQ_FOREACH_REVERSE_FROM 89 - TAILQ_FOREACH_REVERSE_FROM_SAFE 90 - TAILQ_FOREACH_REVERSE_SAFE 91 - TAILQ_FOREACH_SAFE 92 - VM_MAP_ENTRY_FOREACH 93 - VM_PAGE_DUMP_FOREACH 94IndentCaseLabels: false 95IndentPPDirectives: None 96Language: Cpp 97NamespaceIndentation: None 98PointerAlignment: Right 99ContinuationIndentWidth: 4 100IndentWidth: 8 101TabWidth: 8 102ColumnLimit: 80 103UseTab: Always 104SpaceAfterCStyleCast: false 105IncludeBlocks: Regroup 106IncludeCategories: 107 - Regex: '^\"opt_.*\.h\"' 108 Priority: 1 109 SortPriority: 10 110 - Regex: '^<sys/cdefs\.h>' 111 Priority: 2 112 SortPriority: 20 113 - Regex: '^<sys/types\.h>' 114 Priority: 2 115 SortPriority: 21 116 - Regex: '^<sys/param\.h>' 117 Priority: 2 118 SortPriority: 22 119 - Regex: '^<sys/systm\.h>' 120 Priority: 2 121 SortPriority: 23 122 - Regex: '^<sys.*/' 123 Priority: 2 124 SortPriority: 24 125 - Regex: '^<vm/vm\.h>' 126 Priority: 3 127 SortPriority: 30 128 - Regex: '^<vm/' 129 Priority: 3 130 SortPriority: 31 131 - Regex: '^<machine/' 132 Priority: 4 133 SortPriority: 40 134 - Regex: '^<(x86|amd64|i386|xen)/' 135 Priority: 5 136 SortPriority: 50 137 - Regex: '^<dev/' 138 Priority: 6 139 SortPriority: 60 140 - Regex: '^<net.*/' 141 Priority: 7 142 SortPriority: 70 143 - Regex: '^<protocols/' 144 Priority: 7 145 SortPriority: 71 146 - Regex: '^<(fs|nfs(|client|server)|ufs)/' 147 Priority: 8 148 SortPriority: 80 149 - Regex: '^<[^/].*\.h' 150 Priority: 9 151 SortPriority: 90 152 - Regex: '^\".*\.h\"' 153 Priority: 10 154 SortPriority: 100 155# LLVM's header include ordering style is almost the exact opposite of ours. 156# Unfortunately, they have hard-coded their preferences into clang-format. 157# Clobbering this regular expression to avoid matching prevents non-system 158# headers from being forcibly moved to the top of the include list. 159# http://llvm.org/docs/CodingStandards.html#include-style 160IncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING' 161SortIncludes: true 162KeepEmptyLinesAtTheStartOfBlocks: true 163TypenameMacros: 164 - ARB_ELMTYPE 165 - ARB_HEAD 166 - ARB8_HEAD 167 - ARB16_HEAD 168 - ARB32_HEAD 169 - ARB_ENTRY 170 - ARB8_ENTRY 171 - ARB16_ENTRY 172 - ARB32_ENTRY 173 - LIST_CLASS_ENTRY 174 - LIST_CLASS_HEAD 175 - LIST_ENTRY 176 - LIST_HEAD 177 - QUEUE_TYPEOF 178 - RB_ENTRY 179 - RB_HEAD 180 - SLIST_CLASS_HEAD 181 - SLIST_CLASS_ENTRY 182 - SLIST_HEAD 183 - SLIST_ENTRY 184 - SMR_POINTER 185 - SPLAY_ENTRY 186 - SPLAY_HEAD 187 - STAILQ_CLASS_ENTRY 188 - STAILQ_CLASS_HEAD 189 - STAILQ_ENTRY 190 - STAILQ_HEAD 191 - TAILQ_CLASS_ENTRY 192 - TAILQ_CLASS_HEAD 193 - TAILQ_ENTRY 194 - TAILQ_HEAD 195