owenpan added a comment.

In D146042#4204651 <https://reviews.llvm.org/D146042#4204651>, @jp4a50 wrote:

> I'm confident that the patch will indent all those examples correctly when 
> they are at block scope which is the only place those snippets will actually 
> be valid code. I added an exception (see comment in ContinuationIndenter.cpp) 
> to the code to disable `OuterScope`'s behaviour when the line's indentation 
> level is 0 (i.e. statements at namespace scope) because otherwise you can end 
> up with things like:
>
>   Namespace::Foo::Foo(
>     Arg arg1, Arg arg2,
>     Arg arg3, Arg arg4)
>     : init1{arg1},
>       init2{[arg2]() {
>     return arg2;
>   }},
>       init3{arg3},
>       init4{arg4} {}

Sorry that I missed it.



================
Comment at: clang/include/clang/Format/Format.h:2652-2656
   /// containing the lambda signature. For callback-heavy code, it may improve
   /// readability to have the signature indented two levels and to use
   /// ``OuterScope``. The KJ style guide requires ``OuterScope``.
   /// `KJ style guide
   /// <https://github.com/capnproto/capnproto/blob/master/style-guide.md>`_
----------------
We might as well clean it up a bit.


================
Comment at: clang/unittests/Format/FormatTest.cpp:21997
+               "  })));\n"
+               "}\n",
+               Style);
----------------
Ditto below.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146042/new/

https://reviews.llvm.org/D146042

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

Reply via email to