offsetForDisplayColumn method

int offsetForDisplayColumn(
  1. TextDocument document,
  2. EditorState state, {
  3. required int visualRow,
  4. required int displayColumn,
})

Implementation

int offsetForDisplayColumn(
  TextDocument document,
  EditorState state, {
  required int visualRow,
  required int displayColumn,
}) {
  final lines = buildLines(document, state);
  if (lines.isEmpty) {
    return 0;
  }

  final line = lines[visualRow.clamp(0, lines.length - 1)];
  final columnInSegment = layout.localCellXToGraphemeIndex(
    line.text,
    displayColumn,
  );

  return document.offsetForPosition(
    TextPosition(
      line: line.logicalLine,
      column: line.charOffset + columnInSegment,
    ),
  );
}