Subject: Re: bug#60527: 30.0.50; Typing SPC in a minibuffer with completion

From: Kévin Le Gouguec <[email-masked]>
Date: Wed, 04 Jan 2023 08:09:03 +0100

Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <[email-masked]> writes:

> Yet another option would be to let callers of `completing-read` indicate
> that it's likely the users will sometimes want to type a SPC character
> for this specific minibuffer input (i.e. `completing-read` would then
> use a map like `minibuffer-local-filename-completion-map`).

Thinking out loud, not sure how reasonable that idea is: something akin
to the *-completion-ignore-case options?  E.g. *-completion-literal-spc?
(Or *-completion-literal-keys)

> Currently packages which want to use `completing-read` to let the users
> enter a string that will often contain spaces are reduced the either
> telling their users "Add this `define-key` thingy in your .emacs because
> the defaults suck" or having to use a `minibuffer-with-setup-hook`
> workaround that forcefully rebinds SPC during that minibuffer session,
> which may be the wrong thing to do if SPC was binding to something else
> than `minibuffer-complete-word`.

With the suggestion above, packages could define their own
*-completion-whatever-its-named option, that may default to letting SPC
self-insert; like ebdb defining its own ebdb-completion-ignore-case that
defaults to t.

Users could then set those options, and possibly set a bare defvar à la
completion-ignore-case for those who feel very strongly that SPC has no
business completing.

(Full disclosure: I find SPC completion somewhat useful, especially for
Lisp symbols, because pounding on SPC is much, much easier than reaching
for hyphens on AZERTY)