getOffsetBefore method

int? getOffsetBefore(
  1. int offset
)

Returns the closest offset before offset at which the input cursor can be positioned.

Implementation

int? getOffsetBefore(int offset) {
  final int? prevCodeUnit = _text!.codeUnitAt(offset - 1);
  if (prevCodeUnit == null) {
    return null;
  }
  // TODO(goderbauer): doesn't handle extended grapheme clusters with more than one Unicode scalar value (https://github.com/flutter/flutter/issues/13404).
  return isLowSurrogate(prevCodeUnit) ? offset - 2 : offset - 1;
}