deleteWordForward function

TextCommandResult deleteWordForward(
  1. List<String> graphemes, {
  2. required int cursorOffset,
  3. int? selectionBaseOffset,
  4. int? selectionExtentOffset,
  5. required GraphemePredicate isWord,
})

Implementation

TextCommandResult deleteWordForward(
  List<String> graphemes, {
  required int cursorOffset,
  int? selectionBaseOffset,
  int? selectionExtentOffset,
  required nav.GraphemePredicate isWord,
}) {
  if (cursorOffset >= graphemes.length) {
    return _unchangedResult(
      graphemes,
      cursorOffset: cursorOffset,
      selectionBaseOffset: selectionBaseOffset,
      selectionExtentOffset: selectionExtentOffset,
    );
  }

  final range = nav.deleteWordForwardRange(
    graphemes,
    cursorOffset,
    isWord: isWord,
  );
  if (range.end <= cursorOffset) {
    return _unchangedResult(
      graphemes,
      cursorOffset: cursorOffset,
      selectionBaseOffset: selectionBaseOffset,
      selectionExtentOffset: selectionExtentOffset,
    );
  }

  final result = edit_ops.removeRange(
    graphemes,
    start: cursorOffset,
    end: range.end,
    cursorOffset: cursorOffset,
  );
  return TextCommandResult(
    graphemes: result.graphemes,
    cursorOffset: result.cursorOffset,
  );
}