Subject: bug#1800: 23.0.60; Changed meaning of * in buffer name completion

From: "Drew Adams" <[email-masked]>
Date: Wed, 7 Jan 2009 07:56:15 -0800

> >> So implementing a message "[No match, type TAB again for * as 
> >> a wildcard]" will keep the traditional behavior just as you want.
> >
> > No, there are plenty of other annoyances/surprises for 
> > users in this new behavior, besides the `*' buffer one.
> > I gave two good examples in the report for
> > bug #1512, neither involving wildcards or necessarily buffers.
> >
> > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1512
> 
> Asking for another TAB before doing partial completion will solve
> both your problems.

That is not the case today. The inappropriate completions are presented
immediately - exactly like RMS's case (but without wildcards). Are you referring
to your suggestion that the implementation not try partial completion until the
user confirms with a second TAB?

That suggestion seemed to depend on the presence of wildcards (e.g. the
message). Are you saying now that the implementation should _always_ require a
second TAB before performing partial completion, when basic completion fails?

If so, wouldn't that conflict with the desire by someone who really wants this
new feature - someone who wants p.c. to happen automatically and immediately
whenever traditional completion fails? Or would you add an option to indicate
whether such confirmation is required? Required in all cases or just some (e.g.
wildcards)?

Rather than try, now, in a discussion with only two or three people, to redesign
this new feature on the fly to counter some of the annoyances already
encountered, why don't we just keep it as it is for now, but not make partial
completion part of the _default_ behavior? 

Let people try it as something optional. They will likely have good suggestions,
if need be, about how to counter, inhibit, or prevent some of the annoyances -
when and how best to do that. They will have the benefit of experience, and
experience with lots of different use cases (and potential
annoyances/surprises).

Honestly, I think that, _especially_ if you want this new feature to be
accepted, it makes more sense to keep as an option for now, and let people
discover its value (via some doc - still missing) and spread that news by word
of mouth, than it does to impose it as the new default behavior. Doing the
latter is likely to bring more resistance and bug reports - we've already seen a
few. Doing the former is likely to attract people to it as something new and
cool.

Imagine if Kim had decided, as soon as he wrote Ido, that it should become the
new default behavior for Emacs (had he alone been in a position to decide). Just
add this new feature as an option. Time will tell whether it should become the
default behavior.