deleteSelections method

bool deleteSelections()

Deletes all active selections as one undoable edit.

Implementation

bool deleteSelections() {
  final active = selections;
  if (active.ranges.every((range) => range.isCollapsed)) return false;
  return _runEditFrame(() {
    _beginHistoryAction(
      _TextAreaHistoryAction.deleteForward,
      breakChain: true,
    );
    _recordUndoSnapshot();
    if (active.ranges.length == 1) {
      return _deleteSelectionIfAny();
    }
    final result = insertTextAtEachSelection(
      _document.flattenWithNewlines(),
      active,
      const <String>[],
    );
    _replaceText(result.graphemes.join());
    _selections = result.selections;
    final primary = result.selections.primary!;
    _applyLineStateSnapshot(
      lineSnapshotFromOffsets(_document, cursorOffset: primary.activeOffset),
    );
    _lastDocumentChange = null;
    return true;
  });
}