@@ -707,6 +707,18 @@ pub fn extend_line(cx: &mut Context) {
707707// heuristic: append changes to history after each command, unless we're in insert mode
708708
709709fn _delete_selection(doc: &mut Document, view_id: ViewId) {
710+ // first yank the selection
711+ let values: Vec<String> = doc
712+ .selection(view_id)
713+ .fragments(doc.text().slice(..))
714+ .map(Cow::into_owned)
715+ .collect();
716+
717+ // TODO: allow specifying reg
718+ let reg = '"';
719+ register::set(reg, values);
720+
721+ // then delete
710722 let transaction =
711723 Transaction::change_by_selection(doc.text(), doc.selection(view_id), |range| {
712724 (range.from(), range.to() + 1, None)