completions-max-height new custom variable.

This commit is contained in:
Jimmy Aguilar Mena 2022-03-08 12:46:56 +01:00
parent 6b3c665d2a
commit 09b548fd5e
3 changed files with 25 additions and 4 deletions

View file

@ -658,6 +658,13 @@ changed by changing the @code{completions-format} user option. If
@code{vertical}, sort the completions vertically in columns instead,
and if @code{one-column}, just use a single column.
@vindex completions-max-height
When @code{completions-max-height} is non-@code{nil} it limits the
size of the completions window. It is specified in lines and include
mode, header line and a bottom divider, if any. For a more complex
control of the Completion window display properties you can use
@code{display-buffer-alist} (@pxref{Buffer Display Action Alists}).
@node Minibuffer History
@section Minibuffer History
@cindex minibuffer history

View file

@ -555,7 +555,6 @@ the "*Completions*" buffer. Available styles are no sorting,
alphabetical (the default), or a custom sort function.
*** New values for the 'completion-auto-select' option.
There are two new values to control the way *Completions* behave after
a <tab> if completion is not unique. 'always updates or shows
the *Completions* buffer after any attempt to complete. 'visual is
@ -563,6 +562,10 @@ like 'always, but only update the completions if they are already
visible. The default value t always hide the completion buffer after
some completion is made.
*** New user option 'completions-max-height'.
This option limits the height of the "*Completions*" buffer.
** Isearch and Replace
+++

View file

@ -2205,6 +2205,19 @@ variables.")
(equal pre-msg (and exit-fun (current-message))))
(completion--message message))))
(defcustom completions-max-height nil
"Maximum height for *Completions* buffer."
:type 'natnum
:version "29.1")
(defun completions--fit-window-to-buffer (&optional win &rest _)
"Resize completions."
(if temp-buffer-resize-mode
(let ((temp-buffer-max-height (or completions-max-height
temp-buffer-max-height)))
(resize-temp-buffer-window win))
(fit-window-to-buffer win completions-max-height)))
(defun minibuffer-completion-help (&optional start end)
"Display a list of possible completions of the current minibuffer contents."
(interactive)
@ -2268,9 +2281,7 @@ variables.")
,(if (eq (selected-window) (minibuffer-window))
'display-buffer-at-bottom
'display-buffer-below-selected))
,(if temp-buffer-resize-mode
'(window-height . resize-temp-buffer-window)
'(window-height . fit-window-to-buffer))
(window-height . completions--fit-window-to-buffer)
,(when temp-buffer-resize-mode
'(preserve-size . (nil . t)))
(body-function