lewang/flx

Match results unstable when typing exact matches

Closed this issue · 4 comments

fdr commented

This is a niggle I see when using projectile:

Examples: a project with multiple __init__.py files, or a project with patterns that result in many file names being equivalent (e.g. a bunch of {foo,bar,baz}/creator.rb) or common prefixes (helloworld.rb, helloworld_spec.rb)

While typing, I've noticed flx will, given two seemingly identically good matches, flap between them with every keystroke, even though it matches each of the problematic candidates seemingly equally.

It's hard to read match results with things flapping around, and in the asynchronous feedback loop of hands-eyes-mind it's easy to lose track of a match that flickers to the foremost, only to drop away after one more keypress already in progress.

That sounds like a problem. :)

Can you give a more minimal repro using ido-completing-read and exact key
inputs?

e.g. (ido-completing-read ": " '("a" "ab" "abc"))

On Mon, Aug 18, 2014 at 2:16 PM, Daniel Farina notifications@github.com
wrote:

This is a niggle I see when using projectile:

Examples: a project with multiple init.py files, or a project with
patterns that result in many file names being equivalent (e.g. a bunch of
{foo,bar,baz}/creator.rb) or common prefixes (helloworld.rb,
helloworld_spec.rb)

While typing, I've noticed flx will, given two seemingly identically good
matches, flap between them with every keystroke, even though it matches
each of the problematic candidates seemingly equally.

It's hard to read match results with things flapping around, and in the
asynchronous feedback loop of hands-eyes-mind it's easy to lose track of a
match that flickers to the foremost, only to drop away after one more
keypress already in progress.


Reply to this email directly or view it on GitHub
#60.

Le

fdr commented

I can repro with:

(ido-completing-read ": " '("hello-apple" "hello-orange"))

If one slowly types the letters "hello" my matches alternate between "apple" and "orange" variants.

Thanks for looking!

fdr commented

Oh, another thing I realized this made me do:

It causes smex flapping for M-x flx autocompletion between revert-buffer and reverse-region so I've done the wrong one a few times. Figured I'd document another funny use case. This is even though I do a lot more/more recent revert-buffer on average, breaking with ido's recency preference.

Ok I can see the issue now, thanks for reporting.