[PATCH] D106349: [clang-format] respect AfterEnum for enums
Michael Zimmermann via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Jul 25 00:49:49 PDT 2021
m1cha updated this revision to Diff 361493.
m1cha added a comment.
I've added a note to `ReleaseNotes.rst`
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106349/new/
https://reviews.llvm.org/D106349
Files:
clang/docs/ReleaseNotes.rst
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -2451,6 +2451,14 @@
Style.AllowShortEnumsOnASingleLine = true;
verifyFormat("enum { A, B, C } ShortEnum1, ShortEnum2;", Style);
Style.AllowShortEnumsOnASingleLine = false;
+ verifyFormat("enum {\n"
+ " A,\n"
+ " B,\n"
+ " C\n"
+ "} ShortEnum1, ShortEnum2;",
+ Style);
+ Style.BreakBeforeBraces = FormatStyle::BS_Custom;
+ Style.BraceWrapping.AfterEnum = true;
verifyFormat("enum\n"
"{\n"
" A,\n"
@@ -22123,8 +22131,7 @@
Style);
// Enumerations are not records and should be unaffected.
Style.AllowShortEnumsOnASingleLine = false;
- verifyFormat("enum class E\n"
- "{\n"
+ verifyFormat("enum class E {\n"
" A,\n"
" B\n"
"};\n",
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -706,6 +706,8 @@
return Style.BraceWrapping.AfterUnion;
if (InitialToken.is(tok::kw_struct))
return Style.BraceWrapping.AfterStruct;
+ if (InitialToken.is(tok::kw_enum))
+ return Style.BraceWrapping.AfterEnum;
return false;
}
@@ -2511,6 +2513,8 @@
}
bool UnwrappedLineParser::parseEnum() {
+ const FormatToken &InitialToken = *FormatTok;
+
// Won't be 'enum' for NS_ENUMs.
if (FormatTok->Tok.is(tok::kw_enum))
nextToken();
@@ -2561,7 +2565,8 @@
return true;
}
- if (!Style.AllowShortEnumsOnASingleLine)
+ if (!Style.AllowShortEnumsOnASingleLine &&
+ ShouldBreakBeforeBrace(Style, InitialToken))
addUnwrappedLine();
// Parse enum body.
nextToken();
Index: clang/docs/ReleaseNotes.rst
===================================================================
--- clang/docs/ReleaseNotes.rst
+++ clang/docs/ReleaseNotes.rst
@@ -284,6 +284,9 @@
- Support for formatting JSON file (\*.json) has been added to clang-format.
+- ``AllowShortEnumsOnASingleLine=false`` now respects ``BraceWrapping.AfterEnum``
+ when formatting an enum.
+
libclang
--------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106349.361493.patch
Type: text/x-patch
Size: 2364 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210725/9e2c4190/attachment-0001.bin>
More information about the cfe-commits
mailing list