user392412
user392412

Reputation: 743

How can clang-format don't put if statements into one line?

Just like the code below, I use clang-format to automatic format my codes

if(detectBeats[*beatsCont-2] > detectBeats[*beatsCont-1]
   || fabs(detectBeats[*beatsCont-2] > detectBeats[*beatsCont-1]) < 1.0)
{
    *beatsCont -=1;
}

Whatever I set the .clang-formt file, it always formatted like this:

if(detectBeats[*beatsCont-2] > detectBeats[*beatsCont-1] || fabs(detectBeats[*beatsCont-2] > detectBeats[*beatsCont-1]) < 1.0)
{
    *beatsCont -=1;
}

How can I set the rules not wrap the if statements into oneline?

My question isn't as that question(Clang format splits if statement body into multiple lines), b/c my if statement wrapped, not the body

Here is my .clang-format file

AccessModifierOffset : -4
AllowAllParametersOfDeclarationOnNextLine : false
AlignEscapedNewlinesLeft : false
AlignOperands:   true
AlignTrailingComments : true
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine : true
AllowShortLoopsOnASingleLine: true
BinPackArguments : false
BinPackParameters : false
BreakBeforeBraces : Linux
ColumnLimit: 0
CommentPragmas: '^ *\/\/'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
IndentWidth : 4
KeepEmptyLinesAtTheStartOfBlocks : false
Language : Cpp
MaxEmptyLinesToKeep : 2
ObjCBlockIndentWidth : 2
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList : false
PointerAlignment: Right
ReflowComments:  true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators : true
SpaceBeforeParens : ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments : 1
SpacesInAngles:  false
SpacesInContainerLiterals : false
SpacesInParentheses : false
SpacesInSquareBrackets: false
Standard: Cpp11
UseTab : Never

Upvotes: 3

Views: 4333

Answers (2)

In case anyone like me trying hours to find the answer, here is the config:

BreakBeforeBinaryOperators: NonAssignment

Here is the document for more info: https://clang.llvm.org/docs/ClangFormatStyleOptions.html#breakbeforebinaryoperators

Upvotes: 2

Stargateur
Stargateur

Reputation: 26697

You need to use ColumnLimit. Doc here. More method here

Upvotes: 1

Related Questions