tree 708803bbcffd316a34be962511b796092f76a4f8
parent ba85e7cf5bbee70a74f0c2090e86eff4748a30fe
author Sergio Giro <sergio.giro.ar@gmail.com> 1555487516 +0100
committer GitHub <noreply@github.com> 1555487516 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJcttscCRBK7hj4Ov3rIwAAdHIIABKCwzPWxRHVgOAFF6Fc7sSJ
 PZICEE5aLIPVg3HzQwFiKlAYx5dhRCC+WQf7c0gyo7rb+meiaDT46hIA5F+kdEl+
 FpwHOwwzWoX7zxh0kOD/RYILRnWAQKAOGcmQGw2qY69okNsUfOaCgZcQs5QMIwNO
 B/k+e4hZaoyoo1SEoGLTZT4cfiMVOKmvrhpp1vFeEo4QTHh4QrXJeDC8LTq3gkPb
 3eJ+0ySmWe4sHmNQLxcyVdtiKuKh6jz/Hj2gVhd0iKEyTM3vdUNNUx5sGg+u7qtT
 QN2IxTXT/9jBpJTZclEnh3UqBrFuU4dtXevUghz1FmoZB9e5EQlmpOqbVhY7g5o=
 =mfZA
 -----END PGP SIGNATURE-----
 

Add knob SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES (#1)

Add knob SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES

The existing knob SPLIT_ALL_COMMA_SEPARATED_VALUES is overly aggresive in that, if an argument list (or, more generally, a container) needs splitting, then all subexpressions will be split as well. For instance, in
```
abcdef(aReallyLongThing, b=(c,d))
```
if the line needs splitting because of `aReallyLongThing`, then it will produce
```
abcdef(
    aReallyLongThing,
    b=(c,
       d))
```
I've seen terrible things like
```
   argument: [Int,
              Int]
```
in function definitions with many arguments (even if the second `Int` fits in the line).

The new knob checks if a container (argument list, list literal, etc) fits in a line and avoids breaking if so, producing
```
abcdef(
    aReallyLongThing,
    b=(c, d))
```
which makes more sense (to me at least).

See https://github.com/prodo-ai/plz/pull/248 for an example of a codebase reformatted with the new knob (plus  `split_before_first_argument`). Nice, isn't it?