xref: /optee_os/.clang-format (revision fa17182bbdf75e33ee8a3b657cc1bfe53ae20168)
1*fa17182bSJens Wiklander# SPDX-License-Identifier: GPL-2.0
2*fa17182bSJens Wiklander#
3*fa17182bSJens Wiklander# clang-format configuration file. Intended for clang-format >= 11.
4*fa17182bSJens Wiklander#
5*fa17182bSJens Wiklander# This is not perfect, but should help in most cases.
6*fa17182bSJens Wiklander# Please note that the maintainers have the last word if there's
7*fa17182bSJens Wiklander# disagrement with this tool.
8*fa17182bSJens Wiklander#
9*fa17182bSJens Wiklander# For more information, see:
10*fa17182bSJens Wiklander#   https://clang.llvm.org/docs/ClangFormat.html
11*fa17182bSJens Wiklander#   https://clang.llvm.org/docs/ClangFormatStyleOptions.html
12*fa17182bSJens Wiklander#
13*fa17182bSJens Wiklander---
14*fa17182bSJens WiklanderAccessModifierOffset: -4
15*fa17182bSJens WiklanderAlignAfterOpenBracket: Align
16*fa17182bSJens WiklanderAlignConsecutiveAssignments: false
17*fa17182bSJens WiklanderAlignConsecutiveDeclarations: false
18*fa17182bSJens WiklanderAlignEscapedNewlines: Left
19*fa17182bSJens WiklanderAlignOperands: true
20*fa17182bSJens WiklanderAlignTrailingComments: false
21*fa17182bSJens WiklanderAllowAllParametersOfDeclarationOnNextLine: false
22*fa17182bSJens WiklanderAllowShortBlocksOnASingleLine: false
23*fa17182bSJens WiklanderAllowShortCaseLabelsOnASingleLine: false
24*fa17182bSJens WiklanderAllowShortFunctionsOnASingleLine: None
25*fa17182bSJens WiklanderAllowShortIfStatementsOnASingleLine: false
26*fa17182bSJens WiklanderAllowShortLoopsOnASingleLine: false
27*fa17182bSJens WiklanderAlwaysBreakAfterDefinitionReturnType: None
28*fa17182bSJens WiklanderAlwaysBreakAfterReturnType: None
29*fa17182bSJens WiklanderAlwaysBreakBeforeMultilineStrings: false
30*fa17182bSJens WiklanderAlwaysBreakTemplateDeclarations: false
31*fa17182bSJens WiklanderBinPackArguments: true
32*fa17182bSJens WiklanderBinPackParameters: true
33*fa17182bSJens WiklanderBraceWrapping:
34*fa17182bSJens Wiklander  AfterClass: false
35*fa17182bSJens Wiklander  AfterControlStatement: false
36*fa17182bSJens Wiklander  AfterEnum: false
37*fa17182bSJens Wiklander  AfterFunction: true
38*fa17182bSJens Wiklander  AfterNamespace: true
39*fa17182bSJens Wiklander  AfterObjCDeclaration: false
40*fa17182bSJens Wiklander  AfterStruct: false
41*fa17182bSJens Wiklander  AfterUnion: false
42*fa17182bSJens Wiklander  AfterExternBlock: false
43*fa17182bSJens Wiklander  BeforeCatch: false
44*fa17182bSJens Wiklander  BeforeElse: false
45*fa17182bSJens Wiklander  IndentBraces: false
46*fa17182bSJens Wiklander  SplitEmptyFunction: true
47*fa17182bSJens Wiklander  SplitEmptyRecord: true
48*fa17182bSJens Wiklander  SplitEmptyNamespace: true
49*fa17182bSJens WiklanderBreakBeforeBinaryOperators: None
50*fa17182bSJens WiklanderBreakBeforeBraces: Custom
51*fa17182bSJens WiklanderBreakBeforeInheritanceComma: false
52*fa17182bSJens WiklanderBreakBeforeTernaryOperators: false
53*fa17182bSJens WiklanderBreakConstructorInitializersBeforeComma: false
54*fa17182bSJens WiklanderBreakConstructorInitializers: BeforeComma
55*fa17182bSJens WiklanderBreakAfterJavaFieldAnnotations: false
56*fa17182bSJens WiklanderBreakStringLiterals: false
57*fa17182bSJens WiklanderColumnLimit: 80
58*fa17182bSJens WiklanderCommentPragmas: '^ IWYU pragma:'
59*fa17182bSJens WiklanderCompactNamespaces: false
60*fa17182bSJens WiklanderConstructorInitializerAllOnOneLineOrOnePerLine: false
61*fa17182bSJens WiklanderConstructorInitializerIndentWidth: 8
62*fa17182bSJens WiklanderContinuationIndentWidth: 8
63*fa17182bSJens WiklanderCpp11BracedListStyle: false
64*fa17182bSJens WiklanderDerivePointerAlignment: false
65*fa17182bSJens WiklanderDisableFormat: false
66*fa17182bSJens WiklanderExperimentalAutoDetectBinPacking: false
67*fa17182bSJens WiklanderFixNamespaceComments: false
68*fa17182bSJens Wiklander
69*fa17182bSJens Wiklander# Taken from:
70*fa17182bSJens Wiklander# find lib core -name "*.h" -path '*/include/*' -print0 | xargs -0 grep -E -h \
71*fa17182bSJens Wiklander#         '^#define[[:blank:]]*[^[:blank:]]*(FOREACH|for_each)[^[:blank:]]' | \
72*fa17182bSJens Wiklander# sed \
73*fa17182bSJens Wiklander# -e "s,^#define[ \t]*\([^[:space:]]*for_each[^[:space:]]*\)(.*$,  - '\1',"  \
74*fa17182bSJens Wiklander# -e "s,^#define[ \t]*\([^[:space:]]*FOREACH[^[:space:]]*\)(.*$,  - '\1'," | \
75*fa17182bSJens Wiklander# LC_ALL=C sort -u
76*fa17182bSJens WiklanderForEachMacros:
77*fa17182bSJens Wiklander  - 'CIRCLEQ_FOREACH'
78*fa17182bSJens Wiklander  - 'CIRCLEQ_FOREACH_REVERSE'
79*fa17182bSJens Wiklander  - 'LIST_FOREACH'
80*fa17182bSJens Wiklander  - 'LIST_FOREACH_SAFE'
81*fa17182bSJens Wiklander  - 'SCATTERED_ARRAY_FOREACH'
82*fa17182bSJens Wiklander  - 'SIMPLEQ_FOREACH'
83*fa17182bSJens Wiklander  - 'SLIST_FOREACH'
84*fa17182bSJens Wiklander  - 'SLIST_FOREACH_SAFE'
85*fa17182bSJens Wiklander  - 'STAILQ_FOREACH'
86*fa17182bSJens Wiklander  - 'STAILQ_FOREACH_SAFE'
87*fa17182bSJens Wiklander  - 'TAILQ_FOREACH'
88*fa17182bSJens Wiklander  - 'TAILQ_FOREACH_REVERSE'
89*fa17182bSJens Wiklander  - 'TAILQ_FOREACH_REVERSE_SAFE'
90*fa17182bSJens Wiklander  - 'TAILQ_FOREACH_SAFE'
91*fa17182bSJens Wiklander  - 'fdt_for_each_property_offset'
92*fa17182bSJens Wiklander  - 'fdt_for_each_subnode'
93*fa17182bSJens Wiklander  - 'for_each_dt_driver'
94*fa17182bSJens Wiklander  - 'for_each_early_ta'
95*fa17182bSJens Wiklander  - 'for_each_fip_sp'
96*fa17182bSJens Wiklander  - 'for_each_secure_partition'
97*fa17182bSJens Wiklander
98*fa17182bSJens WiklanderIncludeBlocks: Preserve
99*fa17182bSJens WiklanderIncludeCategories:
100*fa17182bSJens Wiklander  - Regex: '.*'
101*fa17182bSJens Wiklander    Priority: 1
102*fa17182bSJens WiklanderIncludeIsMainRegex: '(Test)?$'
103*fa17182bSJens WiklanderIndentCaseLabels: false
104*fa17182bSJens WiklanderIndentGotoLabels: false
105*fa17182bSJens WiklanderIndentPPDirectives: None
106*fa17182bSJens WiklanderIndentWidth: 8
107*fa17182bSJens WiklanderIndentWrappedFunctionNames: false
108*fa17182bSJens WiklanderJavaScriptQuotes: Leave
109*fa17182bSJens WiklanderJavaScriptWrapImports: true
110*fa17182bSJens WiklanderKeepEmptyLinesAtTheStartOfBlocks: false
111*fa17182bSJens WiklanderMacroBlockBegin: ''
112*fa17182bSJens WiklanderMacroBlockEnd: ''
113*fa17182bSJens WiklanderMaxEmptyLinesToKeep: 1
114*fa17182bSJens WiklanderNamespaceIndentation: None
115*fa17182bSJens WiklanderObjCBinPackProtocolList: Auto
116*fa17182bSJens WiklanderObjCBlockIndentWidth: 8
117*fa17182bSJens WiklanderObjCSpaceAfterProperty: true
118*fa17182bSJens WiklanderObjCSpaceBeforeProtocolList: true
119*fa17182bSJens Wiklander
120*fa17182bSJens Wiklander# Taken from git's rules
121*fa17182bSJens WiklanderPenaltyBreakAssignment: 10
122*fa17182bSJens WiklanderPenaltyBreakBeforeFirstCallParameter: 30
123*fa17182bSJens WiklanderPenaltyBreakComment: 10
124*fa17182bSJens WiklanderPenaltyBreakFirstLessLess: 0
125*fa17182bSJens WiklanderPenaltyBreakString: 10
126*fa17182bSJens WiklanderPenaltyExcessCharacter: 100
127*fa17182bSJens WiklanderPenaltyReturnTypeOnItsOwnLine: 60
128*fa17182bSJens Wiklander
129*fa17182bSJens WiklanderPointerAlignment: Right
130*fa17182bSJens WiklanderReflowComments: false
131*fa17182bSJens WiklanderSortIncludes: false
132*fa17182bSJens WiklanderSortUsingDeclarations: false
133*fa17182bSJens WiklanderSpaceAfterCStyleCast: false
134*fa17182bSJens WiklanderSpaceAfterTemplateKeyword: true
135*fa17182bSJens WiklanderSpaceBeforeAssignmentOperators: true
136*fa17182bSJens WiklanderSpaceBeforeCtorInitializerColon: true
137*fa17182bSJens WiklanderSpaceBeforeInheritanceColon: true
138*fa17182bSJens WiklanderSpaceBeforeParens: ControlStatementsExceptForEachMacros
139*fa17182bSJens WiklanderSpaceBeforeRangeBasedForLoopColon: true
140*fa17182bSJens WiklanderSpaceInEmptyParentheses: false
141*fa17182bSJens WiklanderSpacesBeforeTrailingComments: 1
142*fa17182bSJens WiklanderSpacesInAngles: false
143*fa17182bSJens WiklanderSpacesInContainerLiterals: false
144*fa17182bSJens WiklanderSpacesInCStyleCastParentheses: false
145*fa17182bSJens WiklanderSpacesInParentheses: false
146*fa17182bSJens WiklanderSpacesInSquareBrackets: false
147*fa17182bSJens WiklanderStandard: Cpp03
148*fa17182bSJens WiklanderTabWidth: 8
149*fa17182bSJens WiklanderUseTab: Always
150*fa17182bSJens Wiklander...
151