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

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

[elpa] externals/objed 06f4abc 043/166: Improve repeat behavior for back


From: Clemens Radermacher
Subject: [elpa] externals/objed 06f4abc 043/166: Improve repeat behavior for backward/forward until context
Date: Sun, 29 Dec 2019 08:20:58 -0500 (EST)

branch: externals/objed
commit 06f4abc2703e709a19743393051a6f196a47dc57
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Improve repeat behavior for backward/forward until context
---
 objed.el | 48 ++++++++++++++++++++++++++----------------------
 1 file changed, 26 insertions(+), 22 deletions(-)

diff --git a/objed.el b/objed.el
index 16d529d..8303737 100644
--- a/objed.el
+++ b/objed.el
@@ -1778,38 +1778,42 @@ Shrinks to inner objects on repeat if possible."
       (objed-context-object)))
   (objed--reverse))
 
-(defun objed-backward-until-context (arg)
+(defun objed-backward-until-context ()
   "Goto object inner beginning and activate part moved over.
 
 At bracket or string self insert ARG times."
-  (interactive "p")
-  (if (eq last-command this-command)
+  (interactive)
+  (if (objed--inner-p)
       (progn (objed--toggle-state)
              (goto-char (objed--beg)))
-    (if (or (objed--at-object-p 'bracket)
-            (objed--at-object-p 'string))
-        (self-insert-command arg)
-      (when (save-excursion
-              (objed-context-object)
-              (objed--toggle-state))
-        (objed--change-to :iend (point) :end (point))
-        (goto-char (objed--beg))))))
-
-(defun objed-forward-until-context (arg)
+    (when (save-excursion
+            (prog1 (objed-context-object)
+              (unless (eq last-command this-command)
+                (objed--toggle-state))))
+      (unless (eq last-command this-command)
+        (objed--change-to :iend (point) :end (point)))
+      (when (eq (point) (objed--beg))
+        (objed-context-object))
+      (goto-char (objed--beg)))))
+
+
+(defun objed-forward-until-context ()
   "Goto object inner end and activate part moved over.
 
 At bracket or string self insert ARG times."
-  (interactive "p")
-  (if (eq last-command this-command)
+  (interactive)
+  (if (objed--inner-p)
       (progn (objed--toggle-state)
              (goto-char (objed--end)))
-    (if (or (objed--at-object-p 'bracket)
-            (objed--at-object-p 'string))
-        (self-insert-command arg)
-      (when (save-excursion (objed-context-object)
-                            (objed--toggle-state))
-        (objed--change-to :ibeg (point) :beg (point))
-        (goto-char (objed--end))))))
+    (when (save-excursion (prog1 (objed-context-object)
+                            (unless (eq last-command this-command)
+                              (objed--toggle-state))))
+      (if (eq last-command this-command)
+          (goto-char (objed--end))
+        (objed--change-to :ibeg (point) :beg (point)))
+      (when (eq (point) (objed--end))
+        (objed-context-object))
+      (goto-char (objed--end)))))
 
 (defun objed-current-or-previous-context (&optional arg)
   "Move to end of object at point and activate it.



reply via email to

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