зеркало из https://github.com/microsoft/clang-1.git
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182608 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
23ad339cdb
Коммит
854ca794c1
|
@ -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) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче