buildLines method
Implementation
List<TextViewLine> buildLines(TextDocument document, EditorState state) {
final visual = _buildVisualLines(document);
final result = <TextViewLine>[];
for (var i = 0; i < visual.length; i++) {
final line = visual[i];
final lineLength = document.lineLength(line.rowIndex);
final cursorColumn = state.line == line.rowIndex
? state.column.clamp(0, lineLength)
: -1;
final segStart = line.charOffset;
final segEnd = segStart + line.graphemeCount;
final hasCursor =
state.line == line.rowIndex &&
cursorColumn >= segStart &&
cursorColumn <= segEnd;
result.add(
TextViewLine(
visualRow: i,
logicalLine: line.rowIndex,
charOffset: line.charOffset,
text: line.text,
graphemeCount: line.graphemeCount,
hasCursor: hasCursor,
),
);
}
return result;
}