]> git.eshelyaron.com Git - emacs.git/commitdiff
completions-max-height new custom variable.
authorJimmy Aguilar Mena <spacibba@aol.com>
Tue, 8 Mar 2022 11:46:56 +0000 (12:46 +0100)
committerJimmy Aguilar Mena <spacibba@aol.com>
Thu, 10 Mar 2022 13:37:40 +0000 (14:37 +0100)
doc/emacs/mini.texi
etc/NEWS
lisp/minibuffer.el

index 5d351dd10b6588f6868f285dc16349069a753d13..eb2bfce136adba3a901d6511d82a2ac260b51501 100644 (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
index 3d325133861bfa56d9a16cbd9b234b470afd2424..5a0d6c8fdbd63305422e57ccb27777806ea23eea 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
 
 +++
index c6a803cbc44bb995414802d1f2b0a0e1c0e928ec..cd0c274765f580af8a3588e8b1e92221a7ff1a1e 100644 (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