Auto-Complete sort logic... how to make it "dumber"?

I am doing things such as cmd+N to find and open a class by typing its name, and find the excessively clever logic in how results are sorted a source of aggravation.

Specifically, the drop-down box makes it easier to select classes whose name match my input less strongly than other candidates

For instance, if I have classes named FooBar34 and Foo34, but when I hit cmd+N and type "Foo3", it lists Foo34 and FooBar34, but has FooBar34 highlighted.  How can I get IDEA to always prefer those candidates that actually match my input by the simplest test -- that their initial sequence matches my input exactly?

tone

6 comments

Unfortunately currently there's no way to tweak that logic.

Have you chosen FooBar34 recently? Does it reside in the same module you are, Foo34 being in another module? Is FooBar34 somehow related to the file you have open in the editor right now (e.g. imported, a superclass)?

0

Sadly, I see the issue is worse than I described:  typing Foo34 and hitting enter will actually get me FooBar34.

I've not looked into which package the file I am presently editing is in.  I can say that I seldom work with FooBar34 and so any recency test is either not being applied or it is being applied backward.

I'd prefer to eventually see this as the top-most entry always being the highlighted one.  I'm assuming when I say that that it is not simply the case I am citing where the one I typed is first in the list by accident.

While I can see some merit in the CamelCase logic you have created, I definitely think it is a secondary means of use that few users will think to apply, and which perhaps none would demand that it affect sorting/highlighting as the present behavior has it.

Thanks for reading me through, however.

tone

0

I've reproduced this and created a bug request which you may watch: http://youtrack.jetbrains.com/issue/IDEA-100518
Thanks for the feedback!

0

Well, I was a bit fast with reproducing. Could you please perform a simle test?
Go somewhere, invoke Goto Class, enter Foo23, observe FooBar23 selected, choose Foo23 explicitly. Then return back and repeat this 4 more times. Re-entering Foo23 might be not necessary if it's already there. Is the preselection changed to Foo23 after that?

0

I think I see that repeated use did make it prefer the Foo23 class.  I'm a little confused why my use might have given FooBar23 preferred standing (it was a class I seldom had to refer to).  I'd rather see the app try to be more passive in this manner than it is presently, heavily favoring those match candidates whose initial sequences match the input exactly over any other inferences.

tone

0

It's not that simple. If you entered Foo23 and actually chose Foobar23, it's quite likely that the next time you enter Foo23 you'll also intend to open Foobar23 (maybe you just always forget that Foo23 exists). Or not?

0

Please sign in to leave a comment.