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

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

[elpa] externals/vertico 12a3d83 2/2: Rework vertico-indexed


From: ELPA Syncer
Subject: [elpa] externals/vertico 12a3d83 2/2: Rework vertico-indexed
Date: Sat, 10 Jul 2021 07:57:18 -0400 (EDT)

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

    Rework vertico-indexed
---
 extensions/vertico-indexed.el | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/extensions/vertico-indexed.el b/extensions/vertico-indexed.el
index cbd8298..28e4a79 100644
--- a/extensions/vertico-indexed.el
+++ b/extensions/vertico-indexed.el
@@ -50,10 +50,12 @@
                    prefix)
            suffix index start))
 
-(defun vertico-indexed--goto ()
-  "Goto candidate given by `current-prefix-arg'."
-  (when current-prefix-arg
-    (vertico--goto (+ vertico-indexed--start (prefix-numeric-value 
current-prefix-arg)))))
+(defun vertico-indexed--handle-prefix (orig)
+  "Handle prefix argument before calling ORIG function."
+  (let ((vertico--index (if current-prefix-arg
+                            (+ vertico-indexed--start (prefix-numeric-value 
current-prefix-arg))
+                          vertico--index)))
+    (funcall orig)))
 
 ;;;###autoload
 (define-minor-mode vertico-indexed-mode
@@ -62,12 +64,12 @@
   (cond
    (vertico-indexed-mode
     (advice-add #'vertico--format-candidate :around 
#'vertico-indexed--format-candidate)
-    (advice-add #'vertico-insert :before #'vertico-indexed--goto)
-    (advice-add #'vertico-exit :before #'vertico-indexed--goto))
+    (advice-add #'vertico-insert :around #'vertico-indexed--handle-prefix)
+    (advice-add #'vertico-exit :around #'vertico-indexed--handle-prefix))
    (t
     (advice-remove #'vertico--format-candidate 
#'vertico-indexed--format-candidate)
-    (advice-remove #'vertico-insert #'vertico-indexed--goto)
-    (advice-remove #'vertico-exit #'vertico-indexed--goto))))
+    (advice-remove #'vertico-insert #'vertico-indexed--handle-prefix)
+    (advice-remove #'vertico-exit #'vertico-indexed--handle-prefix))))
 
 (provide 'vertico-indexed)
 ;;; vertico-indexed.el ends here



reply via email to

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