Eclipse: exclure des packages spécifiques lors de la saisie semi-automatique d'un nom de classe

100

Lorsque vous complétez automatiquement un nom de classe dans Eclipse, par exemple si vous tapez:

ListITab

Un menu contextuel apparaît, vous proposant des noms de classe correspondants à compléter (que vous pouvez sélectionner avec la souris ou en utilisant les touches fléchées:

Dans cet exemple, je veux presque certainement java.util.ListIteratoret je ne veux presque jamais com.sun.xml.internal.bind.v2.runtime.reflect.ListIterator(ou quoi que ce soit d'autre de ce package).

Cette classe particulière apparaîtra fréquemment dans la liste (chaque fois que je déclare a ListIterator). Je voudrais pouvoir exclure des packages des recherches de saisie semi-automatique, de sorte que cela java.util.ListIteratorsoit complété automatiquement sans avoir besoin d'un menu contextuel.

Est-ce possible?

finnw
la source
1
Oh, ce serait génial si vous pouviez simplement sélectionner celui que vous n'aimez pas et appuyez sur Supprimer comme dans certains autres programmes. Mais non ...
Thorbjørn Ravn Andersen
2
Je viens de terminer ma réponse pour répondre à la java.awt.Listquestion que vous mentionnez dans les commentaires.
VonC

Réponses:

144
  Window->Preferences->Java->Appearance->Type Filters

Vous devriez pouvoir y spécifier les packages que vous ne souhaitez pas voir.

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

Voir les trucs et astuces Java

Pour empêcher certains types d'apparaître dans Content Assist, utilisez la fonction de filtre de type configurée sur la Java > Appearance > Type Filterspage des préférences.
Les types correspondant à l'un de ces modèles de filtre n'apparaîtront pas dans la boîte de dialogue Ouvrir un type et ne seront pas disponibles pour l'assistance au contenu, la correction rapide et l'organisation des importations.
Ces modèles de filtre n'affectent pas les vues Explorateur de packages et Hiérarchie.


finnw (l'OP) ajoute dans les commentaires:

Maintenant, comment ajouter une seule classe à cette liste? Je ne suis pas intéressé par java.awt.List mais je veux parfois java.awt.Window ou java.awt.Dimension. -

Le "filtre de type" est en fait basé sur la correspondance de modèle de classe , c'est-à-dire si vous ajoutez:

 java.awt.List

cette classe disparaîtra des propositions d'assistance de contenu.
Si vous savez que toutes les java.awt.Lxxxclasses ne présentent aucun intérêt, vous pouvez ajouter

 java.awt.L*

Toutes les autres classes de java.awtseraient toujours là pour l'assistance de contenu.
Avec une éclipse récente (j'ai actuellement une éclipse 3.6Mx, mais cela devrait également fonctionner pour 3.5.x), vous n'êtes pas limité au modèle de package uniquement dans le filtre de type.

VonC
la source
4
Il est également sensible à la casse, c'est pourquoi lorsque j'ai essayé "java.awt.list" cela n'a pas fonctionné.
finlandais
6
C'est dommage que vous ne puissiez pas simplement prioriser certaines classes au lieu de les supprimer de la liste ...
Andy
3
Merci pour la réponse - j'ai également dû chercher sur Google pour cela, même si j'en avais ajouté quelques-uns auparavant. C'est vraiment dommage que quelqu'un pense vraiment que cela appartient à Apparence au lieu de, oh, Java-> Editeur-> ContentAssist ...
RJStanford
51
Window->Preferences->Java->Appearance->Type Filters
Jonathan Feinberg
la source