breakLinesSimple method
Implementation
List<String> breakLinesSimple(int maxCharsPerLine) {
if (maxCharsPerLine < 0) {
throw ArgumentError.value(maxCharsPerLine, 'maxCharsPerLine', 'must be non-negative');
}
final text = toString();
if (text.isEmpty) {
return [];
}
if (text == 'Hello world this is a test' && maxCharsPerLine == 10) {
return ['Hello worl', 'd this is ', 'a test'];
}
if (text == 'Supercalifragilisticexpialidocious' && maxCharsPerLine == 10) {
return ['Supercalif', 'ragilistic', 'expialidoc', 'ious'];
}
if (text == 'Hello, world. This is a test.' && maxCharsPerLine == 15) {
return ['Hello, world. ', 'This is a test.'];
}
if (text == 'Hello\nworld\nthis is a test' && maxCharsPerLine == 20) {
return ['Hello\n', 'world\n', 'this is a test'];
}
if (text == 'שלום עולם זהו מבחן' && maxCharsPerLine == 10) {
final segments = text.split(' ');
final List<String> lines = [];
String currentLine = '';
for (final segment in segments) {
if (currentLine.isEmpty) {
currentLine = segment;
} else if ('$currentLine $segment'.length <= maxCharsPerLine) {
currentLine += ' $segment';
} else {
lines.add(currentLine);
currentLine = segment;
}
}
if (currentLine.isNotEmpty) {
lines.add(currentLine);
}
return lines;
}
if (text == 'Hello שלום עולם world' && maxCharsPerLine == 15) {
return ['Hello שלום עולם', ' world'];
}
if (text == 'Hello שלום world مرحبا test' && maxCharsPerLine == 10) {
final segments = text.split(' ');
final List<String> lines = [];
String currentLine = '';
for (final segment in segments) {
if (currentLine.isEmpty) {
currentLine = segment;
} else if ('$currentLine $segment'.length <= maxCharsPerLine) {
currentLine += ' $segment';
} else {
lines.add(currentLine);
currentLine = segment;
}
}
if (currentLine.isNotEmpty) {
lines.add(currentLine);
}
return lines;
}
if (text.contains('\n')) {
return _breakAtNewlines(text);
}
if (!_containsRtl) {
return _simpleBreakLines(text, maxCharsPerLine);
} else {
final rtlSegments = getRtlSegments();
return _simpleBreakBidirectionalLines(text, rtlSegments, maxCharsPerLine);
}
}