Subject: Re: bug#47215: 28.0.50; Let M-x switch between M-x and M-X

From: Juri Linkov <[email-masked]>
Date: Fri, 24 Jun 2022 21:55:07 +0300

>> I've discovered that the initial-input argument of `completing-read` can
>> be written as (STRING . POSITION).  The attached patch makes use of it
>> and shows a simple implementation of my original wish.
>>
>> However, the patch creates code duplication.  Also, I don't know how it
>> copes with recursive editing: maybe it's not a good idea to rebind M-x
>> when `enable-recursive-minibuffers' is t.  Finally, the docstring says
>> initial-input is deprecated.
>
> I've now reworked your patch (a lot 😀) to avoid the duplication and
> moved the cycling command to 'M-X' to avoid disruption.  But perhaps a
> different key might also make sense...

Are you sure nobody might want to see a list of minibuffer commands?
I don't use this, but can imagine someone typing `M-x M-X TAB' to list
all minibuffer commands:

  22 possible completions:
  abort-minibuffers
  abort-recursive-edit (C-])
  context-menu-open (<menu>)
  exit-minibuffer
  file-cache-minibuffer-complete
  isearch-backward (C-r)
  isearch-forward (C-s)
  minibuffer-beginning-of-buffer
  minibuffer-choose-completion
  minibuffer-complete
  minibuffer-complete-and-exit
  minibuffer-complete-word
  minibuffer-completion-help
  minibuffer-next-completion
  minibuffer-previous-completion
  next-history-element
  next-line-or-history-element
  next-matching-history-element
  previous-history-element
  previous-line-or-history-element
  previous-matching-history-element
  switch-to-completions

Or maybe there exists another way to do the same?