caretPosition method

  1. @override
DiagramPoint caretPosition(
  1. DiagramTextPosition position
)
override

Resolves an exact line-local UTF-16 position, including boundary affinity.

Implementation

@override
DiagramPoint caretPosition(DiagramTextPosition position) {
  if (emptyCaretX case final x?) return DiagramPoint(x, 0);
  final point = _paragraph.getOffsetForCaret(
    TextPosition(
      offset: start + position.offset.clamp(0, end - start),
      affinity: flutterTextAffinity(position.affinity),
    ),
    Rect.zero,
  );
  return DiagramPoint(point.dx, point.dy - top);
}