]> git.eshelyaron.com Git - emacs.git/commitdiff
Update minibuffer-show-help based on minibuffer-visible-completions
authorSpencer Baugh <sbaugh@janestreet.com>
Wed, 24 Jan 2024 16:10:40 +0000 (11:10 -0500)
committerEshel Yaron <me@eshelyaron.com>
Thu, 25 Jan 2024 18:06:08 +0000 (19:06 +0100)
minibuffer-visible-completions makes some more convenient bindings
available, but the help shown by minibuffer-show-help wasn't
suggesting them.  Now it is.

* lisp/simple.el (completion-setup-function): Change help text when
minibuffer-visible-completions is non-nil. (bug#68689)

(cherry picked from commit b5d36efa5777e4cc6db1067d58224d676cedbdd3)

lisp/simple.el

index 32431082f8e5a2dc9f700b05443e7cd415ce978c..521c6b111681d5f96f799d4f117b95b3d55661e0 100644 (file)
@@ -10454,13 +10454,27 @@ Called from `temp-buffer-show-hook'."
       ;; Maybe insert help string.
       (when completion-show-help
        (goto-char (point-min))
-        (insert (substitute-command-keys
-                (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")))
-        (insert (substitute-command-keys
-                "Type \\[minibuffer-next-completion] or \\[minibuffer-previous-completion] \
-to move point between completions.\n\n"))))))
+        (if minibuffer-visible-completions
+            (let ((helps
+                   (with-current-buffer (window-buffer (active-minibuffer-window))
+                     (list
+                      (substitute-command-keys
+                      (if (display-mouse-p)
+                          "Click or type \\[minibuffer-choose-completion-or-exit] on a completion to select it.\n"
+                         "Type \\[minibuffer-choose-completion-or-exit] on a completion to select it.\n"))
+                      (substitute-command-keys
+                      "Type \\[minibuffer-next-completion], \\[minibuffer-previous-completion], \
+\\[minibuffer-next-line-completion], \\[minibuffer-previous-line-completion] \
+to move point between completions.\n\n")))))
+              (dolist (help helps)
+                (insert help)))
+          (insert (substitute-command-keys
+                  (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")))
+          (insert (substitute-command-keys
+                  "Type \\[minibuffer-next-completion] or \\[minibuffer-previous-completion] \
+to move point between completions.\n\n")))))))
 
 (add-hook 'completion-setup-hook #'completion-setup-function)