[clang] [clang-format] Add BreakAfterOpenBracket* and BreakBeforeCloseBracket* (PR #108332)

Gedare Bloom via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 25 08:04:27 PDT 2025


================
@@ -9728,6 +9737,335 @@ TEST_F(FormatTest, ParenthesesAndOperandAlignment) {
                Style);
 }
 
+TEST_F(FormatTest, AlignAndBreakControlStatements) {
+  FormatStyle Style = getLLVMStyle();
+
+  Style.AlignAfterOpenBracket = FormatStyle::BAS_DontAlign;
+  Style.BreakAfterOpenBracketIf = true;
+  Style.BreakAfterOpenBracketLoop = true;
+  Style.BreakAfterOpenBracketSwitch = true;
+
+  verifyFormat("void foo() {\n"
+               "  if constexpr (\n"
+               "      (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |\n"
+               "          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+               "bbb) == 0) {\n"
+               "    return;\n"
+               "  } else if (\n"
+               "      (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &\n"
+               "          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
+               "bbb) == 0) {\n"
+               "    return;\n"
+               "  }\n"
+               "}",
+               Style);
+
+  verifyFormat("void foo() {\n"
+               "  switch (\n"
+               "      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |\n"
+               "      bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) {\n"
+               "  default:\n"
+               "    break;\n"
+               "  }\n"
+               "}",
+               Style);
+
+  verifyFormat(
+      "void foo() {\n"
+      "  for (\n"
+      "      aaaaaaaaaaaaaaaaaaaaaa = 0;\n"
+      "      (aaaaaaaaaaaaaaaaaaaaaa->bbbbbbbbbbbbbb |\n"
+      "          aaaaaaaaaaaaaaaaaaaaaa->ccccccccccccccccccccccc) == 0;\n"
+      "      aaaaaaaaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaa->next) {\n"
+      "    ;\n"
+      "  }\n"
+      "}",
+      Style);
+
+  verifyFormat(
+      "void foo() {\n"
+      "  while (\n"
+      "      (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |\n"
+      "          bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) == 0) "
+      "{\n"
+      "    continue;\n"
+      "  }\n"
+      "}",
+      Style);
+
+  Style.AlignAfterOpenBracket = FormatStyle::BAS_Align;
+  Style.BreakAfterOpenBracketIf = true;
+  Style.BreakAfterOpenBracketLoop = true;
+  Style.BreakAfterOpenBracketSwitch = true;
+  Style.BreakBeforeCloseBracketIf = false;
+  Style.BreakBeforeCloseBracketLoop = false;
+  Style.BreakBeforeCloseBracketSwitch = false;
----------------
gedare wrote:

yes, the nested bitwise boolean expression gets aligned rather than use the `ContinuationIndent`.

https://github.com/llvm/llvm-project/pull/108332


More information about the cfe-commits mailing list