[clang] [clang-format] Add AlignAfterOpenBracketOptions (PR #108332)

Gedare Bloom via cfe-commits cfe-commits at lists.llvm.org
Mon May 12 07:59:44 PDT 2025


gedare wrote:


> > > I prefer that we limit this to breaking after the left parenthesis of a control statement, with true/false or Always, Never, Multiline, BlockIndent, etc.
> > 
> > 
> > if I understand you correctly, you would like a new style option added for setting break option for all control statements in the same way?
> 
> Yes.

I guess this approach is in fact not desirable. Fixing these bugs is wedged by the behavior of `AlwaysBreak` and `BlockIndent` because they break after the opening parens of `if` statements, but not on other control statements (`for/while`, `switch`). I suspect this limitation was not clearly stated ahead of time, but makes it quite hard to provide backward compatibility without complexity. My first solution with sub-options for `AlwaysBreak` and `BlockIndent` handles the backward compatibility in a simpler way than the current solution. I do not know how to proceed. There are competing statements about what could be done. I can't see a simple fix that can provide backward compatibility and also satisfy the three referenced Issues.

Proceeding in the current direction the only good solution that I see is to create multiple `BreakAfter` variants or sub-options to cover `BreakAfterIf` `BreakAfterLoop` `BreakAfterSwitch`. Whether each option should handle both breaking behavior and alignment behavior is also an unknown to me. I felt it was preferable to let `AlignAfteropenBracket` handle the alignment. This direction allows us to eventually deprecate `AlwaysBreak` and `BlockIndent` (by introducing a `BreakBeforeClosingBracket` option, for example). This is more or less in line with https://github.com/llvm/llvm-project/issues/80049


https://github.com/llvm/llvm-project/pull/108332


More information about the cfe-commits mailing list