Add new up-down option for minibuffer-visible-completions
* lisp/emacs-lisp/crm.el (completing-read-multiple): Call 'minibuffer-visible-completions--maybe-compose-map'. * lisp/minibuffer.el (completion-in-region-mode): Call 'minibuffer-visible-completions--maybe-compose-map'. (minibuffer-visible-completions): Add new value 'up-down' (bug#80024). (minibuffer-visible-completions-up-down-map): Add. (minibuffer-visible-completions--maybe-compose-map): Add helper function. (completing-read-default): Call 'minibuffer-visible-completions--maybe-compose-map'. * lisp/simple.el (completion-setup-function): Check 'minibuffer-visible-completions' is t, not just non-nil.
This commit is contained in:
parent
1e6d8e6750
commit
72cd956564
3 changed files with 21 additions and 17 deletions
|
|
@ -254,11 +254,7 @@ with empty strings removed."
|
|||
(let* ((map (if require-match
|
||||
crm-local-must-match-map
|
||||
crm-local-completion-map))
|
||||
(map (if minibuffer-visible-completions
|
||||
(make-composed-keymap
|
||||
(list minibuffer-visible-completions-map
|
||||
map))
|
||||
map))
|
||||
(map (minibuffer-visible-completions--maybe-compose-map map))
|
||||
(buffer (current-buffer))
|
||||
input)
|
||||
(minibuffer-with-setup-hook
|
||||
|
|
|
|||
|
|
@ -3181,11 +3181,7 @@ Also respects the obsolete wrapper hook `completion-in-region-functions'.
|
|||
(setq-local minibuffer-completion-auto-choose nil)
|
||||
(add-hook 'post-command-hook #'completion-in-region--postch)
|
||||
(let* ((keymap completion-in-region-mode-map)
|
||||
(keymap (if minibuffer-visible-completions
|
||||
(make-composed-keymap
|
||||
(list minibuffer-visible-completions-map
|
||||
keymap))
|
||||
keymap)))
|
||||
(keymap (minibuffer-visible-completions--maybe-compose-map keymap)))
|
||||
(push `(completion-in-region-mode . ,keymap)
|
||||
minor-mode-overriding-map-alist))))
|
||||
|
||||
|
|
@ -3458,7 +3454,9 @@ the highlighted completion candidate.
|
|||
If the *Completions* buffer is not displayed on the screen, or this
|
||||
variable is nil, the arrow keys move point in the minibuffer as usual,
|
||||
and `RET' accepts the input typed into the minibuffer."
|
||||
:type 'boolean
|
||||
:type '(choice (const :tag "Disable completions navigation" nil)
|
||||
(const :tag "Enable up/down/left/right" t)
|
||||
(const :tag "Enable only up/down" up-down))
|
||||
:version "30.1")
|
||||
|
||||
(defvar minibuffer-visible-completions--always-bind nil
|
||||
|
|
@ -3503,6 +3501,20 @@ displaying the *Completions* buffer exists."
|
|||
"<up>" (minibuffer-visible-completions--bind #'minibuffer-previous-line-completion)
|
||||
"<down>" (minibuffer-visible-completions--bind #'minibuffer-next-line-completion)
|
||||
"C-g" (minibuffer-visible-completions--bind #'minibuffer-hide-completions))
|
||||
|
||||
(defvar-keymap minibuffer-visible-completions-up-down-map
|
||||
:doc "Local keymap for minibuffer input with visible completions, only for up/down."
|
||||
"<up>" (minibuffer-visible-completions--bind #'minibuffer-previous-completion)
|
||||
"<down>" (minibuffer-visible-completions--bind #'minibuffer-next-completion))
|
||||
|
||||
(defun minibuffer-visible-completions--maybe-compose-map (map)
|
||||
(cond
|
||||
((eq minibuffer-visible-completions 'up-down)
|
||||
(make-composed-keymap (list minibuffer-visible-completions-up-down-map map)))
|
||||
((eq minibuffer-visible-completions t)
|
||||
(make-composed-keymap (list minibuffer-visible-completions-map map)))
|
||||
(t map)))
|
||||
|
||||
|
||||
;;; Completion tables.
|
||||
|
||||
|
|
@ -5158,11 +5170,7 @@ See `completing-read' for the meaning of the arguments."
|
|||
;; in minibuffer-local-filename-completion-map can
|
||||
;; override bindings in base-keymap.
|
||||
base-keymap)))
|
||||
(keymap (if minibuffer-visible-completions
|
||||
(make-composed-keymap
|
||||
(list minibuffer-visible-completions-map
|
||||
keymap))
|
||||
keymap))
|
||||
(keymap (minibuffer-visible-completions--maybe-compose-map keymap))
|
||||
(buffer (current-buffer))
|
||||
(c-i-c completion-ignore-case)
|
||||
(result
|
||||
|
|
|
|||
|
|
@ -10730,7 +10730,7 @@ Called from `temp-buffer-show-hook'."
|
|||
(if (display-mouse-p)
|
||||
"Click or type \\[minibuffer-choose-completion] on a completion to select it.\n"
|
||||
"Type \\[minibuffer-choose-completion] on a completion to select it.\n"))
|
||||
(if minibuffer-visible-completions
|
||||
(if (eq minibuffer-visible-completions t)
|
||||
(substitute-command-keys
|
||||
"Type \\[minibuffer-next-completion], \\[minibuffer-previous-completion], \
|
||||
\\[minibuffer-next-line-completion], \\[minibuffer-previous-line-completion] \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue