[PATCH] D99840: [clang-format] Correctly attach enum braces with ShortEnums disabled
Marek Kurdej via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 28 01:29:36 PDT 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG71616722d409: [clang-format] Correctly attach enum braces with ShortEnums disabled (authored by lunasorcery, committed by curdeius).
Changed prior to commit:
https://reviews.llvm.org/D99840?vs=362220&id=362302#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99840/new/
https://reviews.llvm.org/D99840
Files:
clang/docs/ReleaseNotes.rst
clang/include/clang/Format/Format.h
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
clang/unittests/Format/FormatTestCSharp.cpp
Index: clang/unittests/Format/FormatTestCSharp.cpp
===================================================================
--- clang/unittests/Format/FormatTestCSharp.cpp
+++ clang/unittests/Format/FormatTestCSharp.cpp
@@ -402,8 +402,7 @@
}
TEST_F(FormatTestCSharp, CSharpKeyWordEscaping) {
- verifyFormat("public enum var\n"
- "{\n"
+ verifyFormat("public enum var {\n"
" none,\n"
" @string,\n"
" bool,\n"
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
@@ -2515,6 +2515,8 @@
if (FormatTok->Tok.is(tok::kw_enum))
nextToken();
+ const FormatToken &InitialToken = *FormatTok;
+
// In TypeScript, "enum" can also be used as property name, e.g. in interface
// declarations. An "enum" keyword followed by a colon would be a syntax
// error and thus assume it is just an identifier.
@@ -2561,7 +2563,8 @@
return true;
}
- if (!Style.AllowShortEnumsOnASingleLine)
+ if (!Style.AllowShortEnumsOnASingleLine &&
+ ShouldBreakBeforeBrace(Style, InitialToken))
addUnwrappedLine();
// Parse enum body.
nextToken();
Index: clang/include/clang/Format/Format.h
===================================================================
--- clang/include/clang/Format/Format.h
+++ clang/include/clang/Format/Format.h
@@ -544,8 +544,7 @@
/// enum { A, B } myEnum;
///
/// false:
- /// enum
- /// {
+ /// enum {
/// A,
/// B
/// } myEnum;
Index: clang/docs/ReleaseNotes.rst
===================================================================
--- clang/docs/ReleaseNotes.rst
+++ clang/docs/ReleaseNotes.rst
@@ -153,7 +153,8 @@
clang-format
------------
-- ...
+- Option ``AllowShortEnumsOnASingleLine: false`` has been improved, it now
+ correctly places the opening brace according to ``BraceWrapping.AfterEnum``.
libclang
--------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99840.362302.patch
Type: text/x-patch
Size: 3073 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210728/23e14793/attachment.bin>
More information about the cfe-commits
mailing list