================
@@ -895,6 +889,11 @@ class LineJoiner {
Line.startsWithExportBlock()) {
if (IsSplitBlock)
return 0;
+ // The construct-specific options AllowShortIfStatementsOnASingleLine and
+ // AllowShortLoopsOnASingleLine take precedence over
+ // AllowShortBlocksOnASingleLine: a statement whose specific option
+ // disallows merging is not put on a single line even when short blocks
+ // are always allowed.
----------------
gedare wrote:
I see. That appears to be different than the open issues that your PR is
solving though. I'm not sure this was an explicitly supported format, but I
guess it appears to have been working. Can you point to a format style guide
that documents this style to help [justify additional style
options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html#adding-additional-style-options)?
This style requires the brace wrapping to be overridden in some cases, but not
in others. I could see making an argument that `AllowShortXyzOnASingleLine`
could be made to override the BraceWrapping, as suggested also by owenca, but
there are also strange interactions such as with
`BraceWrapping.SplitEmptyFunction`. You could instead propose a new option to
`BraceWrapping` that prevents wrapping the brace if the function is empty.
This, along with the `AllowShortBlocksOnASingleLine.Attached` (and
`NotAttached`) should be able to satisfy your requirements.
The preference for fixing the open issues as regressions would be to have a
minimal change to existing style files. Thus my recommended route of
deprecating `Always` in favor of explicit `Attached` and `NotAttached` options,
since `Always` did not really mean always.
Another possibility could be to have `AllowShortBlocksonASingleLine` to
"inherit" from the `AllowShortXyzOnASingleLine` when the brace is attached.
https://github.com/llvm/llvm-project/pull/196021
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits