diff options
author | Jimmy Aguilar Mena <spacibba@aol.com> | 2022-03-08 12:46:56 +0100 |
---|---|---|
committer | Jimmy Aguilar Mena <spacibba@aol.com> | 2022-03-10 14:37:40 +0100 |
commit | 09b548fd5e7860f363a3d5bf6f975f577b9cd43e (patch) | |
tree | bc740c830223dfc3a8f3772163f42e7a361ca88d | |
parent | 6b3c665d2a8070791dff6520652c00c7b44d64bd (diff) | |
download | emacs-09b548fd5e7860f363a3d5bf6f975f577b9cd43e.tar.gz |
completions-max-height new custom variable.
-rw-r--r-- | doc/emacs/mini.texi | 7 | ||||
-rw-r--r-- | etc/NEWS | 5 | ||||
-rw-r--r-- | lisp/minibuffer.el | 17 |
3 files changed, 25 insertions, 4 deletions
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 5d351dd10b6..eb2bfce136a 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi @@ -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 @@ -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 +++ diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index c6a803cbc44..cd0c274765f 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -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 |