mirror of
https://github.com/ceph/ceph
synced 2026-08-01 22:45:39 +00:00
Add .clang-format configuration file
Fixes: https://tracker.ceph.com/issues/72587 Signed-off-by: Edwin Rodriguez <edwin.rodriguez1@ibm.com>
This commit is contained in:
parent
7bcf0e2321
commit
2484fdc8da
219
.clang-format
Normal file
219
.clang-format
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# Documentation on clang-format options here:
|
||||||
|
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
|
||||||
|
Language: Cpp
|
||||||
|
Standard: c++20
|
||||||
|
|
||||||
|
# Google style is a good starting point; modifiers attempt to match style
|
||||||
|
# guide here: https://github.com/ceph/ceph/blob/main/CodingStyle
|
||||||
|
BasedOnStyle: Google
|
||||||
|
IndentWidth: 2
|
||||||
|
TabWidth: 8
|
||||||
|
UseTab: Never
|
||||||
|
MaxEmptyLinesToKeep: 2
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
|
||||||
|
# The intended impact here is to allow up to 96 characters, but break at 80 if
|
||||||
|
# 96 is exceeded.
|
||||||
|
ColumnLimit: 80
|
||||||
|
|
||||||
|
# The "Penalty" concept in clang-format is not well
|
||||||
|
# documented, see here for more: https://stackoverflow.com/questions/26635370
|
||||||
|
#
|
||||||
|
# Note that the penalties are not numbers of characters, they act more like
|
||||||
|
# decision weights.
|
||||||
|
PenaltyExcessCharacter: 50
|
||||||
|
PenaltyBreakAssignment: 50
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 50
|
||||||
|
PenaltyBreakOpenParenthesis: 50
|
||||||
|
|
||||||
|
# Brace wrapping to match style guide
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BraceWrapping:
|
||||||
|
AfterCaseLabel: false
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: Never
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: true
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterStruct: false
|
||||||
|
BeforeCatch: false
|
||||||
|
BeforeElse: false
|
||||||
|
BeforeLambdaBody: false
|
||||||
|
SplitEmptyFunction: false
|
||||||
|
SplitEmptyRecord: false
|
||||||
|
SplitEmptyNamespace: false
|
||||||
|
|
||||||
|
# Access modifiers indent/outdent specified relative to body, use -2 to
|
||||||
|
# align to braces. Also do not indent case blocks. Finally, an emply line
|
||||||
|
# should always precede "private:" or "public:" or "protected:"
|
||||||
|
AccessModifierOffset: -2
|
||||||
|
IndentCaseLabels: false
|
||||||
|
EmptyLineBeforeAccessModifier: Always
|
||||||
|
ConstructorInitializerIndentWidth: 2
|
||||||
|
|
||||||
|
#Always break after an open bracket, if the parameters don’t fit on a single line
|
||||||
|
AlignAfterOpenBracket: AlwaysBreak
|
||||||
|
|
||||||
|
# Newline escapes should be aligned and located at the leftmost alignment
|
||||||
|
AlignEscapedNewlines: Left
|
||||||
|
|
||||||
|
# Align after operands across continuation into multiple lines for binary and
|
||||||
|
# ternary.
|
||||||
|
AlignOperands: Align
|
||||||
|
|
||||||
|
# Do not align trailing comments across multiple lines. Note that this only applies
|
||||||
|
# to the single-line comment style using "//". Block inlines are always left alone.
|
||||||
|
AlignTrailingComments: false
|
||||||
|
|
||||||
|
# If the function declaration doesn’t fit on a line, allow putting all parameters of a
|
||||||
|
# function declaration onto the next line even if BinPackParameters is OnePerLine
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: false
|
||||||
|
|
||||||
|
# Do not allow short enums on a single line.
|
||||||
|
AllowShortEnumsOnASingleLine: false
|
||||||
|
|
||||||
|
# Only merge functions defined inside a class. Implies empty
|
||||||
|
AllowShortFunctionsOnASingleLine: All
|
||||||
|
|
||||||
|
# Never put short ifs on the same line.
|
||||||
|
AllowShortIfStatementsOnASingleLine: false
|
||||||
|
|
||||||
|
# If true, "while (true) continue;" can be put on a single line
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
|
||||||
|
# Always break after the return type of function definitions.
|
||||||
|
AlwaysBreakAfterReturnType: AllDefinitions
|
||||||
|
|
||||||
|
# Always break after template declaration.
|
||||||
|
AlwaysBreakTemplateDeclarations: Yes
|
||||||
|
|
||||||
|
# If false, a function declaration’s or function definition’s parameters
|
||||||
|
# will either all be on the same line or will have one line each.
|
||||||
|
BinPackArguments: true
|
||||||
|
BinPackParameters: false
|
||||||
|
|
||||||
|
# The break should always be after the binary and ternary operands.
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
|
||||||
|
# Break constructor initializers before the colon and after the commas.
|
||||||
|
# Constructor()
|
||||||
|
# : initializer1(),
|
||||||
|
# initializer2()
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
|
||||||
|
# Pad the braced list with spaces inside the braces.
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
|
||||||
|
# Where to put the & and the * in the case of pointers/references.
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
PointerAlignment: Left
|
||||||
|
|
||||||
|
# Keep empty lines at end of file.
|
||||||
|
KeepEmptyLinesAtEOF: false
|
||||||
|
|
||||||
|
# Keep empty lines at start of a block.
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
|
||||||
|
# Align lambda body relative to the lambda signature.
|
||||||
|
LambdaBodyIndentation: Signature
|
||||||
|
|
||||||
|
# No indent in namespaces.
|
||||||
|
NamespaceIndentation: None
|
||||||
|
|
||||||
|
# No way to specify C vs C++ style comment for namespace closure, so just
|
||||||
|
# leave them alone.
|
||||||
|
FixNamespaceComments: true
|
||||||
|
|
||||||
|
# 1 space before trailing comments
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
|
||||||
|
# Colon spacing should always be '"key" : "value"'
|
||||||
|
BitFieldColonSpacing: Both
|
||||||
|
|
||||||
|
# Do not break up strings into multi-line strings. This becomes a problem when
|
||||||
|
# multi-line strings with no spaces are broken.
|
||||||
|
BreakStringLiterals: true
|
||||||
|
|
||||||
|
# C-tor should always break before the : and again before the {} in cases where
|
||||||
|
# otherwise the c-tor could theoretically be one-lined. In the case where the
|
||||||
|
# initializer list is short enough to fit on one line after the wrap, do not break
|
||||||
|
# into individual lines.
|
||||||
|
# Note NextLineOnly requires clang-format >= 15
|
||||||
|
PackConstructorInitializers: NextLineOnly
|
||||||
|
|
||||||
|
# includes are sorted based on the other suboptions below
|
||||||
|
SortIncludes: true
|
||||||
|
# Merge multiple #include blocks together and sort as one. Then split into groups based on
|
||||||
|
# category priority.
|
||||||
|
IncludeBlocks: Regroup
|
||||||
|
# Regular expressions denoting the different #include categories used for ordering #includes.
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: 'debug.h'
|
||||||
|
Priority: 4
|
||||||
|
- Regex: '\"\./[^/]+\"'
|
||||||
|
Priority: 1
|
||||||
|
- Regex: '\"[^/]+\"'
|
||||||
|
Priority: 8
|
||||||
|
- Regex: 'boost'
|
||||||
|
Priority: 5
|
||||||
|
- Regex: '<.*\.h'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '<'
|
||||||
|
Priority: 3
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 6
|
||||||
|
|
||||||
|
# use "template <>" instead of "template<>"
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
|
||||||
|
# Always pad assignments with a space, like "variable = 2;".
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
|
||||||
|
# Turn off comment reflow entirely
|
||||||
|
# TODO: This was done to prevent undoing good formatting of doxygen @brief @param
|
||||||
|
# etc multi-line comments (similar to this comment). Investigate comment
|
||||||
|
# pragmas to leave these alone?
|
||||||
|
ReflowComments: false
|
||||||
|
|
||||||
|
# There should always be an empty line between method definiton blocks.
|
||||||
|
SeparateDefinitionBlocks: Always
|
||||||
|
|
||||||
|
# The penalty for each line break introduced inside a comment.
|
||||||
|
PenaltyBreakComment: 0
|
||||||
|
|
||||||
|
# How many spaces are allowed at the start of a line comment. To disable the maximum
|
||||||
|
# set it to -1, apart from that the maximum takes precedence over the minimum
|
||||||
|
SpacesInLineCommentPrefix:
|
||||||
|
Minimum: 1
|
||||||
|
Maximum: -1
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Language: Proto
|
||||||
|
|
||||||
|
# Google style is a good starting point;
|
||||||
|
BasedOnStyle: Google
|
||||||
|
IndentWidth: 2
|
||||||
|
|
||||||
|
# The intended impact here is to allow up to 96 characters, but break at 80 if
|
||||||
|
# 96 is exceeded. The "Penalty" concept in clang-format is not well
|
||||||
|
# documented, see here for more: https://stackoverflow.com/questions/26635370
|
||||||
|
ColumnLimit: 80
|
||||||
|
PenaltyExcessCharacter: 50
|
||||||
|
|
||||||
|
# Turn off comment reflow entirely
|
||||||
|
# TODO: This was done to prevent undoing user-defined formatting of multi-line
|
||||||
|
# comments.
|
||||||
|
ReflowComments: false
|
||||||
|
|
||||||
|
---
|
||||||
|
Language: Json
|
||||||
|
|
||||||
|
# Google style is a good starting point
|
||||||
|
BasedOnStyle: Google
|
||||||
|
IndentWidth: 2
|
||||||
|
MaxEmptyLinesToKeep: 2
|
||||||
Loading…
Reference in New Issue
Block a user