Allow searching interactively over completions in `M-x'

* lisp/simple.el (read-extended-command): Allow doing interactive
searches over the completions (bug#12490).  This restores the
behaviour from Emacs 23 that was lost in Emacs 24.
This commit is contained in:
Juri Linkov 2020-08-19 15:52:08 +02:00 committed by Lars Ingebrigtsen
parent bdc5d38c7c
commit 33a72465b5
2 changed files with 15 additions and 3 deletions

View file

@ -819,6 +819,12 @@ window after starting). This variable defaults to nil.
** Miscellaneous
---
*** 'C-s' in 'M-x' now searches over completions again.
In Emacs 23, typing 'M-x' ('read-extended-command') and then 'C-s' (to
do an interactive search) would search over possible completions.
This was lost in Emacs 24, but is now back again.
---
*** 'M-x report-emacs-bug' will no longer include "Recent messages" section.
These were taken from the "*Messages*" buffer, and may inadvertently

View file

@ -1847,9 +1847,15 @@ to get different commands to edit and resubmit."
(lambda ()
;; Get a command name at point in the original buffer
;; to propose it after M-n.
(with-current-buffer (window-buffer (minibuffer-selected-window))
(and (commandp (function-called-at-point))
(format "%S" (function-called-at-point)))))))
(let ((def (with-current-buffer
(window-buffer (minibuffer-selected-window))
(and (commandp (function-called-at-point))
(format "%S" (function-called-at-point)))))
(all (sort (minibuffer-default-add-completions)
(lambda (a b) (string< a b)))))
(if def
(cons def (delete def all))
all)))))
;; Read a string, completing from and restricting to the set of
;; all defined commands. Don't provide any initial input.
;; Save the command read on the extended-command history list.