writeln method
Safely writes both single-line and multi-line strings.
Implementation
void writeln(Object object) {
final str = object.toString();
if (str.isEmpty) {
return;
}
if (_indentLevel <= 0) {
_buffer.writeln(str);
return;
}
if (!str.contains('\n')) {
_writeIndent();
_buffer.writeln(str);
return;
}
final lines = str.split('\n');
for (var i = 0; i < lines.length; i++) {
final line = lines[i];
if (i == lines.length - 1 && line.isEmpty) {
break;
}
if (line.isNotEmpty) {
_writeIndent();
}
_buffer.writeln(line);
}
}