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

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

[elpa] externals/vertico-posframe 9f2ba881a7 1/2: Add vertico-posframe-v


From: ELPA Syncer
Subject: [elpa] externals/vertico-posframe 9f2ba881a7 1/2: Add vertico-posframe-vertico-multiform-key, fix #42
Date: Fri, 2 Feb 2024 03:59:13 -0500 (EST)

branch: externals/vertico-posframe
commit 9f2ba881a76f7c4181d7083db2e92a402e93f52c
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add vertico-posframe-vertico-multiform-key, fix #42
---
 vertico-posframe.el | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/vertico-posframe.el b/vertico-posframe.el
index 0db6a3d7a3..3396fe987d 100644
--- a/vertico-posframe.el
+++ b/vertico-posframe.el
@@ -145,6 +145,10 @@ a rule can be a regexp or a function.
 minibuffer will not be hided by minibuffer-cover."
   :type '(repeat (choice string function)))
 
+(defcustom vertico-posframe-vertico-multiform-key "M-p"
+  "The vertico-posframe keybinding used in vertico-multiform."
+  :type '(choice (const nil) string))
+
 (defface vertico-posframe
   '((t (:inherit default)))
   "Face used by the vertico-posframe."
@@ -202,18 +206,23 @@ vertico-posframe works with vertico multiform toggle."
   (posframe-hide vertico-posframe--buffer))
 
 ;; Support vertico-multiform
-(let* ((name 'posframe)
-       (key (kbd "M-p"))
-       (mode (intern (format "vertico-%s-mode" name)))
-       (toggle (intern (format "vertico-multiform-%s" name))))
-  (defalias toggle
-    (lambda ()
-      (interactive)
-      (vertico-multiform-vertical mode))
-    (format "Toggle the %s display." name))
-  (push mode vertico-multiform--display-modes)
-  (put toggle 'completion-predicate #'vertico--command-p)
-  (define-key vertico-multiform-map key #'vertico-multiform-posframe))
+(defun vertico-posframe-vertico-multiform-setup ()
+  (let* ((name 'posframe)
+         (mode (intern (format "vertico-%s-mode" name)))
+         (toggle (intern (format "vertico-multiform-%s" name))))
+    (defalias toggle
+      (lambda ()
+        (interactive)
+        (vertico-multiform-vertical mode))
+      (format "Toggle the %s display." name))
+    (push mode vertico-multiform--display-modes)
+    (put toggle 'completion-predicate #'vertico--command-p)
+    (when vertico-posframe-vertico-multiform-key
+      (define-key vertico-multiform-map
+                  (kbd vertico-posframe-vertico-multiform-key)
+                  #'vertico-multiform-posframe))))
+
+(vertico-posframe-vertico-multiform-setup)
 
 (cl-defmethod vertico--setup
   :after (&context ((vertico-posframe-mode-workable-p) (eql t)))



reply via email to

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