diff options
| author | Albert Cervin <albert@acervin.com> | 2023-05-10 12:58:27 +0200 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2023-05-10 12:58:27 +0200 |
| commit | 67276833f9ede96dbc549c508f182c913240ac2c (patch) | |
| tree | 6ba4859e7126f4db57b2f7c3af4bfe659834c373 /src/dged/buffer.c | |
| parent | 5a5ec57d8521a5aa7317d2658ead95b8e2fde5b9 (diff) | |
| download | dged-67276833f9ede96dbc549c508f182c913240ac2c.tar.gz dged-67276833f9ede96dbc549c508f182c913240ac2c.tar.xz dged-67276833f9ede96dbc549c508f182c913240ac2c.zip | |
Implement word deletion
M-d for forward, M-D for backward
Diffstat (limited to 'src/dged/buffer.c')
| -rw-r--r-- | src/dged/buffer.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/dged/buffer.c b/src/dged/buffer.c index f2e7eb9..e40281f 100644 --- a/src/dged/buffer.c +++ b/src/dged/buffer.c @@ -434,6 +434,34 @@ void buffer_backward_delete_char(struct buffer_view *view) { } } +void buffer_forward_delete_word(struct buffer_view *view) { + if (maybe_delete_region(view)) { + return; + } + + struct buffer_location start = view->dot; + buffer_forward_word(view); + struct buffer_location end = view->dot; + + buffer_goto(view, start.line, start.col); + + delete_with_undo(view->buffer, start, end); +} + +void buffer_backward_delete_word(struct buffer_view *view) { + if (maybe_delete_region(view)) { + return; + } + + struct buffer_location end = view->dot; + buffer_backward_word(view); + struct buffer_location start = view->dot; + + buffer_goto(view, start.line, start.col); + + delete_with_undo(view->buffer, start, end); +} + void buffer_backward_char(struct buffer_view *view) { moveh(view, -1); } void buffer_forward_char(struct buffer_view *view) { moveh(view, 1); } |
