From 3319dcc33f643d93e9cc899fc9942d80aa900e72 Mon Sep 17 00:00:00 2001 From: Jimmy Aguilar Mena Date: Thu, 19 Nov 2020 07:22:05 +0100 Subject: [PATCH] New command minibuffer-choose-completion This command uses *Completions* candidates only when highlighted. --- lisp/completions-highlight.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lisp/completions-highlight.el b/lisp/completions-highlight.el index 9ce83e65189..e19a4d8aeb5 100644 --- a/lisp/completions-highlight.el +++ b/lisp/completions-highlight.el @@ -153,6 +153,15 @@ is executed in another window, but cursor stays in minibuffer." (interactive "p") (with-minibuffer-scroll-window (previous-line n))) +;; Maybe this may be done with an advise? +(defun minibuffer-choose-completion () + "Execute `choose-completion' in *Completions*." + (interactive) + (if (and (completions-highlight-completions-visible-p) + (overlay-buffer completions-highlight-overlay)) + (with-minibuffer-scroll-window (choose-completion)) + (minibuffer-complete-and-exit))) + ;; General commands (defun completions-highlight--set-suffix (choice) "Set CHOICE suffix to current completion. @@ -192,6 +201,8 @@ suffix." (define-key map [left] #'minibuffer-previous-completion) (define-key map [down] #'minibuffer-next-line-completion) (define-key map [up] #'minibuffer-previous-line-completion) + (define-key map [remap minibuffer-complete-and-exit] + #'minibuffer-choose-completion) map) "Keymap used in minibuffer while *Completions* is active.") -- 2.39.5