HazardyKnusperkeks wrote:
> > > I struggle with changes that encourage people to not be fully
> > > clang-formatted, I would prefer to ask why we need this feature, can we
> > > have some examples of where this would be used?
> >
> >
> > This makes it so only one line isn't formatted instead of the current
> > solution which is 2 lines unformatted. Additionally, if you start writing
> > code in between the unformatted region you inherit the unformatted scope.
> > Being able to disable the formatter for only a single line means the
> > formatter will be disabled for the shortest amount of code possible.
>
> I understand what is can be used for, I'm asking why its needed? I don't
> understand why people are needing to unformat just one line, what is broken?
>
> The implementation IMHO just complicates the code (I much prefer the
> isClangFormatOn() function than the parseXXXX())
>
> I don't even deny it might be a nice to have, my concern is why do we
> continue to appease the people who don't want to use clang-format warts and
> all. I would prefer we put the effort into fixing the formatting issues which
> mean people are having to use this rather than marking hundreds of lines as
> // clang-format off.
>
> Rather than complicating the code with a myriad of rules that effectively
> give half a dozen ways of doing the same thing. To me the current //
> clang-format off/on is enough, for everything else log an issue, or better
> still submit a pull request.
I think there are multiple reasons to disable formatting for a range, and be
the range only one line. A nice multiline example I stumbled upon is:
``` c++
Tree<char> tree[]
{
{'D', tree + 1, tree + 2},
// │
// ┌───────────────┴────────────────┐
// │ │
{'B', tree + 3, tree + 4}, {'F', tree + 5, tree + 6},
// │ │
// ┌─────────┴─────────────┐ ┌───────────┴─────────────┐
// │ │ │ │
{'A'}, {'C'}, {'E'}, {'G'}
};
```
(Kindly borrowed from https://en.cppreference.com/w/cpp/coroutine/generator)
We will never be able to format something like this with clang-format.
I myself have a few places where automatic formatting would be possible, but
kind of hard, they all have to do with some aligning.
And https://github.com/llvm/llvm-project/issues/54334#issuecomment-2531049984
makes a good example on why only one line disabling would be desired.
Also this would bring us in par with clang-tidy which has `NOLINT` and
`NOLINTNEXTLINE`.
https://github.com/llvm/llvm-project/pull/118566
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits