[clang] [clang-format] Add new option: WrapNamespaceBodyWithNewlines (PR #106145)
Owen Pan via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 14 00:20:53 PDT 2024
================
@@ -1493,6 +1513,28 @@ static auto computeNewlines(const AnnotatedLine &Line,
Newlines = 1;
}
+ // Modify empty lines after "{" that opens namespace scope.
+ if (Style.WrapNamespaceBodyWithEmptyLines != FormatStyle::WNBWELS_Leave &&
+ LineStartsNamespaceScope(&Line, PreviousLine, PrevPrevLine)) {
+ if (Style.WrapNamespaceBodyWithEmptyLines == FormatStyle::WNBWELS_Never)
+ Newlines = std::min(Newlines, 1u);
+ else if (!Line.startsWithNamespace())
+ Newlines = std::max(Newlines, 2u);
+ else
+ Newlines = std::min(Newlines, 1u);
+ }
+
+ // Modify empty lines before "}" that closes namespace scope.
+ if (Style.WrapNamespaceBodyWithEmptyLines != FormatStyle::WNBWELS_Leave &&
+ LineEndsNamespaceScope(&Line, Lines)) {
+ if (Style.WrapNamespaceBodyWithEmptyLines == FormatStyle::WNBWELS_Never)
+ Newlines = std::min(Newlines, 1u);
+ else if (!LineEndsNamespaceScope(PreviousLine, Lines))
+ Newlines = std::max(Newlines, 2u);
+ else
+ Newlines = std::min(Newlines, 1u);
----------------
owenca wrote:
Refactor and simplify:
```suggestion
if (Style.WrapNamespaceBodyWithEmptyLines != FormatStyle::WNBWELS_Leave) {
// Modify empty lines after TT_NamespaceLBrace.
if (PreviousLine && PreviousLine->endsWith(TT_NamespaceLBrace)) {
if (Style.WrapNamespaceBodyWithEmptyLines == FormatStyle::WNBWELS_Never)
Newlines = 1;
else if (!Line.startsWithNamespace())
Newlines = std::max(Newlines, 2u);
else
Newlines = 1;
}
// Modify empty lines before TT_NamespaceRBrace.
if (Line.startsWith(TT_NamespaceRBrace)) {
if (Style.WrapNamespaceBodyWithEmptyLines == FormatStyle::WNBWELS_Never)
Newlines = 1;
else if (!PreviousLine->startsWith(TT_NamespaceRBrace))
Newlines = std::max(Newlines, 2u);
else
Newlines = 1;
}
```
https://github.com/llvm/llvm-project/pull/106145
More information about the cfe-commits
mailing list