|
From: | Stefan Monnier |
Subject: | bug#12796: Optimize `ido-completing-read' for larger lists with flex matching enabled |
Date: | Wed, 07 Nov 2012 21:05:54 -0500 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
> - (setq re (mapconcat #'regexp-quote (split-string ido-text "") ".*")) > + (setq re (mapconcat #'regexp-quote (split-string ido-text "" t) > ".*")) Sounds like a good change. Tho: (mapconcat (lambda (c) (regexp-quote (string c))) ido-text ".*") would work as well. You could try to speed up the regexp matching some more by eliminating backtracking (which should mostly eliminate a few pathological cases): (let ((first t)) (mapconcat (lambda (c) (if first (progn (setq first nil) (regexp-quote (string c))) (concat "[^" (string c) "]*" (regexp-quote (string c))))) ido-text "")) > I'm still going to see if I can make while-no-input work here, though. Yes, that'd be very welcome. Stefan
[Prev in Thread] | Current Thread | [Next in Thread] |