forked from OSchip/llvm-project
Fix bug 20892 - clang-format does not handle C-style comments
Summary: http://llvm.org/bugs/show_bug.cgi?id=20892 Add support of C-style formatting enabling/disabling directives. Now the following two styles are supported: // clang-format on /* clang-format on */ The flexibility in comments (support of extra spaces and/or slashes, etc.) is deliberately avoided to simplify search in large code bases. Reviewers: djasper Reviewed By: djasper Subscribers: cfe-commits, curdeius, klimek Differential Revision: http://reviews.llvm.org/D5309 llvm-svn: 217588
This commit is contained in:
parent
ee46b0c8be
commit
650ecb53ca
|
@ -1725,11 +1725,18 @@ private:
|
|||
Tok.Tok.setKind(tok::char_constant);
|
||||
}
|
||||
}
|
||||
if (Tok.is(tok::comment) && Tok.TokenText == "// clang-format on")
|
||||
|
||||
if (Tok.is(tok::comment) && (Tok.TokenText == "// clang-format on" ||
|
||||
Tok.TokenText == "/* clang-format on */")) {
|
||||
FormattingDisabled = false;
|
||||
}
|
||||
|
||||
Tok.Finalized = FormattingDisabled;
|
||||
if (Tok.is(tok::comment) && Tok.TokenText == "// clang-format off")
|
||||
|
||||
if (Tok.is(tok::comment) && (Tok.TokenText == "// clang-format off" ||
|
||||
Tok.TokenText == "/* clang-format off */")) {
|
||||
FormattingDisabled = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -9355,6 +9355,16 @@ TEST_F(FormatTest, DisableRegions) {
|
|||
" int j;\n"
|
||||
" // clang-format on\n"
|
||||
" int k;"));
|
||||
EXPECT_EQ("int i;\n"
|
||||
"/* clang-format off */\n"
|
||||
" int j;\n"
|
||||
"/* clang-format on */\n"
|
||||
"int k;",
|
||||
format(" int i;\n"
|
||||
" /* clang-format off */\n"
|
||||
" int j;\n"
|
||||
" /* clang-format on */\n"
|
||||
" int k;"));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, DoNotCrashOnInvalidInput) {
|
||||
|
|
Loading…
Reference in New Issue