40 columns                              |
>>> args before and after list forces nesting
method(first,[element, element, element, element],third);
<<<
method(
    first,
    [
      element,
      element,
      element,
      element
    ],
    third);
>>> nothing but list args does not nest
longFunctionName([element, element, element, element], [element, element, element, element], [element, element, element, element]);
<<<
longFunctionName([
  element,
  element,
  element,
  element
], [
  element,
  element,
  element,
  element
], [
  element,
  element,
  element,
  element
]);
>>> trailing lists do not nest
longFunctionName(argument, argument, argument, argument, [element, element, element, element], [element, element, element, element]);
<<<
longFunctionName(argument, argument,
    argument, argument, [
  element,
  element,
  element,
  element
], [
  element,
  element,
  element,
  element
]);
>>> leading lists do not nest
longFunctionName([element, element, element, element], [element, element, element, element], argument, argument, argument, argument);
<<<
longFunctionName([
  element,
  element,
  element,
  element
], [
  element,
  element,
  element,
  element
], argument, argument, argument,
    argument);
>>> arg between lists forces nesting
longFunctionName([element, element, element, element], argument, [element, element, element, element]);
<<<
longFunctionName(
    [
      element,
      element,
      element,
      element
    ],
    argument,
    [
      element,
      element,
      element,
      element
    ]);
>>> unsplit leading args
longFunctionName(arg, arg, [element, element, element, element]);
<<<
longFunctionName(arg, arg, [
  element,
  element,
  element,
  element
]);
>>> split before leading args
longFunctionName(argument, argument, argument, [element, element, element, element]);
<<<
longFunctionName(
    argument, argument, argument, [
  element,
  element,
  element,
  element
]);
>>> split in middle of leading args
longFunctionName(argument, argument, argument, argument, [element, element, element, element]);
<<<
longFunctionName(argument, argument,
    argument, argument, [
  element,
  element,
  element,
  element
]);
>>> split before all leading args
longFunctionName(argument, argument, argument, argument, argument, argument,
[element, element, element, element]);
<<<
longFunctionName(
    argument,
    argument,
    argument,
    argument,
    argument,
    argument, [
  element,
  element,
  element,
  element
]);
>>> unsplit trailing args
longFunctionName([element, element, element, element], argument, argument);
<<<
longFunctionName([
  element,
  element,
  element,
  element
], argument, argument);
>>> split before trailing args
longFunctionName([element, element, element, element] /* very very long comment */,
argument, argument);
<<<
longFunctionName([
  element,
  element,
  element,
  element
] /* very very long comment */,
    argument, argument);
>>> split in middle of trailing args
longFunctionName([element, element, element, element], argument, argument, argument, argument);
<<<
longFunctionName([
  element,
  element,
  element,
  element
], argument, argument, argument,
    argument);
>>> split before all trailing args
longFunctionName([element, element, element, element], argument, argument, argument, argument,
argument, argument, argument);
<<<
longFunctionName([
  element,
  element,
  element,
  element
],
    argument,
    argument,
    argument,
    argument,
    argument,
    argument,
    argument);
>>> don't split leading lists
longFunctionName([e, e], [e, e, e], a);
<<<
longFunctionName([e, e], [e, e, e], a);
>>> split before all args including leading
longFunctionName([e, e], [e, e, e], argument);
<<<
longFunctionName(
    [e, e], [e, e, e], argument);
>>> split before one leading arg
longFunctionName([elem, elem], [elem, elem], argument);
<<<
longFunctionName([elem, elem],
    [elem, elem], argument);
>>> split before all args including leading
longFunctionName([elem], [elem, elem], [elem, elem, elem], argument, argument,
argument, argument, argument, argument, argument);
<<<
longFunctionName(
    [elem],
    [elem, elem],
    [elem, elem, elem],
    argument,
    argument,
    argument,
    argument,
    argument,
    argument,
    argument);
>>> don't split trailing lists
longFunctionName(a, [e, e], [e, e, e]);
<<<
longFunctionName(a, [e, e], [e, e, e]);
>>> split before all args including trailing
longFunctionName(argument, [e, e], [e, e, e]);
<<<
longFunctionName(
    argument, [e, e], [e, e, e]);
>>> split before one trailing arg
longFunctionName(argument, [elem, elem], [elem, elem]);
<<<
longFunctionName(argument, [elem, elem],
    [elem, elem]);
>>> split before all args including trailing
longFunctionName(argument, argument, [elem], [elem, elem], [elem, elem, elem]);
<<<
longFunctionName(
    argument,
    argument,
    [elem],
    [elem, elem],
    [elem, elem, elem]);
>>> named args before and after list forces nesting
method(a:first,b:[element, element, element, element],c:third);
<<<
method(
    a: first,
    b: [
      element,
      element,
      element,
      element
    ],
    c: third);
>>> nothing but named list args does not nest
longFunctionName(a: [element, element, element, element],
b: [element, element, element, element], c: [element, element, element, element]);
<<<
longFunctionName(a: [
  element,
  element,
  element,
  element
], b: [
  element,
  element,
  element,
  element
], c: [
  element,
  element,
  element,
  element
]);
>>> some named list args does not nest
longFunctionName([element, element, element, element],
a: [element, element, element, element], b: [element, element, element, element]);
<<<
longFunctionName([
  element,
  element,
  element,
  element
], a: [
  element,
  element,
  element,
  element
], b: [
  element,
  element,
  element,
  element
]);
>>> nest trailing named if there are non-body named
longFunctionName(a: argument, b: argument,
c: [element, element, element, element], d: [element, element, element, element]);
<<<
longFunctionName(
    a: argument,
    b: argument,
    c: [
      element,
      element,
      element,
      element
    ],
    d: [
      element,
      element,
      element,
      element
    ]);
>>> leading named arguments
longFunctionName(name1: [element, element], name2: [element, element], name3: argument, name4: argument);
<<<
longFunctionName(
    name1: [element, element],
    name2: [element, element],
    name3: argument,
    name4: argument);
>>> don't nest because of nested 1-arg fn
outer(inner([element, element, element, element]));
<<<
outer(inner([
  element,
  element,
  element,
  element
]));
>>> do nest because of nested many-arg fn
outer(argument, inner([element, element, element, element]));
<<<
outer(
    argument,
    inner([
      element,
      element,
      element,
      element
    ]));
>>> don't nest because of nested 1-arg method call
obj.outer(obj.inner([element, element, element, element]));
<<<
obj.outer(obj.inner([
  element,
  element,
  element,
  element
]));
>>> do nest because of nested many-arg method call
obj.outer(argument, obj.inner([element, element, element, element]));
<<<
obj.outer(
    argument,
    obj.inner([
      element,
      element,
      element,
      element
    ]));