]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't bind `M-X' when doing general completion
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 26 Jul 2022 13:21:28 +0000 (15:21 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 26 Jul 2022 13:21:28 +0000 (15:21 +0200)
* lisp/minibuffer.el (minibuffer-local-must-match-map): Remove the
M-X binding here, because it's nonsensical outside
read-extended-command (bug#56741).

* lisp/simple.el (read-extended-command-mode-map)
(read-extended-command-mode): New minor mode to bind `M-X' in
read-extended-command.
(read-extended-command-1): Use it.

lisp/minibuffer.el
lisp/simple.el

index d139e094eb25917686ea774d5b6a53044dff41c6..bdf6d852a958a18c6c56fc4ef7af2773c2942f24 100644 (file)
@@ -2760,7 +2760,6 @@ The completion method is determined by `completion-at-point-functions'."
 (defvar-keymap minibuffer-local-must-match-map
   :doc "Local keymap for minibuffer input with completion, for exact match."
   :parent minibuffer-local-completion-map
-  "M-X" #'execute-extended-command-cycle
   "RET" #'minibuffer-complete-and-exit
   "C-j" #'minibuffer-complete-and-exit)
 
index 5443d961e13f4052b9dbce96884c1f991cccecab..e4fdb6107642e49d1754a4ff6f5939ece0224de6 100644 (file)
@@ -2229,9 +2229,20 @@ See `extended-command-versions'."
   "Alist of prompts and what the extended command predicate should be.
 This is used by the \\<minibuffer-local-must-match-map>\\[execute-extended-command-cycle] command when reading an extended command.")
 
+(defvar-keymap read-extended-command-mode-map
+  :doc "Local keymap added to the current map when reading an extended command."
+  "M-X" #'execute-extended-command-cycle)
+
+(define-minor-mode read-extended-command-mode
+  "Minor mode when doing completion in `read-extended-command'.")
+
 (defun read-extended-command (&optional prompt)
   "Read command name to invoke in `execute-extended-command'.
-This function uses the `read-extended-command-predicate' user option."
+This function uses the `read-extended-command-predicate' user
+option.
+
+When reading the command name, the `read-extended-command-mode'
+minor mode is activated."
   (let ((default-predicate read-extended-command-predicate)
         (read-extended-command-predicate read-extended-command-predicate)
         already-typed ret)
@@ -2270,6 +2281,8 @@ This function uses the `read-extended-command-predicate' user option."
                       (setq execute-extended-command--last-typed
                             (minibuffer-contents)))
                     nil 'local)
+          ;; This is so that we define the `M-X' toggling command.
+          (read-extended-command-mode)
           (setq-local minibuffer-default-add-function
                      (lambda ()
                        ;; Get a command name at point in the original buffer