Not really.

Before, this was horribly broken and definitely contradicted they style
guide. Now, it is just an open question of whether you are allowed to but a
short function onto a single line and AFAIU, there is a bit of disagreement
on that. And (with ColumnLimit == 0) clang-format will just leave the
authors choice. Thus, if you wrap the function on multiple lines, it will
also put the braces on their own line. If you decide put it on a single
line, it will leave that intact.

And if one day, WebKit developers decide that this is not the way to go,
single-line functions can be prevented by a flag flip.


On Tue, Apr 29, 2014 at 7:44 PM, Nico Weber <[email protected]> wrote:

> On Tue, Apr 29, 2014 at 7:05 AM, Daniel Jasper <[email protected]> wrote:
>
>> Author: djasper
>> Date: Tue Apr 29 09:05:20 2014
>> New Revision: 207527
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=207527&view=rev
>> Log:
>> clang-format: Allow single-line function in WebKit style.
>>
>> Before:
>>   void f() {
>>       return; }
>>
>> After:
>>   void f() { return; }
>>
>> Modified:
>>     cfe/trunk/lib/Format/ContinuationIndenter.cpp
>>     cfe/trunk/lib/Format/Format.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=207527&r1=207526&r2=207527&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/ContinuationIndenter.cpp (original)
>> +++ cfe/trunk/lib/Format/ContinuationIndenter.cpp Tue Apr 29 09:05:20 2014
>> @@ -207,8 +207,8 @@ bool ContinuationIndenter::mustBreak(con
>>    // 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))
>> +  if (Style.ColumnLimit != 0 && Previous.BlockKind == BK_Block &&
>> +      Previous.is(tok::l_brace) && !Current.isOneOf(tok::r_brace,
>> tok::comment))
>>      return true;
>>
>>    return false;
>>
>> Modified: cfe/trunk/lib/Format/Format.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=207527&r1=207526&r2=207527&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/Format.cpp (original)
>> +++ cfe/trunk/lib/Format/Format.cpp Tue Apr 29 09:05:20 2014
>> @@ -499,6 +499,8 @@ public:
>>        bool Newline =
>>            Indenter->mustBreak(State) ||
>>            (Indenter->canBreak(State) && State.NextToken->NewlinesBefore
>> > 0);
>> +      llvm::errs() << State.NextToken->Tok.getName() << " "
>> +                   << Indenter->mustBreak(State) << "\n";
>>        Indenter->addTokenToState(State, Newline, /*DryRun=*/false);
>>      }
>>    }
>>
>> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=207527&r1=207526&r2=207527&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
>> +++ cfe/trunk/unittests/Format/FormatTest.cpp Tue Apr 29 09:05:20 2014
>> @@ -8198,6 +8198,9 @@ TEST_F(FormatTest, FormatsWithWebKitStyl
>>            "}",
>>            Style));
>>
>> +  // Allow functions on a single line.
>> +  verifyFormat("void f() { return; }", Style);
>>
>
> This seems to contradict
> http://www.webkit.org/coding/coding-style.html#braces-function . What's
> the motivation for this change?
>
>
>> +
>>    // Constructor initializers are formatted one per line with the "," on
>> the
>>    // new line.
>>    verifyFormat("Constructor()\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

Reply via email to