klimek added a comment.

In https://reviews.llvm.org/D33589#933746, @Typz wrote:

> > @klimek wrote:
> >  In the above example, we add 3 line breaks, and we'd add 1 (or more) 
> > additional line breaks when reflowing below the column limit.
> >  I agree that that can lead to different overall outcomes, but I don't see 
> > how the approach of this patch really fixes it - it will only ever reflow 
> > below the column limit, so it'll also lead to states for long lines where 
> > reflowing and leaving chars over the line limit might be the overall best 
> > choice (unless I'm missing something)?
>
> Definitely, this patch may not find the 'optimal' solution. What I mean is 
> that we reduce the `PenaltyExcessCharacter` value to allow "occasionally" 
> breaking the limit: instead of a hard limit, we want to allow lines to 
> sometimes break the limit, but definitely not *all* the time. Both patch work 
> fine when the code is "correct", i.e. there is indeed only a few lines which 
> break the limit.
>
> But the local decision approach behaves really wrong IMHO when the code is 
> formatted beyond the column: it can very easily reformat in such a way that 
> the comment is reflown to what looks like a longer column limit. I currently 
> have a ratio of 10 between  PenaltyBreakComment and PenaltyExcessCharacter 
> (which empirically seemed to give a decent compromise, and match how our code 
> is formatted; I need to try more with your patch, to see if we can get better 
> values...): with this setting, a "non wrapped" comment will actually be 
> reflown to ColumnLimit+10...


To me the reverse intuitively makes sense:
When I see that
// first line
// second line
// third line
stays the same, but
// first line second line third line
gets reflown into something different, I get confused :)

The only way I see to consistently solve this is to optimize the reflow breaks 
like we do the main algorithm.

> When we do indeed reflow, I think we may be stricter than this, to get 
> something that really looks like it obeys the column limit. If this is 
> 'optimal' in the sense that we may have some overflow still, that is fine, 
> but really not the primary requirement IMHO.




https://reviews.llvm.org/D33589



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

Reply via email to