oleg.smolsky added a comment.

In https://reviews.llvm.org/D52676#1251342, @krasimir wrote:

> Digging a bit further, seems like the behavior you're looking for could be 
> achieved by setting the `AlignAfterOpenBracket` option to `DontAlign` or 
> `AlwaysBreak`:
>
>   % clang-format -style='{BasedOnStyle: google, AlignAfterOpenBracket: 
> AlwaysBreak}' test.cc
>    void f() {
>      something->Method2s(
>          1,
>          [this] {
>            Do1();
>            Do2();
>          },
>          1);
>    }
>    % clang-format -style='{BasedOnStyle: google, AlignAfterOpenBracket: 
> DontAlign}' test.cc
>    void f() {
>      something->Method2s(1,
>          [this] {
>            Do1();
>            Do2();
>          },
>          1);
>    }
>
> Does this work for you?


This is interesting. It obviously does what I want with the lambda, but forces 
this:

  void f() {
    auto stub = PopulateContextHereAndHereSomethi(GetSomethingHere(),
                                                  GetSomethingElseHere());
  }

into this:

  void f() {
    auto stub = PopulateContextHereAndHereSomethi(
        GetSomethingHere(), GetSomethingElseHere());
  }

The former looks better to me and that's what Emacs does when you press Tab. I 
think people here at work will balk at this formatting...

> I don't think modifying the behavior as posed in this change based on the 
> existence of multiline lambdas and the value of the `BinPackArguments` option 
> is better than what we have now, especially when 
> `AlignAfterOpenBracket=Align`.

Yeah, I hear you. The patch is intended to work with 
`AlignAfterOpenBracket=Align` and `BinPackArguments=false` and only tweaks the 
lambdas' placement.

How about I key the new behavior off a new value of `AlignAfterOpenBracket`, 
such as `AlignAfterOpenBracket=AlignExceptLambda`?


Repository:
  rC Clang

https://reviews.llvm.org/D52676



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to