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

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

[elpa] externals/vertico d79c864c2c 2/2: vertico-multiform: Add vertico-


From: ELPA Syncer
Subject: [elpa] externals/vertico d79c864c2c 2/2: vertico-multiform: Add vertico-multiform-reverse
Date: Sun, 2 Jan 2022 17:57:53 -0500 (EST)

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

    vertico-multiform: Add vertico-multiform-reverse
    
    Ensure that vertico-reverse-mode resets the overlay properly.
---
 extensions/vertico-multiform.el | 10 ++++++++--
 extensions/vertico-reverse.el   |  7 ++++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/extensions/vertico-multiform.el b/extensions/vertico-multiform.el
index d7ec6fb131..ca4c688e6f 100644
--- a/extensions/vertico-multiform.el
+++ b/extensions/vertico-multiform.el
@@ -49,6 +49,7 @@
 ;;
 ;; (define-key vertico-map "\M-G" #'vertico-multiform-grid)
 ;; (define-key vertico-map "\M-F" #'vertico-multiform-flat)
+;; (define-key vertico-map "\M-R" #'vertico-multiform-reverse)
 ;;
 ;;; Code:
 
@@ -160,19 +161,24 @@ APP is the original function call."
   "Toggle MODE temporarily in minibuffer."
   (if (and (boundp mode) (symbol-value mode))
       (vertico-multiform--temporary-disable mode)
+    (dolist (m '(vertico-flat-mode vertico-grid-mode vertico-reverse-mode))
+      (vertico-multiform--temporary-disable m))
     (vertico-multiform--temporary-enable mode)))
 
 (defun vertico-multiform-grid ()
   "Toggle the grid display."
   (interactive)
-  (vertico-multiform--temporary-disable 'vertico-flat-mode)
   (vertico-multiform--temporary-toggle 'vertico-grid-mode))
 
 (defun vertico-multiform-flat ()
   "Toggle the flat display."
   (interactive)
-  (vertico-multiform--temporary-disable 'vertico-grid-mode)
   (vertico-multiform--temporary-toggle 'vertico-flat-mode))
 
+(defun vertico-multiform-reverse ()
+  "Toggle the reverse display."
+  (interactive)
+  (vertico-multiform--temporary-toggle 'vertico-reverse-mode))
+
 (provide 'vertico-multiform)
 ;;; vertico-multiform.el ends here
diff --git a/extensions/vertico-reverse.el b/extensions/vertico-reverse.el
index 0715d01e12..f59f796e1c 100644
--- a/extensions/vertico-reverse.el
+++ b/extensions/vertico-reverse.el
@@ -56,13 +56,18 @@
     (setq lines (nconc (make-list (max 0 (- vertico-count (length lines))) 
"\n") lines)))
   (let ((string (apply #'concat lines)))
     (add-face-text-property 0 (length string) 'default 'append string)
-    (overlay-put vertico--candidates-ov 'before-string string))
+    (overlay-put vertico--candidates-ov 'before-string string)
+    (overlay-put vertico--candidates-ov 'after-string nil))
   (vertico--resize-window (length lines)))
 
 ;;;###autoload
 (define-minor-mode vertico-reverse-mode
   "Reverse the Vertico display."
   :global t :group 'vertico
+  ;; Reset overlays
+  (dolist (buf (buffer-list))
+    (when-let (ov (buffer-local-value 'vertico--candidates-ov buf))
+      (overlay-put vertico--candidates-ov 'before-string nil)))
   (cond
    (vertico-reverse-mode
     (unless (eq (cadr vertico-map) vertico-reverse-map)



reply via email to

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