grizzl / fiplr

[DEPRECATED] An Emacs Fuzzy Find in Project Package
187 stars 14 forks source link

Fuzzy matching is incorrect #12

Open emaxerrno opened 11 years ago

emaxerrno commented 11 years ago

I have a medium size repo of about 37K files in java. (i bet you can replicate using the jenkins source code)

I have a package and file like this

/foo/bar/FooExtraBar.java /random/FooBar.java

When i try to find a file i enter

foobar.java

Since the package has a large number of files, the actual file foobar.java doesn't show up in the results :(

However, all of the files under /foo/bar show up. This can probably be ignored if I can only match on file name and not on path. I couldn't find the setting.

I even tried using regex chars like ^ and $ for begining and end trying to match foobar.java with no luck.

Thanks!

d11wtq commented 11 years ago

Yeah this is going to be fixed soon. I'm matching letters from left-to-right and doing a string length and a proximity score, so the first foo/bar in your string is being seen as a good match. I'm flying Australia -> UK this weekend and planning to fix this during that flight, to keep myself busy ;)

The fix is:

  1. Prefer matching as far to the right as possible.
  2. Prefer matches where the proximity of the letters is closest, in the case of ambiguous match reasoning.

Definitely getting fixed anyway. I'll also be adding highlighting so you can see exactly what it matched on.

emaxerrno commented 11 years ago

Excellent thank you!!

Sent from my phone. Please excuse any typos.

On Jul 11, 2013, at 6:18 PM, d11wtq notifications@github.com wrote:

Yeah this is going to be fixed soon. I'm matching letters from left-to-right and doing a string length and a proximity score, so the first foo/bar in your string is being seen as a good match. I'm flying Australia -> UK this weekend and planning to fix this during that flight, to keep myself busy ;)

The fix is:

  1. Prefer matching as far to the right as possible.
  2. Prefer matches where the proximity of the letters is closest, in the case of ambiguous match reasoning.

Definitely getting fixed anyway. I'll also be adding highlighting so you can see exactly what it matched on.

— Reply to this email directly or view it on GitHubhttps://github.com/d11wtq/fiplr/issues/12#issuecomment-20846764 .

werkshy commented 10 years ago

This isn't just a problem for huge Java repos. Even smallish Rails projects suffer from this due to repetition of domain terms inside filenames

If I search for 'product.rb' I would hope to have 'app/models/product.rb' as the first choice, but instead I get a lot of other files with 'product' in the name and there's no way to narrow down on the file I want. I would love a fix for this too.