emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/objed 6f50de1 20/59: Add objed-append-mode for objed-co


From: Clemens Radermacher
Subject: [elpa] externals/objed 6f50de1 20/59: Add objed-append-mode for objed-copy repeat
Date: Sun, 24 Mar 2019 06:06:37 -0400 (EDT)

branch: externals/objed
commit 6f50de1e2e24f918620ccde4f0151137f5fbb1f1
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Add objed-append-mode for objed-copy repeat
---
 objed.el | 37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/objed.el b/objed.el
index 7c7900a..8c49f81 100644
--- a/objed.el
+++ b/objed.el
@@ -2391,19 +2391,27 @@ region command."
   (interactive)
   (objed--do #'delete-region))
 
+(define-minor-mode objed-append-mode
+  "Append kills on `objed-copy'.
+
+When `objed-append-mode' is active `objed-copy' will append kills
+to the `kill-ring'.")
+
 (defun objed-copy ()
   "Copy objects.
 
-On repeat move on the next instance of current object type and
-append it to the `kill-ring'."
+On repeat activate `objed-append-mode'"
   (interactive)
-  (when (and (eq last-command 'kill-region)
-             (not (eq real-last-command 'append-next-kill)))
-    (objed--goto-next))
+  (when objed-append-mode
+    ;; append on repeat
+    (setq last-command 'kill-region))
   (objed--do #'copy-region-as-kill)
-  ;; append on repeat
-  (setq this-command 'kill-region)
-  (message "Copied to `kill-ring.'"))
+  (if (eq real-last-command real-this-command)
+      (progn (objed-append-mode 1)
+             (message "Append mode activated. Press g to stop."))
+    (message (if objed-append-mode
+                 "Appended to `kill-ring'"
+               "Copied to `kill-ring.'"))))
 
 (defun objed-del-insert ()
   "Delete current object and exit to insert state."
@@ -3311,11 +3319,14 @@ on and RANGE hold the object position data."
 
 If region is active deactivate it first."
   (interactive)
-  (if mark-active
-      (progn
-        (setq mark-active nil)
-        (objed--init objed--object))
-    (objed--exit-objed)))
+  (cond (mark-active
+         (setq mark-active nil)
+         (objed--init objed--object))
+        (objed-append-mode
+         (objed-append-mode -1)
+         (message "Append mode deactivated"))
+        (t
+         (objed--exit-objed))))
 
 (defun objed--check-buffer ()
   "Check if current buffer is still the `objed--buffer'.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]