40 columns                              |
>>> single cascades on same line
"foo"..toString();
<<<
"foo"..toString();
>>> long single cascade forces multi-line
"foo"..toString(argument, argument, argument);
<<<
"foo"
  ..toString(
      argument, argument, argument);
>>> multiple cascades get the same line when the method names are the same
list
  ..add("baz")
  ..add("bar");
<<<
list..add("baz")..add("bar");
>>> cascades indent contained blocks (and force multi-line) multiple cascades get their own line when method names are different
foo..fooBar()..toString();
<<<
foo
  ..fooBar()
  ..toString();
>>> cascaded setters are always multi-line even with the same name
foo..baz = 3..baz=5;
<<<
foo
  ..baz = 3
  ..baz = 5;
>>> cascades indent contained blocks (and force multi-line)
"foo"..toString(() {body;});
<<<
"foo"
  ..toString(() {
    body;
  });