guidesComputeViewport function
Implementation
List<GuideBlock> guidesComputeViewport({
required Rope rope,
required BigInt firstVisible,
required BigInt lastVisible,
required BigInt tabSize,
}) {
final blocks = <GuideBlock>[];
for (
var line = firstVisible.toInt();
line <= lastVisible.toInt() && line < rope.lineCount;
line++
) {
final text = rope.getLineText(line);
final leading = text.length - text.trimLeft().length;
if (leading > 0) {
blocks.add(
GuideBlock(
startLine: line,
endLine: line,
indentLevel: (leading / math.max(1, tabSize.toInt())).floor(),
leadingSpaces: leading,
),
);
}
}
return blocks;
}