clang-format: simplify by inheriting from LLVM
The amount of options available on clang-format has become quite extensive over-time, making a dumped file difficult to read or maintain. In this patch the .clang-format has been re-written by inheriting from LLVM (default) since most of the options can be re-used to match the Zephyr/Linux coding style conventions. Note: The 14 release has interesting options for Zephyr, in particular, these new settings would be beneficial: IfMacros: - CHECKIF SpaceBeforeParens: Custom SpaceBeforeParensOptions: AfterForeachMacros: true AfterIfMacros: true .clang-format should be periodically updated as new clang-format releases reach Linux distros. Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This commit is contained in:
parent
dbb5e2380d
commit
bac0dbe8f2
1 changed files with 30 additions and 112 deletions
144
.clang-format
144
.clang-format
|
@ -1,73 +1,27 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
# clang-format configuration file. Intended for clang-format >= 4.
|
# Note: The list of ForEachMacros can be obtained using:
|
||||||
#
|
#
|
||||||
# For more information, see:
|
|
||||||
#
|
|
||||||
# Documentation/process/clang-format.rst
|
|
||||||
# https://clang.llvm.org/docs/ClangFormat.html
|
|
||||||
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
|
||||||
#
|
|
||||||
---
|
|
||||||
AccessModifierOffset: -4
|
|
||||||
AlignAfterOpenBracket: Align
|
|
||||||
AlignConsecutiveAssignments: false
|
|
||||||
AlignConsecutiveDeclarations: false
|
|
||||||
#AlignEscapedNewlines: Left # Unknown to clang-format-4.0
|
|
||||||
AlignOperands: true
|
|
||||||
AlignTrailingComments: false
|
|
||||||
AllowAllParametersOfDeclarationOnNextLine: false
|
|
||||||
AllowShortBlocksOnASingleLine: false
|
|
||||||
AllowShortCaseLabelsOnASingleLine: false
|
|
||||||
AllowShortFunctionsOnASingleLine: None
|
|
||||||
AllowShortIfStatementsOnASingleLine: false
|
|
||||||
AllowShortLoopsOnASingleLine: false
|
|
||||||
AlwaysBreakAfterDefinitionReturnType: None
|
|
||||||
AlwaysBreakAfterReturnType: None
|
|
||||||
AlwaysBreakBeforeMultilineStrings: false
|
|
||||||
AlwaysBreakTemplateDeclarations: false
|
|
||||||
BinPackArguments: true
|
|
||||||
BinPackParameters: true
|
|
||||||
BraceWrapping:
|
|
||||||
AfterClass: false
|
|
||||||
AfterControlStatement: false
|
|
||||||
AfterEnum: false
|
|
||||||
AfterFunction: true
|
|
||||||
AfterNamespace: true
|
|
||||||
AfterObjCDeclaration: false
|
|
||||||
AfterStruct: false
|
|
||||||
AfterUnion: false
|
|
||||||
#AfterExternBlock: false # Unknown to clang-format-5.0
|
|
||||||
BeforeCatch: false
|
|
||||||
BeforeElse: false
|
|
||||||
IndentBraces: false
|
|
||||||
#SplitEmptyFunction: true # Unknown to clang-format-4.0
|
|
||||||
#SplitEmptyRecord: true # Unknown to clang-format-4.0
|
|
||||||
#SplitEmptyNamespace: true # Unknown to clang-format-4.0
|
|
||||||
BreakBeforeBinaryOperators: None
|
|
||||||
BreakBeforeBraces: Custom
|
|
||||||
#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0
|
|
||||||
BreakBeforeTernaryOperators: false
|
|
||||||
BreakConstructorInitializersBeforeComma: false
|
|
||||||
#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0
|
|
||||||
BreakAfterJavaFieldAnnotations: false
|
|
||||||
BreakStringLiterals: false
|
|
||||||
ColumnLimit: 100
|
|
||||||
CommentPragmas: '^ IWYU pragma:'
|
|
||||||
#CompactNamespaces: false # Unknown to clang-format-4.0
|
|
||||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
|
||||||
ConstructorInitializerIndentWidth: 8
|
|
||||||
ContinuationIndentWidth: 8
|
|
||||||
Cpp11BracedListStyle: false
|
|
||||||
DerivePointerAlignment: false
|
|
||||||
DisableFormat: false
|
|
||||||
ExperimentalAutoDetectBinPacking: false
|
|
||||||
#FixNamespaceComments: false # Unknown to clang-format-4.0
|
|
||||||
|
|
||||||
# Taken from:
|
|
||||||
# git grep -h '^#define [^[:space:]]*FOR_EACH[^[:space:]]*(' include/ \
|
# git grep -h '^#define [^[:space:]]*FOR_EACH[^[:space:]]*(' include/ \
|
||||||
# | sed "s,^#define \([^[:space:]]*FOR_EACH[^[:space:]]*\)(.*$, - '\1'," \
|
# | sed "s,^#define \([^[:space:]]*FOR_EACH[^[:space:]]*\)(.*$, - '\1'," \
|
||||||
# | sort | uniq
|
# | sort | uniq
|
||||||
|
#
|
||||||
|
# References:
|
||||||
|
# - https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
|
||||||
|
---
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
AlignConsecutiveMacros: AcrossComments
|
||||||
|
AttributeMacros:
|
||||||
|
- __aligned
|
||||||
|
- __deprecated
|
||||||
|
- __packed
|
||||||
|
- __printf_like
|
||||||
|
- __syscall
|
||||||
|
- __subsystem
|
||||||
|
BreakBeforeBraces: Linux
|
||||||
|
ConstructorInitializerIndentWidth: 8
|
||||||
|
ContinuationIndentWidth: 8
|
||||||
ForEachMacros:
|
ForEachMacros:
|
||||||
- 'FOR_EACH'
|
- 'FOR_EACH'
|
||||||
- 'FOR_EACH_FIXED_ARG'
|
- 'FOR_EACH_FIXED_ARG'
|
||||||
|
@ -102,56 +56,20 @@ ForEachMacros:
|
||||||
- 'Z_GENLIST_FOR_EACH_CONTAINER_SAFE'
|
- 'Z_GENLIST_FOR_EACH_CONTAINER_SAFE'
|
||||||
- 'Z_GENLIST_FOR_EACH_NODE'
|
- 'Z_GENLIST_FOR_EACH_NODE'
|
||||||
- 'Z_GENLIST_FOR_EACH_NODE_SAFE'
|
- 'Z_GENLIST_FOR_EACH_NODE_SAFE'
|
||||||
|
IncludeBlocks: Regroup
|
||||||
#IncludeBlocks: Preserve # Unknown to clang-format-5.0
|
|
||||||
IncludeCategories:
|
IncludeCategories:
|
||||||
- Regex: '.*'
|
- Regex: '^".*\.h"$'
|
||||||
|
Priority: 0
|
||||||
|
- Regex: '^<(assert|complex|ctype|errno|fenv|float|inttypes|limits|locale|math|setjmp|signal|stdarg|stdbool|stddef|stdint|stdio|stdlib|string|tgmath|time|wchar|wctype)\.h>$'
|
||||||
Priority: 1
|
Priority: 1
|
||||||
IncludeIsMainRegex: '(Test)?$'
|
- Regex: '^\<zephyr/.*\.h\>$'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 3
|
||||||
IndentCaseLabels: false
|
IndentCaseLabels: false
|
||||||
#IndentPPDirectives: None # Unknown to clang-format-5.0
|
|
||||||
IndentWidth: 8
|
IndentWidth: 8
|
||||||
IndentWrappedFunctionNames: false
|
# SpaceBeforeParens: ControlStatementsExceptControlMacros # clang-format >= 13.0
|
||||||
JavaScriptQuotes: Leave
|
|
||||||
JavaScriptWrapImports: true
|
|
||||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
||||||
MacroBlockBegin: ''
|
|
||||||
MacroBlockEnd: ''
|
|
||||||
MaxEmptyLinesToKeep: 1
|
|
||||||
NamespaceIndentation: Inner
|
|
||||||
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
|
||||||
ObjCBlockIndentWidth: 8
|
|
||||||
ObjCSpaceAfterProperty: true
|
|
||||||
ObjCSpaceBeforeProtocolList: true
|
|
||||||
|
|
||||||
# Taken from git's rules
|
|
||||||
#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0
|
|
||||||
PenaltyBreakBeforeFirstCallParameter: 30
|
|
||||||
PenaltyBreakComment: 10
|
|
||||||
PenaltyBreakFirstLessLess: 0
|
|
||||||
PenaltyBreakString: 10
|
|
||||||
PenaltyExcessCharacter: 100
|
|
||||||
PenaltyReturnTypeOnItsOwnLine: 60
|
|
||||||
|
|
||||||
PointerAlignment: Right
|
|
||||||
ReflowComments: false
|
|
||||||
SortIncludes: false
|
|
||||||
#SortUsingDeclarations: false # Unknown to clang-format-4.0
|
|
||||||
SpaceAfterCStyleCast: false
|
|
||||||
SpaceAfterTemplateKeyword: true
|
|
||||||
SpaceBeforeAssignmentOperators: true
|
|
||||||
#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0
|
|
||||||
#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0
|
|
||||||
SpaceBeforeParens: ControlStatements
|
|
||||||
#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0
|
|
||||||
SpaceInEmptyParentheses: false
|
|
||||||
SpacesBeforeTrailingComments: 1
|
|
||||||
SpacesInAngles: false
|
|
||||||
SpacesInContainerLiterals: false
|
|
||||||
SpacesInCStyleCastParentheses: false
|
|
||||||
SpacesInParentheses: false
|
|
||||||
SpacesInSquareBrackets: false
|
|
||||||
Standard: Cpp03
|
|
||||||
TabWidth: 8
|
|
||||||
UseTab: Always
|
UseTab: Always
|
||||||
...
|
WhitespaceSensitiveMacros:
|
||||||
|
- STRINGIFY
|
||||||
|
- Z_STRINGIFY
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue