forked from OSchip/llvm-project
clang-format: Improve heuristic around avoiding bad line breaks.
Now, this can be properly formatted: static_cast<A< // B> *>( // ); Before, clang-format could end up, not formatting the code at all. llvm-svn: 213055
This commit is contained in:
parent
bce3cf8074
commit
fcfac10c8a
|
@ -108,7 +108,8 @@ bool ContinuationIndenter::canBreak(const LineState &State) {
|
||||||
// ...
|
// ...
|
||||||
// As they hide "DoSomething" and are generally bad for readability.
|
// As they hide "DoSomething" and are generally bad for readability.
|
||||||
if (Previous.opensScope() && Previous.isNot(tok::l_brace) &&
|
if (Previous.opensScope() && Previous.isNot(tok::l_brace) &&
|
||||||
State.LowestLevelOnLine < State.StartOfLineLevel)
|
State.LowestLevelOnLine < State.StartOfLineLevel &&
|
||||||
|
State.LowestLevelOnLine < Current.NestingLevel)
|
||||||
return false;
|
return false;
|
||||||
if (Current.isMemberAccess() && State.Stack.back().ContainsUnwrappedBuilder)
|
if (Current.isMemberAccess() && State.Stack.back().ContainsUnwrappedBuilder)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -4467,6 +4467,14 @@ TEST_F(FormatTest, WrapsTemplateDeclarations) {
|
||||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(\n"
|
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(\n"
|
||||||
" bbbbbbbbbbbbbbbbbbbbbbbb);",
|
" bbbbbbbbbbbbbbbbbbbbbbbb);",
|
||||||
getLLVMStyleWithColumns(72));
|
getLLVMStyleWithColumns(72));
|
||||||
|
EXPECT_EQ("static_cast<A< //\n"
|
||||||
|
" B> *>(\n"
|
||||||
|
"\n"
|
||||||
|
" );",
|
||||||
|
format("static_cast<A<//\n"
|
||||||
|
" B>*>(\n"
|
||||||
|
"\n"
|
||||||
|
" );"));
|
||||||
|
|
||||||
FormatStyle AlwaysBreak = getLLVMStyle();
|
FormatStyle AlwaysBreak = getLLVMStyle();
|
||||||
AlwaysBreak.AlwaysBreakTemplateDeclarations = true;
|
AlwaysBreak.AlwaysBreakTemplateDeclarations = true;
|
||||||
|
|
Loading…
Reference in New Issue