catskul added inline comments.

================
Comment at: include/clang/Format/Format.h:793
+  /// \endcode
+  bool DanglingParenthesis;
+
----------------
seesemichaelj wrote:
> catskul wrote:
> > stringham wrote:
> > > djasper wrote:
> > > > stringham wrote:
> > > > > djasper wrote:
> > > > > > I don't think this is a name that anyone will intuitively 
> > > > > > understand. I understand that the naming is hard here. One thing I 
> > > > > > am wondering is whether this might ever make sense unless 
> > > > > > AlignAfterOpenBracket is set to AlwaysBreak?
> > > > > > 
> > > > > > Unless that option is set, we could have both in the same file:
> > > > > > 
> > > > > >   someFunction(aaaa,
> > > > > >                bbbb);
> > > > > > 
> > > > > > and
> > > > > > 
> > > > > >   someFunction(
> > > > > >       aaaa, bbbb
> > > > > >   );
> > > > > > 
> > > > > > Is that intended, i.e. are you actively using that? Answering this 
> > > > > > is important, because it influence whether or not we actually need 
> > > > > > to add another style option and even how to implement this.
> > > > > The name was based on the configuration option that scalafmt has for 
> > > > > their automatic scala formatter, they also have an option to have the 
> > > > > closing paren on its own line and they call it `danglingParentheses`. 
> > > > > I don't love the name and am open to other options.
> > > > > 
> > > > > That's a good point about AlignAfterOpenBracket being set to 
> > > > > AlwaysBreak. In our usage we have that option set, and I'm also 
> > > > > unsure if it makes sense without AlwaysBreak.
> > > > Hm. I am not sure either. What do you think of extending the 
> > > > BracketAlignmentStyle enum with an AlwaysBreakWithDanglingParenthesis? 
> > > > Or AlwaysBreakAndWrapRParen?
> > > Sorry for the delay in the reply!
> > > 
> > > That seems like a reasonable solution to me. I believe the structure of 
> > > the patch would be the same, just changing out the configuration option.
> > > 
> > > Can you point me to where I should look to figure out how to run the unit 
> > > tests and let me know if there are other changes you would recommend 
> > > besides updating configuration options?
> > @djasper I made the changes to @stringham's diff to implement your request 
> > to replace the `bool` with new item of `BracketAlignmentStyle` `enum`, and 
> > wondered if it might be backing us into a corner. 
> > 
> > As strange as some of these may be I've seen a few similar to:
> > 
> > ```
> > return_t myfunc(int x,
> >                 int y,
> >                 int z
> >                 );
> > ```
> > ```
> > return_t myfunc(int x,
> >                 int somelongy,
> >                 int z         );
> > ```
> > ```
> > return_t myfunc(
> >              int x,
> >              int y,
> >              int z
> >          );
> > ```
> > and even my least favorite
> > ```
> > return_t myfunc(
> >     int x,
> >     int y,
> >     int z
> >                 );
> > ```
> > 
> > Without advocating for supporting all such styles it would seem desireable 
> > to avoid an NxM enum of two, at least theoretically, independent style 
> > parameters. With that in mind should I instead create a different parameter 
> > `AlignClosingBracket` with a respective `enum` which includes 
> > `AfterFinalParameter` by default, and `NextLineWhenMultiline` to handle the 
> > variations this diff was opened for?
> > 
> > On the other hand, I can just stick with adding a new variation to 
> > `BracketAlignmentStyle` and deal with potential variations in the future if 
> > they're requested.
> > 
> @catskul, are we waiting for a response from @djasper (or other maintainer) 
> concerning your last question about whether or not to keep 
> `BracketAligngmentStyle` or to use a new parameter `AlignClosingBracket` that 
> you proposed? I'm just throwing my hand in the pile seeing what I can do to 
> help push this issue towards landing without creating duplicate work (or just 
> forking your code and compiling it for myself selfishly haha).
> 
> From what information I can gather, it sounds like you have a solution 
> @catskul that meets the requested changes by @djasper, and if those changes 
> are still desired provided your last comment here, a revision could be posted 
> for review (after rebase, tests pass, etc).
> 
> Am I understanding correctly here?
@seesemichaelj (@det87) Yes, though this diff belongs to @stringham I just 
jumped in to try to respond to @djasper's comments and keep the ball rolling.

I can post my changes that @blandcr and @jakar already found*, but would want 
to get the answer regarding `AlignClosingBracket` before putting any more 
energy into this as it's expensive to get spun back up and build all of this 
each time (I don't think I still have the build env around).

The second hurdle is that if I post a new diff I'm not sure if I'm adopting 
this whole thing and/or violating ettiquette, which I don't feel like I have 
the time & energy to do without some confidence that it will move forward.

Honestly I think the llvm project is leaving a lot of good work and good will 
on the table by how clumsy the contribution process is (partially because of 
how clumsy I feel like Phabricator is)

*https://github.com/catskul/llvm-project/commits/catskul/dangling-parenthesis-as-bracket-alignment


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

https://reviews.llvm.org/D33029

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

Reply via email to