clang-format: Fix aligning of comments and escaped newlines in macros.

Before:
  #define A      \
    int i;   /*a*/ \
    int jjj; /*b*/

After:
  #define A        \
    int i;   /*a*/ \
    int jjj; /*b*/

llvm-svn: 205011
This commit is contained in:
Daniel Jasper 2014-03-28 15:06:01 +00:00
parent 5e1bac3a38
commit 03b1bc7a2a
2 changed files with 9 additions and 0 deletions

View File

@ -193,6 +193,10 @@ void WhitespaceManager::alignTrailingComments(unsigned Start, unsigned End,
if (Changes[i].IsTrailingComment) {
assert(Column >= Changes[i].StartOfTokenColumn);
Changes[i].Spaces += Column - Changes[i].StartOfTokenColumn;
if (i + 1 != End) {
Changes[i + 1].PreviousEndOfTokenColumn +=
Column - Changes[i].StartOfTokenColumn;
}
Changes[i].StartOfTokenColumn = Column;
}
}

View File

@ -946,6 +946,11 @@ TEST_F(FormatTest, UnderstandsBlockComments) {
" /* parameter 3 */ aaaaaa,\n"
" /* parameter 4 */ aaaaaa);",
NoBinPacking);
// Aligning block comments in macros.
verifyGoogleFormat("#define A \\\n"
" int i; /*a*/ \\\n"
" int jjj; /*b*/");
}
TEST_F(FormatTest, AlignsBlockComments) {