GNU bug report logs - #12796
Optimize `ido-completing-read' for larger lists with flex matching enabled

Previous Next

Package: emacs;

Reported by: Dmitry Gutov <dgutov <at> yandex.ru>

Date: Sun, 4 Nov 2012 06:02:01 UTC

Severity: normal

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dgutov <at> yandex.ru>
Subject: bug#12796: closed (Re: bug#12796: Optimize `ido-completing-read'
 for larger lists with flex matching enabled)
Date: Sat, 10 Nov 2012 17:53:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#12796: Optimize `ido-completing-read' for larger lists with flex matching enabled

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 12796 <at> debbugs.gnu.org.

-- 
12796: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12796
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: 12796-done <at> debbugs.gnu.org
Cc: Kim Storm <storm <at> cua.dk>, Stefan Monnier <monnier <at> iro.umontreal.ca>,
	Leo <sdl.web <at> gmail.com>
Subject: Re: bug#12796: Optimize `ido-completing-read' for larger lists with
	flex matching enabled
Date: Sat, 10 Nov 2012 21:52:31 +0400
With speed-up patches installed on both branches, I consider this fixed.

[Message part 3 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: bug-gnu-emacs <at> gnu.org
Subject: Optimize `ido-completing-read' for larger lists with flex matching
	enabled
Date: Sun, 04 Nov 2012 09:58:35 +0400
[Message part 4 (text/plain, inline)]
Tags: patch

Currently ido re-filters the full candidates list after every change in 
the minibuffer. With long candidates list and with flex matching enabled 
(like it's often the case with certain third-party packages, namely smex 
and ido-ubiquitous), as soon as ido switches to using flex matching, 
each update takes a noticeable fraction of a second. Even if there's no 
matches anymore for the current input.

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.

This patch adds a simple cache that keeps track of the current matching 
settings (prefix, regexp, or no), and checks the input against a 
previously entered string. If the latter is a prefix of the former (and 
regexp matching is disabled), then we can use the matches from the 
former input as the candidates list for the current one.

Any objections?
[ido-speed.diff (text/plain, attachment)]

This bug report was last modified 4 years and 312 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.