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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217588
91177308-0d34-0410-b5e6-
96231b3b80d8
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;
+ }
}
};
" 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) {