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.
|
||||
if (Previous.opensScope() && Previous.isNot(tok::l_brace) &&
|
||||
State.LowestLevelOnLine < State.StartOfLineLevel)
|
||||
State.LowestLevelOnLine < State.StartOfLineLevel &&
|
||||
State.LowestLevelOnLine < Current.NestingLevel)
|
||||
return false;
|
||||
if (Current.isMemberAccess() && State.Stack.back().ContainsUnwrappedBuilder)
|
||||
return false;
|
||||
|
|
|
@ -4467,6 +4467,14 @@ TEST_F(FormatTest, WrapsTemplateDeclarations) {
|
|||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(\n"
|
||||
" bbbbbbbbbbbbbbbbbbbbbbbb);",
|
||||
getLLVMStyleWithColumns(72));
|
||||
EXPECT_EQ("static_cast<A< //\n"
|
||||
" B> *>(\n"
|
||||
"\n"
|
||||
" );",
|
||||
format("static_cast<A<//\n"
|
||||
" B>*>(\n"
|
||||
"\n"
|
||||
" );"));
|
||||
|
||||
FormatStyle AlwaysBreak = getLLVMStyle();
|
||||
AlwaysBreak.AlwaysBreakTemplateDeclarations = true;
|
||||
|
|
Loading…
Reference in New Issue