mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +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