mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Add project-wide .clang-format
Add a .clang-format configuration and mention it in the coding guidelines. Usage example: $ clang-format -i **/*.[ch] Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
f69350e8bd
commit
4bd135c3c7
134
.clang-format
Normal file
134
.clang-format
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# Must be compatible with clang-format 14
|
||||||
|
---
|
||||||
|
AccessModifierOffset: "-4"
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignArrayOfStructures: None
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveBitFields: AcrossComments
|
||||||
|
AlignConsecutiveMacros: AcrossComments
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AllowAllArgumentsOnNextLine: false
|
||||||
|
AllowAllConstructorInitializersOnNextLine: false
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: None
|
||||||
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: false
|
||||||
|
BitFieldColonSpacing: Both
|
||||||
|
BinPackArguments: true
|
||||||
|
BinPackParameters: true
|
||||||
|
BraceWrapping:
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: false
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: true
|
||||||
|
AfterNamespace: true
|
||||||
|
AfterObjCDeclaration: false
|
||||||
|
AfterStruct: false
|
||||||
|
AfterUnion: false
|
||||||
|
AfterExternBlock: false
|
||||||
|
BeforeCatch: false
|
||||||
|
BeforeElse: false
|
||||||
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: true
|
||||||
|
SplitEmptyRecord: true
|
||||||
|
SplitEmptyNamespace: true
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BreakBeforeInheritanceComma: false
|
||||||
|
BreakBeforeTernaryOperators: false
|
||||||
|
BreakConstructorInitializers: BeforeComma
|
||||||
|
BreakConstructorInitializersBeforeComma: false
|
||||||
|
BreakStringLiterals: false
|
||||||
|
ColumnLimit: "100"
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: "8"
|
||||||
|
ContinuationIndentWidth: "8"
|
||||||
|
Cpp11BracedListStyle: false
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
FixNamespaceComments: false
|
||||||
|
# git grep -h '^#define [^[:space:]]*\(for_each\|iterate\)[^[:space:]]*(' \
|
||||||
|
# | sed "s,^#define \([^[:space:]]*\(for_each\|iterate\)[^[:space:]]*\)(.*$, - '\1'," \
|
||||||
|
# | LC_ALL=C sort -u
|
||||||
|
ForEachMacros:
|
||||||
|
- "dfi_cpu_iterate"
|
||||||
|
- "dfi_mem_chunk_iterate"
|
||||||
|
- "dfo_chunk_iterate"
|
||||||
|
- "for_each_rb_entry"
|
||||||
|
- "ns_range_for_each"
|
||||||
|
- "sd_cpu_item_enable_iterate"
|
||||||
|
- "sd_cpu_item_iterate"
|
||||||
|
- "sd_cpu_iterate"
|
||||||
|
- "sd_cpu_type_iterate"
|
||||||
|
- "sd_sys_item_enable_iterate"
|
||||||
|
- "sd_sys_item_iterate"
|
||||||
|
- "sd_sys_iterate"
|
||||||
|
- "table_col_iterate"
|
||||||
|
- "table_iterate_mark_keys"
|
||||||
|
- "util_list_iterate"
|
||||||
|
- "util_list_iterate_safe"
|
||||||
|
- "util_opt_iterate"
|
||||||
|
- "util_rec_iterate"
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
# Leave imports as is
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: .*
|
||||||
|
Priority: 1
|
||||||
|
IndentCaseLabels: false
|
||||||
|
IndentGotoLabels: false
|
||||||
|
IndentPPDirectives: None
|
||||||
|
IndentWidth: "8"
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
MacroBlockBegin: ""
|
||||||
|
MacroBlockEnd: ""
|
||||||
|
MaxEmptyLinesToKeep: "1"
|
||||||
|
NamespaceIndentation: Inner
|
||||||
|
PackConstructorInitializers: CurrentLine
|
||||||
|
PenaltyBreakAssignment: "10"
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: "30"
|
||||||
|
PenaltyBreakComment: "10"
|
||||||
|
PenaltyBreakFirstLessLess: "0"
|
||||||
|
PenaltyBreakString: "10"
|
||||||
|
PenaltyExcessCharacter: "100"
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: "60"
|
||||||
|
PointerAlignment: Right
|
||||||
|
ReflowComments: true
|
||||||
|
SortIncludes: false
|
||||||
|
SortUsingDeclarations: false
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeCtorInitializerColon: true
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
SpaceBeforeParens: ControlStatementsExceptForEachMacros
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: "1"
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
SpacesInLineCommentPrefix:
|
||||||
|
Minimum: 1
|
||||||
|
Maximum: -1
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Auto
|
||||||
|
StatementMacros:
|
||||||
|
- "STATIC_ASSERT"
|
||||||
|
TabWidth: "8"
|
||||||
|
TypenameMacros:
|
||||||
|
- "STACK_OF"
|
||||||
|
UseTab: Always
|
||||||
|
WhitespaceSensitiveMacros:
|
||||||
|
- "STRINGIFY"
|
||||||
@@ -17,6 +17,31 @@ This package started in 2001 and has a long "tradition" - therefore, older tools
|
|||||||
might not follow all recommendations. Note that when changing existing code,
|
might not follow all recommendations. Note that when changing existing code,
|
||||||
consistency could have priority over applying rules.
|
consistency could have priority over applying rules.
|
||||||
|
|
||||||
|
Automatic Code Formatting
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
> **NOTE:** clang-format is a helpful tool but please don't use it blindly!
|
||||||
|
|
||||||
|
s390-tools provides a ClangFormat (https://clang.llvm.org/docs/ClangFormat.html)
|
||||||
|
configuration file - see [`.clang-format`](.clang-format). It can be used to
|
||||||
|
format your C/C++ code automatically.
|
||||||
|
|
||||||
|
Clang-format can format a single file or multiple files at once. For example, to
|
||||||
|
format `main.c` in place, run the following command in a terminal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
clang-format -i main.c
|
||||||
|
```
|
||||||
|
|
||||||
|
In order to format only your current staged changes use the clang-format git
|
||||||
|
plugin:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clang-format --staged
|
||||||
|
```
|
||||||
|
|
||||||
|
See also `git clang-format -h`.
|
||||||
|
|
||||||
Standard abbreviations
|
Standard abbreviations
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user