mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-06 17:18:32 +00:00
![Mark Johnston](/assets/img/avatar_default.png)
Invert KeepEmptyLinesAtTheStartOfBlocks. We used to require an empty line at the beginning of functions with no local variables, which I believe is the reason for this setting. Now it is discouraged in new code. Tell clang-format to align consecutive macros, since we tend to do that. clang-format's output isn't quite what we want here. Typically we have a tab after a #define for some reason, and clang-format doesn't appear to have an option for that. clang-format will also use a mix of tabs and spaces to minimize indentation, which is also against our convention. However, the result looks better with this setting than without. Reviewed by: emaste MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D29870
200 lines
4.8 KiB
YAML
200 lines
4.8 KiB
YAML
# Basic .clang-format
|
|
---
|
|
BasedOnStyle: WebKit
|
|
AlignAfterOpenBracket: DontAlign
|
|
AlignConsecutiveMacros: AcrossEmptyLines
|
|
AlignConsecutiveAssignments: false
|
|
AlignConsecutiveDeclarations: false
|
|
AlignEscapedNewlines: Left
|
|
AlignOperands: false
|
|
AlignTrailingComments: true
|
|
AllowAllArgumentsOnNextLine: false
|
|
AllowAllParametersOfDeclarationOnNextLine: false
|
|
AllowShortBlocksOnASingleLine: Never
|
|
AllowShortCaseLabelsOnASingleLine: false
|
|
AllowShortFunctionsOnASingleLine: InlineOnly
|
|
AllowShortIfStatementsOnASingleLine: Never
|
|
AllowShortLoopsOnASingleLine: false
|
|
AlwaysBreakAfterReturnType: TopLevelDefinitions
|
|
AlwaysBreakBeforeMultilineStrings: false
|
|
AlwaysBreakTemplateDeclarations: MultiLine
|
|
BinPackArguments: true
|
|
BinPackParameters: true
|
|
BreakBeforeBinaryOperators: None
|
|
BreakBeforeBraces: WebKit
|
|
BreakBeforeTernaryOperators: false
|
|
# TODO: BreakStringLiterals can cause very strange formatting so turn it off?
|
|
BreakStringLiterals: false
|
|
# Prefer:
|
|
# some_var = function(arg1,
|
|
# arg2)
|
|
# over:
|
|
# some_var =
|
|
# function(arg1, arg2)
|
|
PenaltyBreakAssignment: 100
|
|
# Prefer:
|
|
# some_long_function(arg1, arg2
|
|
# arg3)
|
|
# over:
|
|
# some_long_function(
|
|
# arg1, arg2, arg3)
|
|
PenaltyBreakBeforeFirstCallParameter: 100
|
|
CompactNamespaces: true
|
|
DerivePointerAlignment: false
|
|
DisableFormat: false
|
|
ForEachMacros:
|
|
- ARB_ARRFOREACH
|
|
- ARB_ARRFOREACH_REVWCOND
|
|
- ARB_ARRFOREACH_REVERSE
|
|
- ARB_FOREACH
|
|
- ARB_FOREACH_FROM
|
|
- ARB_FOREACH_SAFE
|
|
- ARB_FOREACH_REVERSE
|
|
- ARB_FOREACH_REVERSE_FROM
|
|
- ARB_FOREACH_REVERSE_SAFE
|
|
- BIT_FOREACH_ISCLR
|
|
- BIT_FOREACH_ISSET
|
|
- CPU_FOREACH
|
|
- CPU_FOREACH_ISCLR
|
|
- CPU_FOREACH_ISSET
|
|
- FOREACH_THREAD_IN_PROC
|
|
- FOREACH_PROC_IN_SYSTEM
|
|
- FOREACH_PRISON_CHILD
|
|
- FOREACH_PRISON_DESCENDANT
|
|
- FOREACH_PRISON_DESCENDANT_LOCKED
|
|
- FOREACH_PRISON_DESCENDANT_LOCKED_LEVEL
|
|
- MNT_VNODE_FOREACH_ALL
|
|
- MNT_VNODE_FOREACH_ACTIVE
|
|
- RB_FOREACH
|
|
- RB_FOREACH_FROM
|
|
- RB_FOREACH_SAFE
|
|
- RB_FOREACH_REVERSE
|
|
- RB_FOREACH_REVERSE_FROM
|
|
- RB_FOREACH_REVERSE_SAFE
|
|
- SLIST_FOREACH
|
|
- SLIST_FOREACH_FROM
|
|
- SLIST_FOREACH_FROM_SAFE
|
|
- SLIST_FOREACH_SAFE
|
|
- SLIST_FOREACH_PREVPTR
|
|
- SPLAY_FOREACH
|
|
- LIST_FOREACH
|
|
- LIST_FOREACH_FROM
|
|
- LIST_FOREACH_FROM_SAFE
|
|
- LIST_FOREACH_SAFE
|
|
- STAILQ_FOREACH
|
|
- STAILQ_FOREACH_FROM
|
|
- STAILQ_FOREACH_FROM_SAFE
|
|
- STAILQ_FOREACH_SAFE
|
|
- TAILQ_FOREACH
|
|
- TAILQ_FOREACH_FROM
|
|
- TAILQ_FOREACH_FROM_SAFE
|
|
- TAILQ_FOREACH_REVERSE
|
|
- TAILQ_FOREACH_REVERSE_FROM
|
|
- TAILQ_FOREACH_REVERSE_FROM_SAFE
|
|
- TAILQ_FOREACH_REVERSE_SAFE
|
|
- TAILQ_FOREACH_SAFE
|
|
- VM_MAP_ENTRY_FOREACH
|
|
- VM_PAGE_DUMP_FOREACH
|
|
SpaceBeforeParens: ControlStatementsExceptForEachMacros
|
|
IndentCaseLabels: false
|
|
IndentPPDirectives: None
|
|
Language: Cpp
|
|
NamespaceIndentation: None
|
|
PointerAlignment: Right
|
|
ContinuationIndentWidth: 4
|
|
IndentWidth: 8
|
|
TabWidth: 8
|
|
ColumnLimit: 80
|
|
UseTab: Always
|
|
SpaceAfterCStyleCast: false
|
|
IncludeBlocks: Regroup
|
|
IncludeCategories:
|
|
- Regex: '^\"opt_.*\.h\"'
|
|
Priority: 1
|
|
SortPriority: 10
|
|
- Regex: '^<sys/cdefs\.h>'
|
|
Priority: 2
|
|
SortPriority: 20
|
|
- Regex: '^<sys/types\.h>'
|
|
Priority: 2
|
|
SortPriority: 21
|
|
- Regex: '^<sys/param\.h>'
|
|
Priority: 2
|
|
SortPriority: 22
|
|
- Regex: '^<sys/systm\.h>'
|
|
Priority: 2
|
|
SortPriority: 23
|
|
- Regex: '^<sys.*/'
|
|
Priority: 2
|
|
SortPriority: 24
|
|
- Regex: '^<vm/vm\.h>'
|
|
Priority: 3
|
|
SortPriority: 30
|
|
- Regex: '^<vm/'
|
|
Priority: 3
|
|
SortPriority: 31
|
|
- Regex: '^<machine/'
|
|
Priority: 4
|
|
SortPriority: 40
|
|
- Regex: '^<(x86|amd64|i386|xen)/'
|
|
Priority: 5
|
|
SortPriority: 50
|
|
- Regex: '^<dev/'
|
|
Priority: 6
|
|
SortPriority: 60
|
|
- Regex: '^<net.*/'
|
|
Priority: 7
|
|
SortPriority: 70
|
|
- Regex: '^<protocols/'
|
|
Priority: 7
|
|
SortPriority: 71
|
|
- Regex: '^<(fs|nfs(|client|server)|ufs)/'
|
|
Priority: 8
|
|
SortPriority: 80
|
|
- Regex: '^<[^/].*\.h'
|
|
Priority: 9
|
|
SortPriority: 90
|
|
- Regex: '^\".*\.h\"'
|
|
Priority: 10
|
|
SortPriority: 100
|
|
# LLVM's header include ordering style is almost the exact opposite of ours.
|
|
# Unfortunately, they have hard-coded their preferences into clang-format.
|
|
# Clobbering this regular expression to avoid matching prevents non-system
|
|
# headers from being forcibly moved to the top of the include list.
|
|
# http://llvm.org/docs/CodingStandards.html#include-style
|
|
IncludeIsMainRegex: 'BLAH_DONT_MATCH_ANYTHING'
|
|
SortIncludes: true
|
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
TypenameMacros:
|
|
- ARB_ELMTYPE
|
|
- ARB_HEAD
|
|
- ARB8_HEAD
|
|
- ARB16_HEAD
|
|
- ARB32_HEAD
|
|
- ARB_ENTRY
|
|
- ARB8_ENTRY
|
|
- ARB16_ENTRY
|
|
- ARB32_ENTRY
|
|
- LIST_CLASS_ENTRY
|
|
- LIST_CLASS_HEAD
|
|
- LIST_ENTRY
|
|
- LIST_HEAD
|
|
- QUEUE_TYPEOF
|
|
- RB_ENTRY
|
|
- RB_HEAD
|
|
- SLIST_CLASS_HEAD
|
|
- SLIST_CLASS_ENTRY
|
|
- SLIST_HEAD
|
|
- SLIST_ENTRY
|
|
- SMR_POINTER
|
|
- SPLAY_ENTRY
|
|
- SPLAY_HEAD
|
|
- STAILQ_CLASS_ENTRY
|
|
- STAILQ_CLASS_HEAD
|
|
- STAILQ_ENTRY
|
|
- STAILQ_HEAD
|
|
- TAILQ_CLASS_ENTRY
|
|
- TAILQ_CLASS_HEAD
|
|
- TAILQ_ENTRY
|
|
- TAILQ_HEAD
|