Eclipse: Exclude specific packages when autocompleting a class name

finnw picture finnw · Jan 15, 2010 · Viewed 14.6k times · Source

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:

In this example, I almost certainly want java.util.ListIterator and I almost never want com.sun.xml.internal.bind.v2.runtime.reflect.ListIterator (or anything else from that package).

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

Is this possible?

Answer

VonC picture VonC · Jan 15, 2010
  Window->Preferences->Java->Appearance->Type Filters

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

http://help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.user/tips/images/type-filter.png

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.