>>>
void main() {
  model..account = (new Account()
    ..accountId = new Int64(111)
    ..tags = (new Account_Tags()..accountHotlist.add(new Hotlist()..hotlistId = new Int64(10))));
}
<<<
void main() {
  model
    ..account = (new Account()
      ..accountId = new Int64(111)
      ..tags = (new Account_Tags()
        ..accountHotlist.add(new Hotlist()..hotlistId = new Int64(10))));
}
>>> (indent 6)
main() {
receiver
      ..formattedTotal = _total == 0
          ? ""
          : _chartType == "PieChart"
          ? _formatter.formatAsPercent(item.value / _total, fractionDigits: 1)
          : _formatter.formatValue(item.value, item.valueType);
}
<<<
      main() {
        receiver
          ..formattedTotal = _total == 0
              ? ""
              : _chartType == "PieChart"
              ? _formatter.formatAsPercent(item.value / _total,
                  fractionDigits: 1)
              : _formatter.formatValue(item.value, item.valueType);
      }