зеркало из 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);
|
||||
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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче