[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vertico a1b0219840: Improved multiform toggling, add ve
From: |
ELPA Syncer |
Subject: |
[elpa] externals/vertico a1b0219840: Improved multiform toggling, add vertico-multiform-vertical (Fix #183) |
Date: |
Sun, 13 Feb 2022 11:58:05 -0500 (EST) |
branch: externals/vertico
commit a1b02198404e6fd47a26ab4afa2bfca0dafd4b88
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Improved multiform toggling, add vertico-multiform-vertical (Fix #183)
The toggler will remember the latest display mode and toggle between the
latest
mode and the mode corresponding to the command.
(define-key vertico-map "\M-V" #'vertico-multiform-vertical)
(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)
(define-key vertico-map "\M-U" #'vertico-multiform-unobtrusive)
---
README.org | 11 +++++++++++
extensions/vertico-multiform.el | 23 +++++++++++++++++------
2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/README.org b/README.org
index 7545c52d67..c7aef1b263 100644
--- a/README.org
+++ b/README.org
@@ -298,6 +298,17 @@ problem!
(consult-grep buffer)))
#+end_src
+Temporary toggling between the different display modes is possible. Bind the
+following commands:
+
+#+begin_src emacs-lisp
+ (define-key vertico-map "\M-V" #'vertico-multiform-vertical)
+ (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)
+ (define-key vertico-map "\M-U" #'vertico-multiform-unobtrusive)
+#+end_src
+
You can use your own functions or even lambdas to configure the completion
behavior per command or per completion category. The function must have the
calling convention of a mode, i.e., it takes a single argument, which is either
diff --git a/extensions/vertico-multiform.el b/extensions/vertico-multiform.el
index 6334cd5611..1e86d17d72 100644
--- a/extensions/vertico-multiform.el
+++ b/extensions/vertico-multiform.el
@@ -49,6 +49,7 @@
;; Temporary toggling between the different display modes is
;; possible. Bind the following commands:
;;
+;; (define-key vertico-map "\M-V" #'vertico-multiform-vertical)
;; (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)
@@ -186,13 +187,23 @@ ARG can be nil, t, -1, 1 or toggle."
(setcar vertico-multiform--stack (remove mode modes))
(push not-mode (car vertico-multiform--stack))))))
-(defun vertico-multiform--display-toggle (mode)
- "Toggle display MODE temporarily in minibuffer."
- (let ((arg (not (and (boundp mode) (symbol-value mode)))))
+(defvar-local vertico-multiform--display-last nil)
+
+(defun vertico-multiform-vertical (&optional mode)
+ "Toggle to display MODE temporarily in minibuffer.
+MODE defaults to the vertical display."
+ (interactive)
+ (let (last)
(dolist (m '(vertico-unobtrusive-mode vertico-flat-mode
vertico-grid-mode vertico-reverse-mode))
- (vertico-multiform--temporary-mode m -1))
- (when arg (vertico-multiform--temporary-mode mode 1))))
+ (when (and (boundp m) (symbol-value m))
+ (setq last m)
+ (vertico-multiform--temporary-mode m -1)))
+ (when (eq last mode)
+ (setq mode vertico-multiform--display-last))
+ (when mode
+ (vertico-multiform--temporary-mode mode 1))
+ (setq vertico-multiform--display-last last)))
(defmacro vertico-multiform--define-display-toggle (name)
"Define toggle for display mode NAME."
@@ -201,7 +212,7 @@ ARG can be nil, t, -1, 1 or toggle."
(defun ,sym ()
,(format "Toggle the %s display." name)
(interactive)
- (vertico-multiform--display-toggle ',(intern (format
"vertico-%s-mode" name))))
+ (vertico-multiform-vertical ',(intern (format "vertico-%s-mode"
name))))
(put ',sym 'completion-predicate #'vertico--command-p))))
(vertico-multiform--define-display-toggle grid)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/vertico a1b0219840: Improved multiform toggling, add vertico-multiform-vertical (Fix #183),
ELPA Syncer <=