branch: externals/objed
commit 963841d0818e9e55bf77439301a85e806f66b11e
Author: Clemens Radermacher <[email protected]>
Commit: Clemens Radermacher <[email protected]>
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 ()