Subject: bug#23377: 25.0.93; Completion is extremely slow for insert-char

From: [email-masked] (N. Jackson)
Date: Tue, 26 Apr 2016 10:27:18 -0300

The ability to see the characters as well as their names is very nice,
and I think it would be a shame to remove it from Emacs 25.1. Would it
really be so risky to add functionality to allow the user to toggle it
on and off?

Also, if the feature (of displaying the character glyphs in the list) is
enabled by default, would it be possible to print a message such as
"Preparing completions ..." (or something), when the list is long or
when the operation has already taken more than five seconds (or so)?
This would prevent user from feeling that Emacs has hung.

At 09:34 +0300 on Tuesday 2016-04-26, Eli Zaretskii wrote:
>
> It surprises me that this is perceived as "natural", for an Emacs
> user.

I don't think anyone would argue that this is the only natural way to
interact with completion. If one knows exactly what they are looking
for, the shorter the completion list is, the better. But "show me
everything!" is also a valid choice that's useful sometimes, and it too
is natural for greedy humans.

> Do they also use this when completing on file names or buffer names? I
> don't think so.

Actually yes. Sort of. When I'm completing for a file name and I really
have no recollection of what I named the file but I know what directory
(or even subtree) it's in, I'll complete to the directory and then
browse through the list in dired. And with buffers, I as often do `C-x
C-b' to see the whole list, as I do `C-x b'.

> So why would we assume they do so in this case?

No need to assume. I told you that I do so in my original posting of the
bug report.

I totally admit that this is not efficient, and as I start to use it
more often I'll start to remember the names of the characters I'm
looking for and will be able to use insert-char without browsing through
the list.

However, I think it's a bit unreasonable of you Eli, to expect other
Emacs users to be as efficient as you are!

So far I've used insert-char maybe six times since I learned of it
perhaps two years ago. And typically I find I have no idea of the name
of the character I'm looking for. (Is it ring, or loop, or circle, or
something else?) But, because I've found it before, I know where it is
in the complete completion list -- I know approximately how far to
scroll the buffer and I recognise the block of characters that are its
neighbours.

N.