Thanks! Did you mean to close <http://llvm.org/bugs/show_bug.cgi?id=16517>?
-- Sean Silva On Sun, Jan 5, 2014 at 5:38 AM, Daniel Jasper <[email protected]> wrote: > Author: djasper > Date: Sun Jan 5 06:38:10 2014 > New Revision: 198558 > > URL: http://llvm.org/viewvc/llvm-project?rev=198558&view=rev > Log: > clang-format: Allow formatting short enums on a single line. > > Before: > enum ShortEnum { > A, > B, > C > }; > > After: > enum ShortEnum { A, B, C }; > > This seems to be the predominant choice in LLVM/Clang as well as in > Google style. > > Modified: > cfe/trunk/lib/Format/ContinuationIndenter.cpp > cfe/trunk/lib/Format/TokenAnnotator.cpp > cfe/trunk/unittests/Format/FormatTest.cpp > > Modified: cfe/trunk/lib/Format/ContinuationIndenter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/ContinuationIndenter.cpp?rev=198558&r1=198557&r2=198558&view=diff > > ============================================================================== > --- cfe/trunk/lib/Format/ContinuationIndenter.cpp (original) > +++ cfe/trunk/lib/Format/ContinuationIndenter.cpp Sun Jan 5 06:38:10 2014 > @@ -182,10 +182,6 @@ bool ContinuationIndenter::mustBreak(con > State.Stack.back().ObjCSelectorNameFound && > State.Stack.back().BreakBeforeParameter) > return true; > - if (Current.Type == TT_CtorInitializerColon && > - (!Style.AllowShortFunctionsOnASingleLine || > - Style.BreakConstructorInitializersBeforeComma || Style.ColumnLimit > != 0)) > - return true; > if (Previous.ClosesTemplateDeclaration && State.ParenLevel == 0 && > !Current.isTrailingComment()) > return true; > @@ -199,6 +195,18 @@ bool ContinuationIndenter::mustBreak(con > (State.Stack.back().BreakBeforeParameter && > State.Stack.back().ContainsUnwrappedBuilder))) > return true; > + > + // The following could be precomputed as they do not depend on the > state. > + // However, as they should take effect only if the UnwrappedLine does > not fit > + // into the ColumnLimit, they are checked here in the > ContinuationIndenter. > + if (Previous.BlockKind == BK_Block && Previous.is(tok::l_brace) && > + !Current.isOneOf(tok::r_brace, tok::comment)) > + return true; > + if (Current.Type == TT_CtorInitializerColon && > + (!Style.AllowShortFunctionsOnASingleLine || > + Style.BreakConstructorInitializersBeforeComma || Style.ColumnLimit > != 0)) > + return true; > + > return false; > } > > > Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=198558&r1=198557&r2=198558&view=diff > > ============================================================================== > --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original) > +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Sun Jan 5 06:38:10 2014 > @@ -1438,9 +1438,6 @@ bool TokenAnnotator::mustBreakBefore(con > Style.BreakConstructorInitializersBeforeComma && > !Style.ConstructorInitializerAllOnOneLineOrOnePerLine) { > return true; > - } else if (Right.Previous->BlockKind == BK_Block && > - Right.Previous->isNot(tok::r_brace) && > Right.isNot(tok::r_brace)) { > - return true; > } else if (Right.is(tok::l_brace) && (Right.BlockKind == BK_Block)) { > return Style.BreakBeforeBraces == FormatStyle::BS_Allman || > Style.BreakBeforeBraces == FormatStyle::BS_GNU; > > Modified: cfe/trunk/unittests/Format/FormatTest.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=198558&r1=198557&r2=198558&view=diff > > ============================================================================== > --- cfe/trunk/unittests/Format/FormatTest.cpp (original) > +++ cfe/trunk/unittests/Format/FormatTest.cpp Sun Jan 5 06:38:10 2014 > @@ -1650,18 +1650,21 @@ TEST_F(FormatTest, FormatsEnum) { > verifyFormat("enum X f() {\n a();\n return 42;\n}"); > verifyFormat("enum {\n" > " Bar = Foo<int, int>::value\n" > - "};"); > + "};", > + getLLVMStyleWithColumns(30)); > + > + verifyFormat("enum ShortEnum { A, B, C };"); > } > > TEST_F(FormatTest, FormatsEnumsWithErrors) { > verifyFormat("enum Type {\n" > - " One = 0;\n" // These semicolons should be commas. > + " One = 0; // These semicolons should be commas.\n" > " Two = 1;\n" > "};"); > verifyFormat("namespace n {\n" > "enum Type {\n" > " One,\n" > - " Two,\n" // missing }; > + " Two, // missing };\n" > " int i;\n" > "}\n" > "void g() {}"); > @@ -1703,13 +1706,11 @@ TEST_F(FormatTest, FormatsEnumClass) { > > TEST_F(FormatTest, FormatsEnumTypes) { > verifyFormat("enum X : int {\n" > - " A,\n" > - " B\n" > - "};"); > - verifyFormat("enum X : std::uint32_t {\n" > - " A,\n" > + " A, // Force multiple lines.\n" > " B\n" > "};"); > + verifyFormat("enum X : int { A, B };"); > + verifyFormat("enum X : std::uint32_t { A, B };"); > } > > TEST_F(FormatTest, FormatsBitfields) { > @@ -6605,7 +6606,7 @@ TEST_F(FormatTest, ConfigurableUseOfTab) > "};", > Tab); > verifyFormat("enum A {\n" > - "\ta1,\n" > + "\ta1, // Force multiple lines\n" > "\ta2,\n" > "\ta3\n" > "};", > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
