aboutsummaryrefslogtreecommitdiff
path: root/.clang-format
diff options
context:
space:
mode:
authorAlex Richardson <arichardson@FreeBSD.org>2019-06-07 15:23:52 +0000
committerAlex Richardson <arichardson@FreeBSD.org>2019-06-07 15:23:52 +0000
commitb0f20f11fc53efde28fe24e43ff172c56739a8b0 (patch)
tree74b40c593e8439034e4e116221960c16c546bb13 /.clang-format
parentca3075599a3c4ea5c627c292545a8c944d6382d7 (diff)
downloadsrc-b0f20f11fc53efde28fe24e43ff172c56739a8b0.tar.gz
src-b0f20f11fc53efde28fe24e43ff172c56739a8b0.zip
Add a basic clang-format configuration file
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
Notes
Notes: svn path=/head/; revision=348777
Diffstat (limited to '.clang-format')
-rw-r--r--.clang-format77
1 files changed, 77 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 000000000000..facbea5f3156
--- /dev/null
+++ b/.clang-format
@@ -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
+...