40 columns                              |
>>> Multiplicative operators.
1*2/3~/4%5;
<<<
1 * 2 / 3 ~/ 4 % 5;
>>> Additive operators.
1+2-3;
<<<
1 + 2 - 3;
>>> Shift operators.
1<<2>>3>>>4;
<<<
1 << 2 >> 3 >>> 4;
>>> Bitwise operators.
1&2^3|4;
<<<
1 & 2 ^ 3 | 4;
>>> Relation operators (which are not associative in Dart).
1<2;
<<<
1 < 2;
>>>
1>2;
<<<
1 > 2;
>>>
1<=2;
<<<
1 <= 2;
>>>
1>=2;
<<<
1 >= 2;
>>> Equality operators (which are not associative in Dart).
1==2;
<<<
1 == 2;
>>> Equality operators.
1!=2;
<<<
1 != 2;
>>> Logical operators.
1&&2||3;
<<<
1 && 2 || 3;
>>> If-null operator.
foo??bar;
<<<
foo ?? bar;
>>> Unsplit operators with mixed precedence.
1+2/3-4*5%6<<7;
<<<
1 + 2 / 3 - 4 * 5 % 6 << 7;
>>> If any operator splits, they all do.
operand1 + operand2 + operand3 + operand4;
<<<
operand1 +
    operand2 +
    operand3 +
    operand4;
>>> Mixed multiplicative operators split together.
longName * longName / longName % longName ~/ longName;
<<<
longName *
    longName /
    longName %
    longName ~/
    longName;
>>> Mixed additive operators split together.
longName + longName - longName + longName - longName;
<<<
longName +
    longName -
    longName +
    longName -
    longName;
>>> Mixed shift operators split together.
longName >> longName << longName >> longName >>> longName;
<<<
longName >>
    longName <<
    longName >>
    longName >>>
    longName;
>>> Mixed ascending precedence.
b___________________ || a______________ && a______________ == a______________ >
a______________ + a______________;
<<<
b___________________ ||
    a______________ &&
        a______________ ==
            a______________ >
                a______________ +
                    a______________;
>>> Mixed descending precedence.
b___________________ + a_______________ > a______________ == a______________ &&
a______________ || a______________;
<<<
b___________________ +
                    a_______________ >
                a______________ ==
            a______________ &&
        a______________ ||
    a______________;
>>> Mixture of same and different precedence.
veryLongIdentifier + veryLongIdentifier / veryLongIdentifier *
veryLongIdentifier - veryLongIdentifier * veryLongIdentifier +
veryLongIdentifier / veryLongIdentifier - veryLongIdentifier;
<<<
veryLongIdentifier +
    veryLongIdentifier /
        veryLongIdentifier *
        veryLongIdentifier -
    veryLongIdentifier *
        veryLongIdentifier +
    veryLongIdentifier /
        veryLongIdentifier -
    veryLongIdentifier;
>>> Don't indent subsequent operands when split inside a variable declaration.
var variable = longOperand2 + longOperand2 + longOperand3;
<<<
var variable =
    longOperand2 +
    longOperand2 +
    longOperand3;
>>> Don't indent subsequent operands when split inside a pattern variable declaration.
var (x, y) = longOperand2 + longOperand2 + longOperand3;
<<<
var (x, y) =
    longOperand2 +
    longOperand2 +
    longOperand3;
>>> Don't indent subsequent operands when split inside an assignment.
variable = longOperand2 + longOperand2 + longOperand3;
<<<
variable =
    longOperand2 +
    longOperand2 +
    longOperand3;
>>> Don't indent subsequent operands when split inside a pattern assignment.
(x, y) = longOperand2 + longOperand2 + longOperand3;
<<<
(x, y) =
    longOperand2 +
    longOperand2 +
    longOperand3;
>>> Don't indent subsequent operands when split inside a `=>` body.
function() => longOperand2 + longOperand2 + longOperand3;
<<<
function() =>
    longOperand2 +
    longOperand2 +
    longOperand3;
>>> Don't indent subsequent operands when split inside a named argument.
function(name: longOperand2 + longOperand2 + longOperand3);
<<<
function(
  name:
      longOperand2 +
      longOperand2 +
      longOperand3,
);
>>> Don't indent subsequent operands when split inside a map key.
map = {key: longOperand2 + longOperand2 + longOperand3};
<<<
map = {
  key:
      longOperand2 +
      longOperand2 +
      longOperand3,
};
>>> Don't indent subsequent operands when split inside a named record field.
record = (key: longOperand2 + longOperand2 + longOperand3);
<<<
record = (
  key:
      longOperand2 +
      longOperand2 +
      longOperand3,
);