Skip to content

Commit

Permalink
Add a basic clang-format configuration file
Browse files Browse the repository at this point in the history
This gets reasonably close to the existing format in sys/kern but will
probably require some changes to upstream clang-format before it can be
used as the default formatting tool.

I tried formatting a few files in sys/kern and the result is pretty close to
the existing code. However, this configuration file is not ready to be used
without manually checking the output.

Reviewed By:	emaste
Differential Revision: https://reviews.freebsd.org/D20533
  • Loading branch information
arichardson committed Jun 7, 2019
1 parent ca30755 commit b0f20f1
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
77 changes: 77 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# $FreeBSD$
# Basic .clang-format
---
BasedOnStyle: WebKit
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortIfStatementsOnASingleLine: false
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
PenaltyBreakBeforeFirstCallParameter: 1000
CompactNamespaces: true
DerivePointerAlignment: false
DisableFormat: false
ForEachMacros:
- SLIST_FOREACH
- SLIST_FOREACH_SAFE
- LIST_FOREACH
- LIST_FOREACH_SAFE
- STAILQ_FOREACH
- STAILQ_FOREACH_SAFE
- TAILQ_FOREACH
- TAILQ_FOREACH_SAFE
- TAILQ_FOREACH_REVERSE
- TAILQ_FOREACH_REVERSE_SAFE
- RB_FOREACH
- RB_FOREACH_SAFE
- RB_FOREACH_FROM
- RB_FOREACH_REVERSE
- RB_FOREACH_REVERSE_FROM
- RB_FOREACH_REVERSE_SAFE
- 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
IndentCaseLabels: false
IndentPPDirectives: None
Language: Cpp
NamespaceIndentation: None
PointerAlignment: Right
ContinuationIndentWidth: 4
IndentWidth: 8
TabWidth: 8
ColumnLimit: 80
UseTab: Always
SpaceAfterCStyleCast: false
SortIncludes: false
KeepEmptyLinesAtTheStartOfBlocks: true
# The options below will only be supported starting with clang 9.0:
# TODO-CLANG-9: TypenameMacros:
# TODO-CLANG-9: - SLIST_HEAD
# TODO-CLANG-9: - SLIST_ENTRY
# TODO-CLANG-9: - TAILQ_ENTRY
# TODO-CLANG-9: - TAILQ_HEAD
# TODO-CLANG-9: - STAILQ_ENTRY
# TODO-CLANG-9: - STAILQ_HEAD
...
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
*.hpp diff=cpp
*.py diff=python
. svn-properties=svn:keywords=tools/build/options/WITHOUT_LOADER_ZFS
.clang-format svn-properties=svn:keywords=FreeBSD=%H

0 comments on commit b0f20f1

Please sign in to comment.