Fix aligning of comments.
Previously we started sequences to align for single line comments when the previous line had a trailing comment, but the sequence was broken for other reasons. Now we re-format: // a // b f(); // c to: // a // b f(); // c llvm-svn: 182608
This commit is contained in:
@@ -170,10 +170,11 @@ void WhitespaceManager::alignTrailingComments() {
|
||||
MinColumn = std::max(MinColumn, ChangeMinColumn);
|
||||
MaxColumn = std::min(MaxColumn, ChangeMaxColumn);
|
||||
}
|
||||
BreakBeforeNext = (i == 0) || (Changes[i].NewlinesBefore > 1) ||
|
||||
(Changes[i].NewlinesBefore == 1 &&
|
||||
!Changes[i - 1].IsTrailingComment) ||
|
||||
WasAlignedWithStartOfNextLine;
|
||||
BreakBeforeNext =
|
||||
(i == 0) || (Changes[i].NewlinesBefore > 1) ||
|
||||
// Never start a sequence with a comment at the beginning of
|
||||
// the line.
|
||||
(Changes[i].NewlinesBefore == 1 && StartOfSequence == i);
|
||||
Newlines = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -657,6 +657,26 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {
|
||||
format("lineWith(); // comment\n"
|
||||
"// at start\n"
|
||||
"otherLine(); // comment"));
|
||||
EXPECT_EQ("lineWith();\n"
|
||||
"// at start\n"
|
||||
"otherLine(); // comment",
|
||||
format("lineWith();\n"
|
||||
" // at start\n"
|
||||
"otherLine(); // comment"));
|
||||
EXPECT_EQ("// first\n"
|
||||
"// at start\n"
|
||||
"otherLine(); // comment",
|
||||
format("// first\n"
|
||||
" // at start\n"
|
||||
"otherLine(); // comment"));
|
||||
EXPECT_EQ("f();\n"
|
||||
"// first\n"
|
||||
"// at start\n"
|
||||
"otherLine(); // comment",
|
||||
format("f();\n"
|
||||
"// first\n"
|
||||
" // at start\n"
|
||||
"otherLine(); // comment"));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, CanFormatCommentsLocally) {
|
||||
|
||||
Reference in New Issue
Block a user