bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#12796: Optimize `ido-completing-read' for larger lists with flex mat


From: Dmitry Gutov
Subject: bug#12796: Optimize `ido-completing-read' for larger lists with flex matching enabled
Date: Mon, 05 Nov 2012 09:37:52 +0400
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121026 Thunderbird/16.0.2

On 04.11.2012 21:05, Dmitry Gutov wrote:
On 04.11.2012 17:53, Stefan Monnier wrote:
If I decide to type quickly but make a typo in one of the first
characters,
I often need to wait a few seconds until I can fix the typo or start
anew.

`while-no-input' (which AFAICT is used by ido) is supposed to interrupt
the computation as soon as you type the next input so you don't need
to wait.

Are you saying that while-no-input doesn't work?

I only see `while-no-input' used in one place there: in
`ido-make-merged-file-list', and that function is only used in
`find-file' mode.

So yeah, using it around matching loops in `ido-set-matches-1' might be
another way to optimize, provided the overhead is not too much.

Disregard the "overhead" remark, I misread what the macro does: it's not actually a looping construct.

To try it, I just wrapped in it the "busy" part of `ido-set-matches-1' - and indeed, no more waiting a several seconds after button mashing. It's a bit buggy so far, but that's to be expected.

The caching approach still feels faster in most cases, and is instantaneous in cases when we're editing input and have few or no matches for the current input (if we're backspacing, then only when no matches). It has room for usability improvements, too.

I won't insist, though. I kind of decided to disable flex anyway and just use regexp matching sometimes.

--Dmitry





reply via email to

[Prev in Thread] Current Thread [Next in Thread]