40 columns                              |
>>> many parameters
method(first, second, third, fourth, fifth, sixth, seventh, eighth, ninth,
    tenth, eleventh, twelfth) {
  print('42');
}
<<<
method(
    first,
    second,
    third,
    fourth,
    fifth,
    sixth,
    seventh,
    eighth,
    ninth,
    tenth,
    eleventh,
    twelfth) {
  print('42');
}
>>> parameters fit but ) does not
method(int firstArgument, int argumentTo) {
  print('42');
}
<<<
method(
    int firstArgument, int argumentTo) {
  print('42');
}
>>> parameters fit but } does not
method(int firstArgument, int argument) {
  print('42');
}
<<<
method(
    int firstArgument, int argument) {
  print('42');
}
>>> no split after "(" in lambda
var meth = (
    int firstArgument, int argumentTo) {
  print('42');
};
<<<
var meth = (int firstArgument,
    int argumentTo) {
  print('42');
};
>>> keep mandatory and positional on same line
foo(param, [foo, bar]) {}
<<<
foo(param, [foo, bar]) {}
>>> keep mandatory and named on same line
foo(param, {foo, bar}) {}
<<<
foo(param, {foo, bar}) {}
>>> move just optional positional to second line even though all fit on second
reallyLongMethod(parameter, [foo, bar]) {}
<<<
reallyLongMethod(parameter,
    [foo, bar]) {}
>>> move just named to second line even though all fit on second
reallyLongMethod(parameter, {foo, bar}) {}
<<<
reallyLongMethod(parameter,
    {foo, bar}) {}
>>> avoid splitting in function type parameters
bool doStuff(parameter1, void printFn(param1, param2)) {}
<<<
bool doStuff(parameter1,
    void printFn(param1, param2)) {}
>>>
doStuff(param1, void printFn(param1, param2)) {}
<<<
doStuff(param1,
    void printFn(param1, param2)) {}
>>> allow splitting in function type parameters
doStuff(callback(parameter1, parameter2, parameter3, parameter4)) {}
<<<
doStuff(
    callback(parameter1, parameter2,
        parameter3, parameter4)) {}
>>> split optional onto one per line if they don't fit on one line
doStuff([parameter1, parameter2, parameter3]) {}
<<<
doStuff(
    [parameter1,
    parameter2,
    parameter3]) {}
>>> split on positional default value
doStuff([parameter = veryLongDefaultValueThatSplits, another =
veryLongDefaultValue, third = alsoQuiteLongDefaultValue]) {}
<<<
doStuff(
    [parameter =
        veryLongDefaultValueThatSplits,
    another = veryLongDefaultValue,
    third =
        alsoQuiteLongDefaultValue]) {}
>>> split on named value
doStuff({parameter: veryLongDefaultValueThatSplits, another:
veryLongDefaultValue, third: alsoAQuiteLongDefaultValue}) {}
<<<
doStuff(
    {parameter:
        veryLongDefaultValueThatSplits,
    another: veryLongDefaultValue,
    third:
        alsoAQuiteLongDefaultValue}) {}
>>> split between type and name
doStuff(VerylongParameterType parameterName) {}
<<<
doStuff(
    VerylongParameterType
        parameterName) {}