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

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

[elpa] externals/vertico 10e8508f58: vertico-flat/reverse/grid-mode: Set


From: ELPA Syncer
Subject: [elpa] externals/vertico 10e8508f58: vertico-flat/reverse/grid-mode: Setup keymap by manipulating vertico-map
Date: Thu, 30 Dec 2021 13:57:47 -0500 (EST)

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

    vertico-flat/reverse/grid-mode: Setup keymap by manipulating vertico-map
    
    This allows us to toggle the modes while the minibuffer is active.
---
 extensions/vertico-flat.el    | 14 ++++++--------
 extensions/vertico-grid.el    | 14 ++++++--------
 extensions/vertico-reverse.el | 14 ++++++--------
 3 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/extensions/vertico-flat.el b/extensions/vertico-flat.el
index d1125c05c4..cc40c9cfc7 100644
--- a/extensions/vertico-flat.el
+++ b/extensions/vertico-flat.el
@@ -110,10 +110,6 @@
       (push (plist-get vertico-flat-format :ellipsis) result))
     (nreverse result)))
 
-(defun vertico-flat--setup ()
-  "Setup flat keymap."
-  (use-local-map (make-composed-keymap vertico-flat-map (current-local-map))))
-
 ;;;###autoload
 (define-minor-mode vertico-flat-mode
   "Flat, horizontal display for Vertico."
@@ -126,13 +122,15 @@
     ;; Shrink current minibuffer window
     (when-let (win (active-minibuffer-window))
       (window-resize win (- (window-pixel-height win)) nil nil 'pixelwise))
+    (unless (eq (cadr vertico-map) vertico-flat-map)
+      (setcdr vertico-map (cons vertico-flat-map (cdr vertico-map))))
     (advice-add #'vertico--arrange-candidates :override 
#'vertico-flat--arrange-candidates)
-    (advice-add #'vertico--display-candidates :override 
#'vertico-flat--display)
-    (advice-add #'vertico--setup :after #'vertico-flat--setup))
+    (advice-add #'vertico--display-candidates :override 
#'vertico-flat--display))
    (t
+    (when (eq (cadr vertico-map) vertico-flat-map)
+      (setcdr vertico-map (cddr vertico-map)))
     (advice-remove #'vertico--arrange-candidates 
#'vertico-flat--arrange-candidates)
-    (advice-remove #'vertico--display-candidates #'vertico-flat--display)
-    (advice-remove #'vertico--setup #'vertico-flat--setup))))
+    (advice-remove #'vertico--display-candidates #'vertico-flat--display))))
 
 (provide 'vertico-flat)
 ;;; vertico-flat.el ends here
diff --git a/extensions/vertico-grid.el b/extensions/vertico-grid.el
index 2b4e1bd087..eff9e76831 100644
--- a/extensions/vertico-grid.el
+++ b/extensions/vertico-grid.el
@@ -140,10 +140,6 @@ When scrolling beyond this limit, candidates may be 
truncated."
     (vertico--goto (+ (* x vertico-count) (mod y vertico-count)
                       (* (/ y vertico-count) page)))))
 
-(defun vertico-grid--setup ()
-  "Setup grid keymap."
-  (use-local-map (make-composed-keymap vertico-grid-map (current-local-map))))
-
 ;;;###autoload
 (define-minor-mode vertico-grid-mode
   "Grid display for Vertico."
@@ -156,11 +152,13 @@ When scrolling beyond this limit, candidates may be 
truncated."
     ;; Shrink current minibuffer window
     (when-let (win (active-minibuffer-window))
       (window-resize win (- (window-pixel-height win)) nil nil 'pixelwise))
-    (advice-add #'vertico--arrange-candidates :override 
#'vertico-grid--arrange-candidates)
-    (advice-add #'vertico--setup :after #'vertico-grid--setup))
+    (unless (eq (cadr vertico-map) vertico-grid-map)
+      (setcdr vertico-map (cons vertico-grid-map (cdr vertico-map))))
+    (advice-add #'vertico--arrange-candidates :override 
#'vertico-grid--arrange-candidates))
    (t
-    (advice-remove #'vertico--arrange-candidates 
#'vertico-grid--arrange-candidates)
-    (advice-remove #'vertico--setup #'vertico-grid--setup))))
+    (when (eq (cadr vertico-map) vertico-grid-map)
+      (setcdr vertico-map (cddr vertico-map)))
+    (advice-remove #'vertico--arrange-candidates 
#'vertico-grid--arrange-candidates))))
 
 ;; Emacs 28: Do not show Vertico commands in M-X
 (dolist (sym '(vertico-grid-left vertico-grid-right))
diff --git a/extensions/vertico-reverse.el b/extensions/vertico-reverse.el
index a2ece379cf..74cb1e9da7 100644
--- a/extensions/vertico-reverse.el
+++ b/extensions/vertico-reverse.el
@@ -59,21 +59,19 @@
     (overlay-put vertico--candidates-ov 'before-string string))
   (vertico--resize-window (length lines)))
 
-(defun vertico-reverse--setup ()
-  "Setup reverse keymap."
-  (use-local-map (make-composed-keymap vertico-reverse-map 
(current-local-map))))
-
 ;;;###autoload
 (define-minor-mode vertico-reverse-mode
   "Reverse the Vertico display."
   :global t :group 'vertico
   (cond
    (vertico-reverse-mode
-    (advice-add #'vertico--display-candidates :override 
#'vertico-reverse--display)
-    (advice-add #'vertico--setup :after #'vertico-reverse--setup))
+    (unless (eq (cadr vertico-map) vertico-reverse-map)
+      (setcdr vertico-map (cons vertico-reverse-map (cdr vertico-map))))
+    (advice-add #'vertico--display-candidates :override 
#'vertico-reverse--display))
    (t
-    (advice-remove #'vertico--display-candidates #'vertico-reverse--display)
-    (advice-remove #'vertico--setup #'vertico-reverse--setup))))
+    (when (eq (cadr vertico-map) vertico-reverse-map)
+      (setcdr vertico-map (cddr vertico-map)))
+    (advice-remove #'vertico--display-candidates #'vertico-reverse--display))))
 
 (provide 'vertico-reverse)
 ;;; vertico-reverse.el ends here



reply via email to

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