Subject: Re: [RFC PATCH 3/4] .clang-format: do not enforce a ColumnLimit

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 12 Jul 2022 09:03:03 +0200

On Mon, Jul 11 2022, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason  <[email-masked]> writes:
>
>> As with the preceding change what this leaves us with an unresolved
>> question though, should we have some stricter version of "make
>> style-all" that incorporates "ColumnLimit: 80", or perhaps apply it
>> only on "make style", but then what if someone modifies code that
>> happens to e.g. search/replace a line running afoul of the limit?
>
> A more important thing to think about is that there is no single
> good cut-off point.  When we say "wrap your lines at around 80
> columns", we mean that when there is a good place to fold at around
> column 65 and the next good place is at column 82, then it is OK to
> go slightly over 80 and wrap at 82, which may be better than
> wrapping at 65.  If the last good place to wrap is at column 72 and
> the long function call at the end of the line makes you go past the
> 82nd column, wrapping at column 72 might be better. 

There's the story of the sufficiently smart compiler, and now the
sufficiently smart formatter :)

The proposed solution here is to punt on it, which I think makes sense
if we're trying to push forward clang-format.

(Which I'm really not, this RFC is something I thought I'd send in
response to brian's proposal, as I'd poked at this locally a while ago,
after wondering if I could make use of it myself, and whether our
.clang-format was misconfigured[1]).

> I wonder if
> there is an automated formatter that understands this kind of shades
> of gray and lets us express that.

I don't think so, and setting the configuration to "0" is only a
stop-gap, after all we'd still like it to wrap e.g. lines of a length of
150 or whatever, if it finds them somewhere.

1. I think after I found that some odd styling from one of Han-Wen's
   patches was the result of running clang-format, cf.:
   https://lore.kernel.org/git/CAFQ2z_PAqW+RS2Znaf2wwOJfdNfkjP1VV84=[email-masked]/