[clang] [clang-format] Add OneLineFormatOffRegex option (PR #137577)
Björn Schäpers via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 28 12:20:13 PDT 2025
================
@@ -24954,6 +24954,82 @@ TEST_F(FormatTest, DisableRegions) {
"// clang-format on");
}
+TEST_F(FormatTest, OneLineFormatOffRegex) {
+ auto Style = getLLVMStyle();
+ Style.OneLineFormatOffRegex = "// format off$";
+
+ verifyFormat("// format off\n"
+ "int i ;\n"
+ "int j;",
+ " // format off\n"
+ "int i ;\n"
+ "int j ;",
+ Style);
+ verifyFormat("// format off?\n"
+ "int i;",
+ "// format off?\n"
+ "int i ;",
+ Style);
+ verifyFormat("f(\"// format off\");", "f(\"// format off\") ;", Style);
+
+ verifyFormat("int i;\n"
+ "// format off\n"
+ "int j ;\n"
+ "int k;",
+ "int i ;\n"
+ " // format off\n"
+ "int j ;\n"
+ "int k ;",
+ Style);
+
+ verifyFormat("int i;\n"
+ "int j ; // format off\n"
+ "int k;",
+ "int i ;\n"
+ "int j ; // format off\n"
+ "int k ;",
+ Style);
+
+ verifyFormat("// clang-format off\n"
+ "int i ;\n"
+ "int j ; // format off\n"
+ "int k ;\n"
+ "// clang-format on\n"
+ "f();",
+ "// clang-format off\n"
+ "int i ;\n"
+ "int j ; // format off\n"
+ "int k ;\n"
+ "// clang-format on\n"
+ "f() ;",
+ Style);
+
+ Style.OneLineFormatOffRegex = "^/\\* format off \\*/";
+ verifyFormat("int i;\n"
+ " /* format off */ int j ;\n"
+ "int k;",
+ "int i ;\n"
+ " /* format off */ int j ;\n"
+ "int k ;",
+ Style);
+ verifyFormat("f(\"/* format off */\");", "f(\"/* format off */\") ;", Style);
+
+ Style.ColumnLimit = 50;
+ Style.OneLineFormatOffRegex = "^LogErrorPrint$";
----------------
HazardyKnusperkeks wrote:
I'm confused, `^` normally matches the beginning, why does this work here?
https://github.com/llvm/llvm-project/pull/137577
More information about the cfe-commits
mailing list