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