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