J'ai remarqué que la saisie semi-automatique ne fonctionne pas dans certains fichiers Java dans Eclipse . En outre, les fichiers dans lesquels la saisie semi-automatique ne fonctionne pas affichent un "J" creux comme icône du fichier Java. Les fichiers où l'auto-complétion fonctionne, icon for Java file est un "J" rempli
Je me demande si quelqu'un peut dire ce qui ne va pas tout à fait, pourquoi le changement d'icônes et pourquoi la surlignage automatique et la mise en évidence de la syntaxe est désactivée dans les fichiers avec une icône en forme de "J"?
Merci.
mettre à jour
En gros, je faisais ce que VonC avait suggéré, mais Eclipse n’a pas rafraîchi la raison pour laquelle j’ai pensé que la suggestion de VonC ne fonctionnait pas. Après un rafraîchissement, le problème a été résolu.
Dans l'image suivante, MyClass.Java
a une J
creuse, car il est explicitement exclu des sources à générer:
Pourriez-vous vous rendre dans les propriétés du projet, section "Java Build Path
", onglet "Source
" et voir si un filtre d'exclusion a été défini?
Il est par exemple habituel de définir:
**/Test*.Java
exclure lors de la construction initiale d'une classe de test unitaire (lorsque vous avez un grand ensemble de sources et que vous ne souhaitez pas que les classes de test soient présentées lors de l'achèvement automatique, ou si vous ne souhaitez pas les prendre en compte lors des recherches de source).
Étant donné que cette question est très bien classée sur Google, je vais ajouter une solution pour résoudre le problème général de complétion automatique, et non pour les "creux en J".
Essayez Fenêtre (Windows/Linux) ou Eclipse (OS X) -> Préférences -> Java -> Éditeur -> Assistant de contenu -> Restaurer les paramètres par défaut
également
Assistant de contenu -> Avancé -> Restaurer les paramètres par défaut
certaines réponses (valeurs par défaut de restauration) ci-dessus ne fonctionnent pas pour certaines installations d'ensembles d'ensembles à partir de janvier 2013.
dans ces cas, allez à
Fenêtre -> Préférences -> Java -> Editeur -> Assistant de contenu -> Avancé
et cochez les options Java PROPOSAL.
Ceux avec un J creux ne font pas partie du chemin de génération du projet, ils ne peuvent donc pas participer au processus de construction normal et donc l'auto-complétion ne sera pas activée pour ces fichiers (et autres fonctionnalités de l'éditeur Java!). Vous devez ajouter les dossiers avec les fichiers Java à générer dans le chemin de construction à l'aide de la section "chemin source" des propriétés du projet. Vous pouvez y accéder en cliquant avec le bouton droit de la souris sur un projet dans l’Explorateur de packages/navigateur de projets et en accédant à Propriétés. Voir http://www.informit.com/articles/article.aspx?p=367962 pour plus de détails.
En outre, si les fichiers ne font pas partie d'un projet Java, vous devez créer un projet et y déplacer les fichiers ou les placer dans un projet existant. Encore une fois, assurez-vous que ces fichiers se trouvent dans un répertoire source, comme décrit dans cette section des propriétés du projet.
Je résous le problème en supprimant le fichier si la saisie semi-automatique ne fonctionne pas. Juste avant de copier le code source. Ensuite, j'ai recréé le fichier Java avec le même nom. Collé le code source précédemment copié.
En tant qu'additif à la réponse @VonC, assurez-vous que les fichiers Java font partie du modèle d'inclusion. J'ai eu un cas où un processus de construction créait le projet en n'incluant que les fichiers .js et non les fichiers Java:
Vous pouvez modifier manuellement les inclusions via le bouton Modifier. Dans mon cas, un correctif a été apporté au script de construction pour le rendre permanent.
Assurez-vous d'avoir la bonne structure de répertoires. Je crois que:
J'ai commis une erreur en créant un artefact webapp. Par défaut, il ne crée pas de dossier pour Java, mais pour les ressources. J'y ai mis mes sources par erreur . Regardez - voyez la différence.
Ni la restauration des valeurs par défaut, ni mon chemin de construction (le fichier se trouvait déjà dans le répertoire du paquet w/autres fichiers où l'auto-complétion fonctionnait) ont résolu le problème. Fix pour moi était de fermer le fichier explicitement (clic droit sur le nom du fichier dans l'onglet) et rouvrir. Fait intéressant, le simple redémarrage d'Eclipse n'a pas fonctionné non plus.