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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 04 Jan 2023 19:16:10 +0200

> Date: Wed, 4 Jan 2023 19:00:44 +0200
> Cc: [email-masked], [email-masked]
> From: Dmitry Gutov <[email-masked]>
> 
> On 04/01/2023 16:47, Eli Zaretskii wrote:
> > I didn't say I'm against any change in this behavior.  Stefan proposed
> > at least two alternatives that produce basically the same user-facing
> > behavior when SPC is supposed to be interpreted verbatim, so they come
> > very close to the alternative that you like better, but still stop
> > short of breaking someone's muscle memory.
> 
> The first alternative provides sometimes the same, and sometimes 
> different behavior. In particular, when there are valid completions, 
> "SPC" would still perform completion -- something that I don't think 
> many users expect. Especially novices.
> 
> The second alternative is even more involved, requiring 
> 'completing-read' callers to decide in advance whether the users will 
> want to have SPC insert SPC or perform completion. That's still odd and 
> seems like crossing the proper abstraction layers. The caller might not 
> know the collection contains spaces. And this approach can break 
> established muscle memory just the same, as soon as enough callers start 
> to make this choice.

I understand that just rebinding SPC is much easier.  But we are
supposed to consider other factors, not just the ease of
implementation.  And I'm not afraid of code that is somewhat inelegant
and even breaks abstractions, if we provide better, friendlier UI
which breaks less habits.  Many Emacs's abstractions leak from many
holes anyway.