r198558 - clang-format: Allow formatting short enums on a single line.
Daniel Jasper
djasper at google.com
Sun Jan 5 19:40:50 PST 2014
Yep. Thank you!
On Mon, Jan 6, 2014 at 12:21 AM, Sean Silva <silvas at purdue.edu> wrote:
> 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 <djasper at google.com> 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
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140106/2f591e66/attachment.html>
More information about the cfe-commits
mailing list