branch: externals/objed commit 963841d0818e9e55bf77439301a85e806f66b11e Author: Clemens Radermacher <clem...@posteo.net> Commit: Clemens Radermacher <clem...@posteo.net>
Improve continuation object --- objed.el | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/objed.el b/objed.el index 0bf1d3a..50ca624 100644 --- a/objed.el +++ b/objed.el @@ -734,8 +734,10 @@ selected one." ;; basic edit ops (define-key map "k" 'objed-kill) + (define-key map "K" 'objed-kill) (define-key map "w" 'objed-copy) (define-key map "d" 'objed-delete) + (define-key map "D" 'objed-delete) (define-key map "y" 'objed-yank) @@ -3508,15 +3510,15 @@ and RANGE hold the object position data." (defun objed--get-continuation-object (obj) - "Return continuation object for object OBJ." + "Return object for continuation OBJ." ;; white list - (cond ((memq obj '(word defun sentence)) - (objed-make-object :beg (point) - :end (objed--end (objed--get)))) - (t - (objed--switch-to 'sexp) - (objed-make-object :beg (point) - :end (objed--end))))) + (let ((shifted (memq 'shift (event-modifiers last-input-event)))) + (unless (memq obj '(word defun sentence line)) + (objed--switch-to 'sexp)) + (objed-make-object :beg (if shifted (objed--beg (objed--get-prev)) + (point)) + :end (if shifted (point) + (objed--end (objed--get)))))) (defun objed-quit ()