[clang] [clang-format] Change BinPackParameters to an enum to add a BreakAlways (PR #101882)

via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 17 02:32:05 PDT 2024


================
@@ -1192,20 +1192,36 @@ struct FormatStyle {
   /// \version 3.7
   bool BinPackArguments;
 
-  /// If ``false``, a function declaration's or function definition's
-  /// parameters will either all be on the same line or will have one line each.
-  /// \code
-  ///   true:
-  ///   void f(int aaaaaaaaaaaaaaaaaaaa, int aaaaaaaaaaaaaaaaaaaa,
-  ///          int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
-  ///
-  ///   false:
-  ///   void f(int aaaaaaaaaaaaaaaaaaaa,
-  ///          int aaaaaaaaaaaaaaaaaaaa,
-  ///          int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
-  /// \endcode
+  /// Different way to try to fit all parameters on a line.
+  enum BinPackParametersStyle : int8_t {
+    /// Put all parameters on the current line if they fit.
+    /// Otherwise, put each one on its own line.
+    /// \code
+    ///    void f(int a, int b, int c);
+    ///
+    ///    void f(int a,
+    ///           int b,
+    ///           int ccccccccccccccccccccccccccccccccccccc);
+    /// \endcode
+    BPPS_Never,
----------------
VolatileAcorn wrote:

What do you think about making it consistent with `PackConstructorInitializers`? I think the `CurrentLine` name removes ambiguity, `OnePerLine` could mean 2 different things.

If we followed `PackConstructorInitializers` it would become like this:

- `true` becomes `BPPS_BinPack`
- `false` becomes `BPPS_CurrentLine`
- `BPPS_Never` is new and means always one per line

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


More information about the cfe-commits mailing list