textInRange method
String
textInRange(
{ - required int startOffset,
- required int endOffset,
})
Implementation
String textInRange({required int startOffset, required int endOffset}) {
final start = startOffset.clamp(0, length);
final end = endOffset.clamp(start, length);
if (start == end) {
return '';
}
final startPosition = positionForOffset(start);
final endPosition = positionForOffset(end);
final buffer = StringBuffer();
for (var line = startPosition.line; line <= endPosition.line; line++) {
final lineStart = line == startPosition.line ? startPosition.column : 0;
final lineEnd = line == endPosition.line
? endPosition.column
: lineLength(line);
if (lineEnd > lineStart) {
buffer.write(
_storage.textInLineRange(
line,
startColumn: lineStart,
endColumn: lineEnd,
),
);
}
if (line < endPosition.line) {
buffer.write('\n');
}
}
return buffer.toString();
}