hitTestContent method

TextHitResult? hitTestContent(
  1. TextDocument document,
  2. EditorState state, {
  3. required int localX,
  4. required int visualRow,
})

Implementation

TextHitResult? hitTestContent(
  TextDocument document,
  EditorState state, {
  required int localX,
  required int visualRow,
}) {
  final lines = softWrap
      ? buildViewportLines(document, state)
      : buildLinesForCurrentViewport(document, state);
  if (visualRow < 0 || visualRow >= lines.length) {
    return null;
  }

  final line = lines[visualRow];
  final columnInSegment = layout.localCellXToGraphemeIndex(line.text, localX);
  final column = line.charOffset + columnInSegment;
  final clampedColumn = column.clamp(
    0,
    document.lineLength(line.logicalLine),
  );

  return TextHitResult(
    line: line.logicalLine,
    column: clampedColumn,
    visualRow: visualRow,
  );
}