diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 2ddff47b930caa7028f5684da51c685a25327f21..e06b5de419db3b7b65b7e6de2aa64f00a35c23a5 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1826,6 +1826,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, return 500; if (Left.isOneOf(tok::kw_class, tok::kw_struct)) return 5000; + if (Left.is(tok::comment)) + return 1000; if (Left.isOneOf(TT_RangeBasedForLoopColon, TT_InheritanceColon)) return 2; @@ -2464,7 +2466,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line, Left.getPrecedence() == prec::Assignment)) return true; return Left.isOneOf(tok::comma, tok::coloncolon, tok::semi, tok::l_brace, - tok::kw_class, tok::kw_struct) || + tok::kw_class, tok::kw_struct, tok::comment) || Right.isMemberAccess() || Right.isOneOf(TT_TrailingReturnArrow, TT_LambdaArrow, tok::lessless, tok::colon, tok::l_square, tok::at) || diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 5effc3162f743f9f7221cef6e46a507131d3355d..09149f1d8850e723c040c6260d171ad31d0a02b6 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1143,6 +1143,8 @@ TEST_F(FormatTest, UnderstandsBlockComments) { " aaaaaaaaaaaaaaaaaa ,\n" " aaaaaaaaaaaaaaaaaa) { /*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/\n" "}")); + verifyFormat("f(/* aaaaaaaaaaaaaaaaaa = */\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);"); FormatStyle NoBinPacking = getLLVMStyle(); NoBinPacking.BinPackParameters = false;