views:

163

answers:

2

When auto-completing a class name in Eclipse, e.g. if you type:

ListITab

A pop-up menu appears offering you matching class names for completion (which you can select with the mouse or by using the arrow keys:

alt text

In this example I almost certainly want java.util.ListIterator and the probability that com.sun.xml.internal.bind.v2.runtime.reflect.ListIterator (or anything else from that package) is what I want is about one in a million.

I know this particular class will appear in the list frequently (every time I declare a ListIterator) so I would like to be able to exclude the other packages from autocomplete searches, so that java.util.ListIterator is auto-completed without the need for a pop-up menu.

Is this possible?

+1  A: 

Here is the answer http://stackoverflow.com/questions/1991208/type-ahead-autocompletion-in-eclipse

Sands
It's not the answer, but it's related and interesting. Thanks.
finnw
+12  A: 
  Window->Preferences->Java->Appearance->Type Filters

You should be able to specify there the packages you do not want to see.

alt text

See Java Tips and Tricks

To exclude certain types from appearing in content assist, use the type filter feature configured on the Java > Appearance > Type Filters preference page.
Types matching one of these filter patterns will not appear in the Open Type dialog and will not be available to content assist, quick fix and organize imports.
These filter patterns do not affect the Package Explorer and Hierarchy views.


finnw (the OP) adds in the comments:

Now how do you add a single class to this list? I'm not interested in java.awt.List but occasionally I want java.awt.Window or java.awt.Dimension. –

"Type filter" is actually based on class pattern matching, meaning if you add:

 java.awt.List

that class will disappear from the content assist propositions.
If you know all java.awt.Lxxx classes are of no interest, you could add

 java.awt.L*

All other classes from java.awt would still be there for the content assist.
With a recent eclipse (I have right now a eclipse 3.6Mx, but this should work for 3.5.x as well), you are not limited to package pattern only in the Type Filter.

VonC
+1: I've almost the same list, expect of `javax` which I actually need :)
BalusC
That's exactly what I was looking for. Thanks.
finnw
It's also case sensitive, which is why when I tried "java.awt.list" it didn't work.
finnw