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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182608 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manuel Klimek 2013-05-23 20:46:07 +00:00
Родитель 23ad339cdb
Коммит 854ca794c1
2 изменённых файлов: 25 добавлений и 4 удалений

Просмотреть файл

@ -170,10 +170,11 @@ void WhitespaceManager::alignTrailingComments() {
MinColumn = std::max(MinColumn, ChangeMinColumn); MinColumn = std::max(MinColumn, ChangeMinColumn);
MaxColumn = std::min(MaxColumn, ChangeMaxColumn); MaxColumn = std::min(MaxColumn, ChangeMaxColumn);
} }
BreakBeforeNext = (i == 0) || (Changes[i].NewlinesBefore > 1) || BreakBeforeNext =
(Changes[i].NewlinesBefore == 1 && (i == 0) || (Changes[i].NewlinesBefore > 1) ||
!Changes[i - 1].IsTrailingComment) || // Never start a sequence with a comment at the beginning of
WasAlignedWithStartOfNextLine; // the line.
(Changes[i].NewlinesBefore == 1 && StartOfSequence == i);
Newlines = 0; Newlines = 0;
} }
} }

Просмотреть файл

@ -657,6 +657,26 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {
format("lineWith(); // comment\n" format("lineWith(); // comment\n"
"// at start\n" "// at start\n"
"otherLine(); // comment")); "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) { TEST_F(FormatTest, CanFormatCommentsLocally) {