unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Miles Bader'" <miles@gnu.org>, <emacs-devel@gnu.org>
Subject: RE: File name completion glitch
Date: Sun, 15 Mar 2009 11:15:25 -0700	[thread overview]
Message-ID: <004b01c9a59a$04bfe000$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <87hc1vb0tb.fsf@catnip.gol.com>

> >     The new partial completion style completion in Emacs 23 
> >     needs to have a few more glitches worked out before the release.
> >
> > I think it should be disabled by default, because it is painfully
> > slow in some cases.
> 
> Can you give concrete examples?  Is it just when explicitly 
> used (i.e., completing something which wouldn't give any results
> with old-style completion), or does it slow down "normal"
> completion too?
> 
> [I've never noticed any obvious slowdown, and it's 
> _enormously_ useful...]

I don't care so much about the slowness. It makes sense that if Emacs keeps
trying different matching methods to find a possible completion, that will be
slower in some cases. But that's not the real problem here, IMO.

The real problem is the assumption that Emacs *should, by default*, try
additional matching methods when prefix completion fails, to see if it can't
match your input with something, somehow. 

This denies the value of `[No match]' in letting you know that there is no
completion with the prefix you typed. That simple, understandable test is no
longer the test users can rely on. Their conceptual model of completion must now
be more complex.

I think this should be disabled by default because it prevents users from
getting useful, immediate feedback of a non-match (in the usual, prefix sense).
Instead, it searches for a match in additional ways, and can ultimately come up
with a "match" that can be confusing, unexpected, and not helpful.

Immediate feedback that you hit the wrong key lets you correct the typo on the
spot. Instead, giving you some inappropriate completion (according to unexpected
new matching criteria) makes you wonder "WTF?!" and then go out of your way to
remove the completed text and retype what you meant. See the URLs below for real
examples of such inappropriate completions.

I don't deny that some people will find the extra, non-vanilla match-trying
useful ("_enormously_" or otherwise). But let users who do find it so customize
option `completion-styles' to add non-vanilla matching methods - no big deal.
The new feature makes it simple for them to do that; why impose it on everyone
by default?

Leave the default behavior as it's always been. But advertise as loudly as you
like the possibility of customizing `completion-styles' to add additional
matching methods (e.g. partial-completion) at will. That's a reasonable way to
introduce something like this.

After time, if it turns out that most *users* prefer to change the behavior to
include additional matching methods, we can change the default then. At that
point, based on experience and user input, we can discuss what the best default
mix of completion styles might be (including styles yet to be defined, no
doubt).

IOW, let people try the new behavior as an option, and then let the users help
us decide, based on their experience - just as we have done traditionally.

Several users, including RMS, have reported the new, confusing behavior as a
bug, to which Stefan has declared "not a bug; it's a feature". Yes, it was
intentional. Yes, it (trying to match using multiple completion styles) is a
good feature to add. No, it's not a good idea to make it the *default* behavior.

See:
http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1800#80

http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1757

http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1512

AFAICT, in all of that discussion, no argument beyond that's-what-I-want was
ever given for why we must change the default. Good arguments (with supporting
examples) were given against changing the default.

And this significant change was made, AFAICT, without any proposal or discussion
in emacs-devel. How many of you were even aware of it? People seem to become
aware of it individually, by falling upon gotchas. (It is hardly documented.)

Richard said, "Please undo this change, poll the users, and redo the change if
they generally want it."  

I say, please undo this change, and wait to see what the users do and think
after some time.

What's the hurry? It doesn't take long for a good feature to find its way into
common practice, especially nowadays. If after a while everyone is asking to add
additional completion styles to the *default* behavior, we can do that then, and
we can pick the best mix and order, based on that input and experience.






  reply	other threads:[~2009-03-15 18:15 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-14 16:07 File name completion glitch Chong Yidong
2009-03-14 17:03 ` Chong Yidong
2009-03-15  1:59   ` Stefan Monnier
2009-03-15  2:41     ` Chong Yidong
2009-03-15  9:00 ` Richard M Stallman
2009-03-15  9:19   ` Miles Bader
2009-03-15 18:15     ` Drew Adams [this message]
2009-03-16  1:00       ` Chong Yidong
2009-03-16  3:32         ` Drew Adams
2009-03-16 11:57       ` David Kastrup
2009-03-16  0:41     ` Stefan Monnier
2009-03-16 16:56     ` Richard M Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='004b01c9a59a$04bfe000$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    --cc=miles@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).