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

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

[elpa] externals/consult 1ce90d2e21: Unfortunately the fix of #512 was b


From: ELPA Syncer
Subject: [elpa] externals/consult 1ce90d2e21: Unfortunately the fix of #512 was broken
Date: Sat, 19 Feb 2022 20:57:22 -0500 (EST)

branch: externals/consult
commit 1ce90d2e21c7bcbca2ce1a83a827ab98099ee892
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Unfortunately the fix of #512 was broken
    
    Implement a better key normalization using `define-key`.
---
 consult.el | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/consult.el b/consult.el
index 7bc825309a..406d5b3de3 100644
--- a/consult.el
+++ b/consult.el
@@ -1268,17 +1268,19 @@ FACE is the cursor face."
         (pop preview-key)))
     keys))
 
-(defun consult--preview-key-pressed-p (preview-key cand)
-  "Return t if PREVIEW-KEY has been pressed given the current candidate CAND."
+(defun consult--preview-key-debounce (preview-key cand)
+  "Return debounce value of PREVIEW-KEY given the current candidate CAND."
   (when (and (consp preview-key) (memq :keys preview-key))
     (setq preview-key (funcall (plist-get preview-key :predicate) cand)))
-  (setq preview-key (consult--preview-key-normalize preview-key))
-  (let ((keys (this-single-command-keys)))
-    (cdr (or (seq-find (lambda (x)
-                         (and (not (eq (car x) 'any))
-                              (lookup-key `(keymap (,(car x) . ignore)) keys)))
-                       preview-key)
-             (assq 'any preview-key)))))
+  (let ((map (make-sparse-keymap))
+        (keys (this-single-command-keys))
+        any)
+    (dolist (x (consult--preview-key-normalize preview-key))
+      (if (eq (car x) 'any)
+          (setq any (cdr x))
+        (define-key map (car x) (cdr x))))
+    (setq keys (lookup-key map keys))
+    (if (numberp keys) keys any)))
 
 (defun consult--with-preview-1 (preview-key state transform candidate fun)
   "Add preview support for FUN.
@@ -1298,7 +1300,7 @@ and CANDIDATE."
                               (with-selected-window (or 
(minibuffer-selected-window) (next-window))
                                 (let ((transformed (funcall transform input 
cand))
                                       (new-preview (cons input cand)))
-                                  (when-let (debounce 
(consult--preview-key-pressed-p preview-key transformed))
+                                  (when-let (debounce 
(consult--preview-key-debounce preview-key transformed))
                                     (when timer
                                       (cancel-timer timer)
                                       (setq timer nil))



reply via email to

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