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

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

[elpa] externals/vertico f49a0ea 1/2: vertico-indexed: Add vertico-index


From: ELPA Syncer
Subject: [elpa] externals/vertico f49a0ea 1/2: vertico-indexed: Add vertico-indexed--commands
Date: Fri, 29 Oct 2021 06:57:36 -0400 (EDT)

branch: externals/vertico
commit f49a0ea0d9350a3bc6a0ced80dedf80dcfa16ed3
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    vertico-indexed: Add vertico-indexed--commands
---
 extensions/vertico-indexed.el | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/extensions/vertico-indexed.el b/extensions/vertico-indexed.el
index 73f2a4d..751d71e 100644
--- a/extensions/vertico-indexed.el
+++ b/extensions/vertico-indexed.el
@@ -38,6 +38,8 @@
   "Face used for the candidate index prefix."
   :group 'vertico-faces)
 
+(defvar vertico-indexed--commands
+  '(vertico-insert vertico-exit vertico-directory-enter))
 (defvar-local vertico-indexed--min 0)
 (defvar-local vertico-indexed--max 0)
 
@@ -52,16 +54,16 @@
                    prefix)
            suffix index start))
 
-(defun vertico-indexed--handle-prefix (orig &rest args)
-  "Handle prefix argument before calling ORIG function."
-  (if current-prefix-arg
+(defun vertico-indexed--handle-prefix (&rest orig)
+  "Handle prefix argument before applying ORIG function."
+  (if (and current-prefix-arg (called-interactively-p t))
       (let ((vertico--index (+ vertico-indexed--min (prefix-numeric-value 
current-prefix-arg))))
         (if (or (< vertico--index vertico-indexed--min)
                 (> vertico--index vertico-indexed--max)
                 (= vertico--total 0))
             (minibuffer-message "Out of range")
-          (funcall orig)))
-    (apply orig args)))
+          (apply orig)))
+    (apply orig)))
 
 ;;;###autoload
 (define-minor-mode vertico-indexed-mode
@@ -70,12 +72,12 @@
   (cond
    (vertico-indexed-mode
     (advice-add #'vertico--format-candidate :around 
#'vertico-indexed--format-candidate)
-    (advice-add #'vertico-insert :around #'vertico-indexed--handle-prefix)
-    (advice-add #'vertico-exit :around #'vertico-indexed--handle-prefix))
+    (dolist (cmd vertico-indexed--commands)
+      (advice-add cmd :around #'vertico-indexed--handle-prefix)))
    (t
     (advice-remove #'vertico--format-candidate 
#'vertico-indexed--format-candidate)
-    (advice-remove #'vertico-insert #'vertico-indexed--handle-prefix)
-    (advice-remove #'vertico-exit #'vertico-indexed--handle-prefix))))
+    (dolist (cmd vertico-indexed--commands)
+      (advice-remove cmd #'vertico-indexed--handle-prefix)))))
 
 (provide 'vertico-indexed)
 ;;; vertico-indexed.el ends here



reply via email to

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