[clang] [clang-format] Add new option: WrapNamespaceBodyWithNewlines (PR #106145)

via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 27 11:03:04 PDT 2024


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 2847020dbd9b8f932ee564651ec72ce15fa37d07 84ba9930e4650319265b2fabd2715268a91de614 --extensions cpp,h -- clang/include/clang/Format/Format.h clang/lib/Format/Format.cpp clang/lib/Format/UnwrappedLineFormatter.cpp clang/unittests/Format/FormatTest.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/clang/lib/Format/UnwrappedLineFormatter.cpp b/clang/lib/Format/UnwrappedLineFormatter.cpp
index f3f76ac227..4d39c7eaf2 100644
--- a/clang/lib/Format/UnwrappedLineFormatter.cpp
+++ b/clang/lib/Format/UnwrappedLineFormatter.cpp
@@ -32,21 +32,21 @@ bool isRecordLBrace(const FormatToken &Tok) {
                      TT_StructLBrace, TT_UnionLBrace);
 }
 
-bool LineStartsNamespaceScope(const AnnotatedLine* Line,
-                              const AnnotatedLine* PreviousLine,
-                              const AnnotatedLine* PrevPrevLine) {
+bool LineStartsNamespaceScope(const AnnotatedLine *Line,
+                              const AnnotatedLine *PreviousLine,
+                              const AnnotatedLine *PrevPrevLine) {
   return PreviousLine && PreviousLine->Last->is(tok::l_brace) &&
          (PreviousLine->startsWithNamespace() ||
           (PrevPrevLine && PrevPrevLine->startsWithNamespace() &&
-           PreviousLine->startsWith(tok::l_brace))) && !Line->startsWithNamespace();
+           PreviousLine->startsWith(tok::l_brace))) &&
+         !Line->startsWithNamespace();
 }
 
 bool LineEndsNamespaceScope(const AnnotatedLine *Line,
-                            const SmallVectorImpl<AnnotatedLine*> &Lines) {
-  const FormatToken* tok = Line->First;
-  if (!tok || tok->isNot(tok::r_brace)) {
+                            const SmallVectorImpl<AnnotatedLine *> &Lines) {
+  const FormatToken *tok = Line->First;
+  if (!tok || tok->isNot(tok::r_brace))
     return false;
-  }
   return getNamespaceToken(Line, Lines) != nullptr;
 }
 
@@ -1519,7 +1519,8 @@ static auto computeNewlines(const AnnotatedLine &Line,
 
   // Insert empty line before "}" that closes namespace scope
   if (Style.WrapNamespaceBodyWithNewlines &&
-      LineEndsNamespaceScope(&Line, Lines) && !LineEndsNamespaceScope(PreviousLine, Lines)) {
+      LineEndsNamespaceScope(&Line, Lines) &&
+      !LineEndsNamespaceScope(PreviousLine, Lines)) {
     Newlines = std::max(Newlines, 2u);
   }
 
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 94d8d652f8..362ac3af6f 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -28096,7 +28096,8 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlines) {
   // Single namespace
   verifyFormat("namespace N {\n\n"
                "int f1(int a) { return 2 * a; }\n\n"
-               "};", Style);
+               "};",
+               Style);
 
   // Nested namespace
   verifyFormat("namespace N1 {\n"
@@ -28108,7 +28109,8 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlines) {
                "}\n\n"
                "}\n"
                "}\n"
-               "}", Style);
+               "}",
+               Style);
 
   Style.WrapNamespaceBodyWithNewlines = false;
 
@@ -28118,7 +28120,8 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlines) {
   // Single namespace
   verifyFormat("namespace N {\n"
                "int f1(int a) { return 2 * a; }\n"
-               "};", Style);
+               "};",
+               Style);
 
   // Nested namespace
   verifyFormat("namespace N1 {\n"
@@ -28130,7 +28133,8 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlines) {
                "}\n"
                "}\n"
                "}\n"
-               "}", Style);
+               "}",
+               Style);
 }
 
 TEST_F(FormatTest, WrappingNamespaceBodyWithNewlinesWithCompactNamespaces) {
@@ -28139,13 +28143,13 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlinesWithCompactNamespaces) {
   Style.CompactNamespaces = true;
   Style.WrapNamespaceBodyWithNewlines = true;
 
-
   verifyFormat("namespace N1 { namespace N2 { namespace N3 {\n\n"
                "int f1() {\n"
                "  int a = 1;\n"
                "  return a;\n"
                "}\n\n"
-               "}}}", Style);
+               "}}}",
+               Style);
 
   Style.WrapNamespaceBodyWithNewlines = false;
 
@@ -28154,7 +28158,8 @@ TEST_F(FormatTest, WrappingNamespaceBodyWithNewlinesWithCompactNamespaces) {
                "  int a = 1;\n"
                "  return a;\n"
                "}\n"
-               "}}}", Style);
+               "}}}",
+               Style);
 }
 
 } // namespace

``````````

</details>


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


More information about the cfe-commits mailing list