paint method
Implementation
@override
String paint() {
final maxW = size.width.toInt();
_ensureBaseCache(maxW);
final baseLines = _cachedBaseLines!;
final baseLineWidths = _cachedBaseLineWidths!;
final baseLineHasAnsi = _cachedBaseLineHasAnsi!;
final start = selectionStart;
final end = selectionEnd;
if (start != null && end != null) {
final customRanges = selectionHighlightRangesByLine;
final lines = customRanges == null
? applySelectionHighlighting(
baseLines,
offset: 0,
selectionStart: start,
selectionEnd: end,
highlightStyle: selectionHighlightStyle,
lineWidths: baseLineWidths,
lineHasAnsi: baseLineHasAnsi,
)
: applySelectionHighlightingWithRanges(
baseLines,
offset: 0,
selectionStart: start,
selectionEnd: end,
highlightStyle: selectionHighlightStyle,
lineWidths: baseLineWidths,
lineHasAnsi: baseLineHasAnsi,
lineHighlightRanges: [
for (var i = 0; i < baseLines.length; i++)
i < customRanges.length
? [
for (final range in customRanges[i])
StyleRange(
range.start.clamp(0, maxW),
range.end.clamp(0, maxW),
range.style,
),
]
: const <StyleRange>[],
],
);
return lines.join('\n');
}
return _cachedBaseText!;
}