@@ -3,8 +3,8 @@ use helix_core::{
3 movement::{self, Direction},
3 movement::{self, Direction},
4 object, pos_at_coords,
4 object, pos_at_coords,
5 regex::{self, Regex},
5 regex::{self, Regex},
6− register, search, selection, Change, ChangeSet, Position, Range, Rope, RopeSlice, Selection,
6+ register, search, selection, words, Change, ChangeSet, Position, Range, Rope, RopeSlice,
7− SmallVec, Tendril, Transaction,
7+ Selection, SmallVec, Tendril, Transaction,
10use helix_view::{
10use helix_view::{
@@ -1782,7 +1782,6 @@ pub mod insert {
1783 pub fn delete_char_forward(cx: &mut Context) {
1783 pub fn delete_char_forward(cx: &mut Context) {
1784 let count = cx.count;
1784 let count = cx.count;
1785− let doc = cx.doc();
1786 let (view, doc) = cx.current();
1785 let (view, doc) = cx.current();
1787 let text = doc.text().slice(..);
1786 let text = doc.text().slice(..);
1788 let transaction =
1787 let transaction =
@@ -1795,6 +1794,21 @@ pub mod insert {
1796 doc.apply(&transaction, view.id);
1795 doc.apply(&transaction, view.id);
1798+ pub fn delete_word_backward(cx: &mut Context) {
1799+ let count = cx.count;
1800+ let (view, doc) = cx.current();
1801+ let text = doc.text().slice(..);
1803+ Transaction::change_by_selection(doc.text(), doc.selection(view.id), |range| {
1805+ words::nth_prev_word_boundary(text, range.head, count),
1810+ doc.apply(&transaction, view.id);
1800// Undo / Redo
1814// Undo / Redo