deleteSelections method
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;
});
}