Subject: bug#1512: 23.0.60; SPC, TAB during completion do not do word completion, prefix completion

From: "Drew Adams" <[email-masked]>
Date: Sat, 13 Dec 2008 08:00:22 -0800

> I probably spent more time on word-completion than on pretty much any
> other part of minibuffer.el, so believe me I've thought about what is
> word completion and my understanding of it is embedded in the current
> behavior (which is very similar to partial-completion-mode's 
> behavior).

Yes, I was sure you were aware of what "word completion" means (has always meant
in Emacs).

> I really honestly do not understand how you want to interpret
> the above "definition" of word completion in the context of
> partial completion.

Why "in the context of partial completion"? Emacs word completion is not (has
never been) partial completion. That's the point. Emacs word completion (SPC),
just like Emacs prefix completion (TAB) has always had, as part of its behavior,
the display of a [No match] message when it cannot complete a word at a time or
cannot complete a prefix. That's part of what word and prefix completion mean. 

The same is true for any particular kind of completion: failure to complete
using that completion method informs you with a message such as [No match]. 

It is that which you have removed from the default behavior, by automatically
chaining, beyond failure of word and prefix completion, to use partial
completion. Reporting a failed word or prefix completion is (has always been)
part of the behavior of SPC and TAB. The negative feedback that there are no
such completions (word or prefix) is helpful. It lets you correct typos on the
fly, as indicated by the examples I gave.

The bug report was about both word (SPC) and prefix (TAB) completion, with
examples for each. In your mails you consistently ignore TAB and dwell only on
word completion. I've addressed both in each of my mails, but you keep dropping
TAB. This is not about "interpreting" what "word completion" might mean for
Emacs 23. This is about restoring what you call `basic' completion as the
default behavior - that is, restoring the pre-Emacs 23 behavior as the default.
That means restore it for TAB as well as for SPC.

> There are many different ways to interpret it, probably.

I'm not looking for new interpretations of "word completion" or its Info
description. I'm not looking for new ways that the existing text might mean
something different "in the context of partial completion". You take word
completion, mix in partial completion, and then ask me about the Info text that
described (and still describes) only word completion - asking what it means when
partial completion gets mixed in. It was never intended to mean anything "in the
context of partial completion".

I'm asking you to take partial completion out of the default behavior - to
restore the traditional behavior by default. That should be perfectly clear from
each of the mails I've sent on this. Pretending to not understand that strains
credulity.

> But none of them seem to match the behavior you seem to want in
> your example.

My examples are nothing exotic, and the behavior I "seem to want" as the default
behavior for Emacs 23 is simply the behavior of Emacs (20, 21, 22). No automatic
fallback to partial completion when basic completion fails. I've made that
clear; please stop pretending that you don't hear or understand that. The
request is simple: restore the default behavior to the behavior Emacs has always
had.

> So unless you explain to me what behavior you generally expect
> (at least with more examples),

The behavior I expect as the default behavior is the behavior that everyone
expects: the behavior that Emacs has always had: fail with [No match] when there
is no word completion (for SPC) or no prefix completion (for TAB). Do not
automatically try, after such completion failure, to use partial completion.

> the only answer I can give you is "your word completion seem to
> dislike partial completion,

"Your word completion"? I don't have my own word completion. _Emacs_ word
completion is not partial completion. Never has been. You've taken something
that was optional and mixed it in with classic (`basic') behavior, changing the
default completion behavior to basic-or-if-that-fails-then-partial. If you claim
that that is still somehow "word completion", then it is "your word completion".
It is certainly not the word completion that Emacs has always known, and which
the manual (still) describes.

> so you'll need to disable partial completion", which your
> report said you did not consider as a good answer.

It's not about my own use. I don't often use vanilla Emacs completion anyway,
for my own use (I use Icicles). I'm concerned about vanilla Emacs (-Q), not my
use of Emacs. I'm concerned that you have changed the default completion
behavior radically, taking something that was optional for a long time (most
likely with relatively few users) and making it the default.

Just please remove `partial-completion' from the defcustom for
`completion-styles'. Normal Emacs behavior will then be restored as the default
behavior, and any users who truly want the basic-or-if-that-fails-then-partial
completion behavior can customize the option value to (basic partial-completion)
to get what they want.