forked from OSchip/llvm-project
Remove "incorrect" aligning of trailing comments.
We used to align trailing comments belong to different things. Before: void f() { // some function.. } int a; // some variable.. After: void f() { // some function.. } int a; // some variable.. llvm-svn: 173100
This commit is contained in:
parent
b7abb30d77
commit
304a986a72
|
@ -202,7 +202,13 @@ public:
|
|||
void replaceWhitespace(const AnnotatedToken &Tok, unsigned NewLines,
|
||||
unsigned Spaces, unsigned WhitespaceStartColumn,
|
||||
const FormatStyle &Style) {
|
||||
if (Tok.Type == TT_LineComment && NewLines < 2 &&
|
||||
// 2+ newlines mean an empty line separating logic scopes.
|
||||
if (NewLines >= 2)
|
||||
alignComments();
|
||||
|
||||
// Align line comments if they are trailing or if they continue other
|
||||
// trailing comments.
|
||||
if (Tok.Type == TT_LineComment &&
|
||||
(Tok.Parent != NULL || !Comments.empty())) {
|
||||
if (Style.ColumnLimit >=
|
||||
Spaces + WhitespaceStartColumn + Tok.FormatTok.TokenLength) {
|
||||
|
@ -215,10 +221,11 @@ public:
|
|||
Spaces - Tok.FormatTok.TokenLength;
|
||||
return;
|
||||
}
|
||||
} else if (NewLines == 0 && Tok.Children.empty() &&
|
||||
Tok.Type != TT_LineComment) {
|
||||
alignComments();
|
||||
}
|
||||
|
||||
// If this line does not have a trailing comment, align the stored comments.
|
||||
if (Tok.Children.empty() && Tok.Type != TT_LineComment)
|
||||
alignComments();
|
||||
storeReplacement(Tok.FormatTok,
|
||||
std::string(NewLines, '\n') + std::string(Spaces, ' '));
|
||||
}
|
||||
|
|
|
@ -404,6 +404,21 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {
|
|||
" // Comment inside a statement.\n"
|
||||
" bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;");
|
||||
|
||||
EXPECT_EQ("void f() { // This does something ..\n"
|
||||
"}\n"
|
||||
"int a; // This is unrelated",
|
||||
format("void f() { // This does something ..\n"
|
||||
" }\n"
|
||||
"int a; // This is unrelated"));
|
||||
EXPECT_EQ("void f() { // This does something ..\n"
|
||||
"} // awesome..\n"
|
||||
"\n"
|
||||
"int a; // This is unrelated",
|
||||
format("void f() { // This does something ..\n"
|
||||
" } // awesome..\n"
|
||||
" \n"
|
||||
"int a; // This is unrelated"));
|
||||
|
||||
EXPECT_EQ("int i; // single line trailing comment",
|
||||
format("int i;\\\n// single line trailing comment"));
|
||||
|
||||
|
|
Loading…
Reference in New Issue