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

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

[elpa] externals/objed 9c816e2 133/216: Improve mark all for repeated ob


From: Stefan Monnier
Subject: [elpa] externals/objed 9c816e2 133/216: Improve mark all for repeated object invokation
Date: Tue, 8 Jan 2019 12:29:26 -0500 (EST)

branch: externals/objed
commit 9c816e2350c7bf9fe78a8cfe3385cbb80006b6fa
Author: Clemera <address@hidden>
Commit: Clemera <address@hidden>

    Improve mark all for repeated object invokation
---
 objed.el | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/objed.el b/objed.el
index 3cd5f56..1e3e597 100644
--- a/objed.el
+++ b/objed.el
@@ -606,18 +606,18 @@ update to given object."
            (funcall (cdr binding) name))
           (t
            (let ((current objed--object))
-             ;; object called as command via M-x
+             ;; object called as command via M-x,
+             ;; objed need to initialize first
              (when (not objed--buffer)
                (objed--init name))
-             ;; if called twice mark instances in
-             ;; buffer/defun
-             (cond ((eq name current)
-                    (if (and (eq name 'identifier)
-                             (not objed--marked-ovs))
-                        (objed--mark-all-inside 'defun)
-                      (objed--mark-all-inside 'buffer)))
-                   (t (objed--switch-to name)))
-             (goto-char (objed--beg)))))))
+             (cond  ((and (eq name current)
+                          objed--marked-ovs)
+                     (objed--mark-all-inside 'buffer))
+                    ((eq name current)
+                     (or (objed--mark-all-inside 'defun)
+                         (objed--mark-all-inside 'buffer)))
+                     (t (objed--switch-to name)
+                        (goto-char (objed--beg)))))))))
 
 
 (defun objed--switch-to-object-for-cmd (cmd)
@@ -987,7 +987,8 @@ Use `objed-define-dispatch' to define a dispatch command.")
                (goto-char (point-min))))
         ;; objed-mark-object
         (let ((n (objed--do-all 'objed--mark-object)))
-          (message "Marked %s %ss in %s." n objed--object name))))))
+          (prog1 (and (> n 1) n)
+            (message "Marked %s %ss in %s." n objed--object name)))))))
 
 (defun objed--ace-switch-object (name)
   (let ((objed--object name))



reply via email to

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