diff options
author | Daniel Jasper <djasper@google.com> | 2015-06-18 09:12:47 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-06-18 09:12:47 +0000 |
commit | 2aaedd3a7eaf98fc06c2fac068ceb6ca1d5d3d30 (patch) | |
tree | 31c1d1febf2425010bfe5ff885098e607a779391 /clang/lib/Format | |
parent | d3057e5e37df028068cd7207a9ade65a8cde31fb (diff) | |
download | bcm5719-llvm-2aaedd3a7eaf98fc06c2fac068ceb6ca1d5d3d30.tar.gz bcm5719-llvm-2aaedd3a7eaf98fc06c2fac068ceb6ca1d5d3d30.zip |
clang-format: Make AlwaysBreakBeforeMultilineStrings more conservative.
In essence this is meant to consistently indent multiline strings by a
fixed amount of spaces from the start of the line. Don't do this in
cases where it wouldn't help anyway.
Before:
someFunction(aaaaa,
"aaaaa"
"bbbbb");
After:
someFunction(aaaaa, "aaaaa"
"bbbbb");
llvm-svn: 240004
Diffstat (limited to 'clang/lib/Format')
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 8a55241cdc3..7e751d46fdd 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -150,12 +150,6 @@ bool ContinuationIndenter::mustBreak(const LineState &State) { State.Stack.back().BreakBeforeParameter && !Current.isTrailingComment() && !Current.isOneOf(tok::r_paren, tok::r_brace)) return true; - if (Style.AlwaysBreakBeforeMultilineStrings && - State.Column > State.Stack.back().Indent && // Breaking saves columns. - !Previous.isOneOf(tok::kw_return, tok::lessless, tok::at) && - !Previous.isOneOf(TT_InlineASMColon, TT_ConditionalExpr) && - nextIsMultilineString(State)) - return true; if (((Previous.is(TT_DictLiteral) && Previous.is(tok::l_brace)) || Previous.is(TT_ArrayInitializerLSquare)) && Style.ColumnLimit > 0 && @@ -170,9 +164,17 @@ bool ContinuationIndenter::mustBreak(const LineState &State) { State.Stack.back().BreakBeforeParameter) return true; - if (State.Column < getNewLineColumn(State)) + unsigned NewLineColumn = getNewLineColumn(State); + if (State.Column < NewLineColumn) return false; + if (Style.AlwaysBreakBeforeMultilineStrings && + NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth && + !Previous.isOneOf(tok::kw_return, tok::lessless, tok::at) && + !Previous.isOneOf(TT_InlineASMColon, TT_ConditionalExpr) && + nextIsMultilineString(State)) + return true; + // Using CanBreakBefore here and below takes care of the decision whether the // current style uses wrapping before or after operators for the given // operator. |