[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vertico e9f3841811: vertico-grid/flat/reverse: Add/impr
From: |
ELPA Syncer |
Subject: |
[elpa] externals/vertico e9f3841811: vertico-grid/flat/reverse: Add/improve keymap setup |
Date: |
Thu, 30 Dec 2021 02:57:53 -0500 (EST) |
branch: externals/vertico
commit e9f384181113883aba53115564431ec28e729a61
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
vertico-grid/flat/reverse: Add/improve keymap setup
See feedback by @gcv in https://github.com/minad/vertico/issues/149
---
extensions/vertico-flat.el | 22 +++++++++++++++++++---
extensions/vertico-grid.el | 26 +++++++++++++++++++-------
extensions/vertico-reverse.el | 6 +++---
3 files changed, 41 insertions(+), 13 deletions(-)
diff --git a/extensions/vertico-flat.el b/extensions/vertico-flat.el
index a16a785c5b..d1125c05c4 100644
--- a/extensions/vertico-flat.el
+++ b/extensions/vertico-flat.el
@@ -28,7 +28,10 @@
;; This package is a Vertico extension providing a horizontal display.
;;
-;; The mode can be bound to a key to toggle to the horizontal display.
+;; The mode can be enabled pre command or completion category via
+;; `vertico-multiform-mode'. Alternatively the mode can be bound to a
+;; key to toggle to the horizontal display:
+;;
;; (define-key vertico-map "\M-F" #'vertico-flat-mode)
;;; Code:
@@ -50,6 +53,13 @@
:type 'plist
:group 'vertico)
+(defvar vertico-flat-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [remap left-char] #'vertico-previous)
+ (define-key map [remap right-char] #'vertico-next)
+ map)
+ "Additional keymap activated in flat mode.")
+
(defun vertico-flat--display (candidates)
"Display CANDIDATES horizontally."
(setq-local truncate-lines nil)
@@ -100,6 +110,10 @@
(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."
@@ -113,10 +127,12 @@
(when-let (win (active-minibuffer-window))
(window-resize win (- (window-pixel-height win)) nil nil 'pixelwise))
(advice-add #'vertico--arrange-candidates :override
#'vertico-flat--arrange-candidates)
- (advice-add #'vertico--display-candidates :override
#'vertico-flat--display))
+ (advice-add #'vertico--display-candidates :override
#'vertico-flat--display)
+ (advice-add #'vertico--setup :after #'vertico-flat--setup))
(t
(advice-remove #'vertico--arrange-candidates
#'vertico-flat--arrange-candidates)
- (advice-remove #'vertico--display-candidates #'vertico-flat--display))))
+ (advice-remove #'vertico--display-candidates #'vertico-flat--display)
+ (advice-remove #'vertico--setup #'vertico-flat--setup))))
(provide 'vertico-flat)
;;; vertico-flat.el ends here
diff --git a/extensions/vertico-grid.el b/extensions/vertico-grid.el
index ac26463107..2b4e1bd087 100644
--- a/extensions/vertico-grid.el
+++ b/extensions/vertico-grid.el
@@ -28,7 +28,10 @@
;; This package is a Vertico extension providing a grid display.
;;
-;; The mode can be bound to a key to toggle to the grid display.
+;; The mode can be enabled pre command or completion category via
+;; `vertico-multiform-mode'. Alternatively the mode can be bound to a
+;; key to toggle to the grid display:
+;;
;; (define-key vertico-map "\M-G" #'vertico-grid-mode)
;;; Code:
@@ -59,6 +62,13 @@ When scrolling beyond this limit, candidates may be
truncated."
:type 'integer
:group 'vertico)
+(defvar vertico-grid-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [remap left-char] #'vertico-grid-left)
+ (define-key map [remap right-char] #'vertico-grid-right)
+ map)
+ "Additional keymap activated in grid mode.")
+
(defvar-local vertico-grid--columns 1
"Current number of grid columns.")
@@ -130,6 +140,10 @@ 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."
@@ -142,13 +156,11 @@ 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))
- (define-key vertico-map [remap left-char] #'vertico-grid-left)
- (define-key vertico-map [remap right-char] #'vertico-grid-right)
- (advice-add #'vertico--arrange-candidates :override
#'vertico-grid--arrange-candidates))
+ (advice-add #'vertico--arrange-candidates :override
#'vertico-grid--arrange-candidates)
+ (advice-add #'vertico--setup :after #'vertico-grid--setup))
(t
- (assq-delete-all 'left-char (assq 'remap vertico-map))
- (assq-delete-all 'right-char (assq 'remap vertico-map))
- (advice-remove #'vertico--arrange-candidates
#'vertico-grid--arrange-candidates))))
+ (advice-remove #'vertico--arrange-candidates
#'vertico-grid--arrange-candidates)
+ (advice-remove #'vertico--setup #'vertico-grid--setup))))
;; 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 79e6c54548..a2ece379cf 100644
--- a/extensions/vertico-reverse.el
+++ b/extensions/vertico-reverse.el
@@ -33,7 +33,7 @@
(require 'vertico)
(defvar vertico-reverse-map
- (let ((map (make-composed-keymap nil vertico-map)))
+ (let ((map (make-sparse-keymap)))
(define-key map [remap beginning-of-buffer] #'vertico-last)
(define-key map [remap minibuffer-beginning-of-buffer] #'vertico-last)
(define-key map [remap end-of-buffer] #'vertico-first)
@@ -46,7 +46,7 @@
(define-key map [remap backward-paragraph] #'vertico-next-group)
(define-key map [remap forward-paragraph] #'vertico-previous-group)
map)
- "Vertico keymap adapted to reversed candidate order.")
+ "Additional keymap activated in reverse mode.")
(defun vertico-reverse--display (lines)
"Display LINES in reverse."
@@ -61,7 +61,7 @@
(defun vertico-reverse--setup ()
"Setup reverse keymap."
- (use-local-map vertico-reverse-map))
+ (use-local-map (make-composed-keymap vertico-reverse-map
(current-local-map))))
;;;###autoload
(define-minor-mode vertico-reverse-mode
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/vertico e9f3841811: vertico-grid/flat/reverse: Add/improve keymap setup,
ELPA Syncer <=