lineRange method
Lines [startLine, endLine) fetched with a single slice and split.
Use this for viewport rendering, highlighting and gutters.
Implementation
List<String> lineRange(int startLine, int endLine) {
final first = startLine.clamp(0, lineCount);
final last = endLine.clamp(first, lineCount);
if (first == last) return const [];
final startOffset = getLineStartOffset(first);
final endOffset = last >= lineCount
? length
: getLineStartOffset(last) - 1; // exclude the newline ending last-1
final parts = slice(startOffset, endOffset).split('\n');
for (var i = 0; i < parts.length; i++) {
final part = parts[i];
if (part.endsWith('\r')) parts[i] = part.substring(0, part.length - 1);
}
return parts;
}