Nouveautés de la version 3.1

Vous trouverez dans ce document les descriptions des modifications les plus intéressantes ou les plus importantes apportées aux outils de développement Java pour la version 3.1 d'Eclipse depuis la version 3.0. Ce document se divise en plusieurs chapitres :

J2SE 5.0


J2SE 5.0

Eclipse 3.1 offre une prise en charge totale des nouvelles fonctionnalités de J2SE 5.0 (également appelé "Tigre"). L'une des conséquences les plus notables de cette prise en charge est que vous êtes susceptible de ne même pas la remarquer : tout ce qui à vos yeux doit fonctionner pour J2SE 1.4 - y compris l'édition, la compilation, le débogage, les correctifs rapides, la propagation, les actions source, la recherche, et autres - fonctionne de manière transparente avec les nouveaux types et la syntaxe de J2SE 5.0.

Pour être en mesure de développer du code compatible avec J2SE 5.0, vous devez disposer d'un environnement d'exécution Java (JRE) de type J2SE 5.0. Si vous lancez Eclipse pour la première fois à l'aide d'un JRE 5.0, il utilisera ce JRE par défaut. Dans le cas contraire, vous devrez utiliser la boîte de dialogue JRE installés pour en enregistrer un avec Eclipse. Vous pouvez ouvrir cette boîte de dialogue via les préférences Java > JRE installés ou en suivant le lien Configurer les paramètres par défaut... de l'assistant Nouveau projet Java.

Assistant Nouveau projet Java


Correctif rapide
pour mettre à jour la compatibilité du JRE et du compilateur avec la version 5.0

Un nouveau correctif rapide vous aide à modifier les paramètres de compatibilité lorsque vous tentez d'entrer des constructions 5.0 dans un projet 1.4. Remarque : un JRE 1.5 est nécessaire. Il peut être ajouté dans la page de préférences 'JRE installés'.

Modification du correctif rapide de compatibilité


Prise en charge des types génériques par les assistants Nouveau type

Les assistants Nouveau type prennent en charge les types génériques de J2SE 5.0 pour différentes zones :
  • La zone Nom peut inclure des déclarations de paramètre de type.
  • La Superclasse et les Interfaces implémentées peuvent inclure des arguments de types génériques.

Image de l'assistant Nouveau type


Création d'énumérations et d'annotations

Les énumérations et les annotations peuvent être créées à l'aide du nouvel assistant Enumération ou Annotation :

Assistant Enumération


Déduction des arguments de type

L'assistant de code insère les arguments de type lors de la réalisation d'un type dans l'éditeur Java. Les arguments de type dont il est impossible de lever l'ambiguïté sont sélectionnés, et la touche Tabulation permet de passer de l'un à l'autre.

Dans cet exemple, chaîne est inséré en tant que premier argument de type, tandis que nombre est proposé comme le second :

Image : un objet 'HashMap' est renvoyé par une méthode déclarant 'Map<String, ? extends Number>' comme type de renvoi.

Pour tester cette fonction, vous devez activer l'option Compléter les noms d'argument de la page de préférences Java > Editeur > Assistant de code.


Déclaration de paramètre de type masquant un autre diagnostic de type

Le compilateur Java peut baliser une déclaration de paramètre de type masquant un autre type.

image d'un éditeur Java avec un paramètre de type masquant un autre avertissement de type


Attribution d'un nouveau nom - Propagation des modifications

La fonction Attribution d'un nouveau nom - Propagation des modifications a été développée afin de gérer les modifications de nom des paramètres de type.

Capture d'écran montrant l'attribution d'un nouveau nom à un paramètre de type dans une classe générique


Déduire les arguments de type générique
propagation des modifications

Dans J2SE 5.0, votre code peut utiliser des éléments génériques pour améliorer la lisibilité et la sécurité du type statique. Propagation des modifications > Déduire les arguments de type générique est une nouvelle fonction de propagation des modifications aidant les clients des bibliothèques de classes génériques telles que le Java Collections Framework à migrer leur code.

Augmenter les clients du conteneur brut - Avant

La propagation des modifications déduit les paramètres de type pour les types génériques, et supprime les transtypages inutiles. Cela fonctionne sur les unités de compilation individuelles ainsi que sur l'ensemble d'un package ou d'un projet Java.

Augmenter les clients du conteneur brut - Après


Correctifs rapides pour les éléments génériques

Pour les types Java non résolus, il vous est dorénavant proposé de créer un nouveau paramètre de type :

Correctif rapide Ajouter un paramètre de type

Vous disposez à présent d'une prise en charge des balises Javadoc pour les paramètres de type. Dans J2SE 5.0, vous renseignez les paramètres de type à l'aide de la balise @param existante mais en plaçant le nom entre accolades.

Correctif rapide Javadoc pour les paramètres de type


Nouveaux filtres de résultats de la recherche pour la recherche de références à des types paramétrés

Lorsque vous recherchez des références à un type paramétré tel que Liste<Nombre entier>, le résultat de la recherche comportera également des références à toutes les occurrences de la liste. La vue Résultats de la recherche propose dorénavant deux filtres supplémentaires pour masquer les correspondances :

  • Filtre Résultats incompatibles : ce filtre masque tous les résultats incompatibles avec les termes de la recherche. Par exemple, lorsque vous recherchez Liste<Nombre entier>, ce filtre masque les résultats correspondant à Liste<Chaîne>, mais pas ceux correspondant à Liste<? développe le Nombre>.
  • Filtre Résultats inexacts : ce filtre masque tous les résultats ne correspondant pas exactement aux termes de la recherche. Pour l'exemple ci-dessus, le filtre masquera également les résultats correspondant à Liste<? développe le Nombre>.

Correctif rapide Ajouter un paramètre de type


Compléter les annotations

Il est possible de compléter un code à l'intérieur d'une annotation de membre ou d'une valeur d'attribut d'annotation.

image de l'Editeur Java complétant un attribut d'annotation


Utilisation du type d'annotation comme diagnostic de super interface

Dans J2SE 5.0, le langage Java permet à une classe d'implémenter un type d'annotation. Cependant, cette approche est déconseillée. Le compilateur Java peut signaler une telle utilisation.

image de l'Editeur Java avec utilisation d'un type d'annotation comme avertissement de super interface


Prise en charge de l'annotation @SuppressWarnings

L'annotation J2SE 5.0 @SuppressWarnings est prise en charge. Les noms reconnus des avertissements sont les suivants : "all", "boxing", "dep-ann", "deprecation", "incomplete-switch", "hiding", "finally", "static-access", "nls", "serial", "synthetic-access", "unqualified-field-access", "unchecked", "unused" and "warningToken". Dans l'exemple ci-dessous, la première zone est balisée avec l'annotation @SuppressWarnings("deprecation"), et aucun avertissement 'deprecation' n'est signalé. La deuxième zone n'est pas balisée et un avertissement 'deprecation' est indiqué.

image de l'Editeur Java montrant l'utilisation de l'annotation @SuppressWarnings

Remarque : une option du compilateur permet de vérifier si les annotations @SuppressWarnings sont actives ou non. Voir la page Java > Compilateur > Erreurs/Avertissements > options J2SE 5.0 > Activer les annotations '@SuppressWarnings'.

Par défaut, les sèmes d'avertissements non traités sont signalés par un avertissement. Cet avertissement peut également être supprimé à l'aide de l'annotation @SuppressWarnings("warningToken").

image de l'Editeur Java montrant l'utilisation de l'annotation 'warningToken'


Correctif rapide
prise en charge de
l'annotation @SuppressWarnings

Les avertissements pouvant être supprimés à l'aide d'une annotation @SuppressWarning proposent un correctif rapide pour effectuer cette opération. L'application du correctif rapide pour l'avertissement local 'unused' ci-dessous

Correctif rapide Supprimer l'avertissement

a le résultat suivant :

Suppression du problème de l'avertissement 'unused' effectuée


Diagnostic Annotation @Override manquante

Le compilateur Java peut signaler une méthode remplaçant une méthode de super classe mais n'ayant pas d'annotation @Override. Les annotations @Override manquantes peuvent être ajoutées à l'aide du correctif rapide.

image de l'Editeur Java avec une méthode dépourvue d'avertissement @Override

Voir la page Java > Compilateur > Erreurs/Avertissements > options J2SE 5.0 > Annotation '@Override manquante.

Diagnostic Annotation @Deprecated manquante

Le compilateur Java reconnaît les annotations @Deprecated, et les traite de la même manière que le commentaire de documentation /** @deprecated */. Il propose une option signalant les constructions déconseillées dépourvues d'une annotation @Deprecated correcte (afin d'encourager l'utilisation des annotations plutôt que celle des balises de commentaire de documentation).

image de l'Editeur Java avec l'avertissement Annotation @Deprecated manquante

Voir les préférences dans Java > Compilateur > Erreurs/Avertissements > options J2SE 5.0 > Annotation '@Deprecated' manquante.

Diagnostic Instruction de commutation enum incomplète

Le compilateur Java peut signaler des instructions de commutation enum incomplètes.

image de l'Editeur Java avec l'avertissement Instruction de commutation enum incomplète

Voir les préférences dans Java > Compilateur > Erreurs/Avertissements > options J2SE 5.0 > Toutes les constantes enum ne sont pas couvertes par 'switch'.

Diagnostic du compilateur pour l'identifiant 'enum'

Le compilateur Java peut trouver et signaler l'endroit où 'enum' est utilisé comme un identifiant. 'enum' est un identifiant légal jusqu'au niveau de source 1.4, mais il est un mot clé réservé dans la source 5.0. L'activation de cet avertissement permet d'aider à anticiper les problèmes de migration de source. Voir la page Java > Compilateur > Conformité JDK > Interdire l'identifiant 'enum'.

Diagnostic optionnel du compilateur pour l'identifiant 'enum'


Correctif rapide
pour créer des constantes enum

Le correctif rapide prend en charge la création de constantes d'énumération. Dans l'exemple ci-dessous, la constante BLUE est absente des couleurs d'énumération

Diagnostic optionnel du compilateur pour l'identifiant 'enum'


Propositions de paramètre
autoboxing

Les paramètres proposés comprennent des propositions auto(un-)boxing :

Capture d'écran montrant les propositions d'autoboxing

Remarque : la préférence Java > Editeur > Assistant de code > Compléter les noms d'arguments au terme de l'exécution doit être activée.


Diagnostic
boxing et unboxing

La fonction d'autoboxing de J2SE 5.0 est puissante mais elle peut entraîner un comportement imprévu, particulièrement lors de la transmission d'arguments. Le compilateur propose un diagnostic optionnel indiquant si l'autoboxing ou l'unboxing automatique est exécuté. Dans l'exemple suivant, on pourrait penser que foo(Integer) va être appelé, mais, comme l'unboxing automatique est effectué, c'est foo(int) qui est appelé.

image de l'Editeur Java avec l'avertissement d'unboxing

Voir les préférences dans Java > Compilateur > Erreurs/Avertissements > options J2SE 5.0 > Conversions boxing/unboxing.

Prise en charge de J2SE 5.0 dans l'Editeur Java

L'Editeur Java procure une coloration syntaxique pour les nouvelles fonctionnalités de langage de J2SE 5.0. Allez dans la page de préférences Java > Editeur > Coloration syntaxique pour modifier les couleurs ou pour activer la coloration sémantique des variables de type, des éléments d'annotation et des expressions ayant subi un (un)boxing automatique :

Capture d'écran montrant la coloration syntaxique des énumérations, des annotations, des éléments d'annotation, des variables de type et des expressions ayant subi un boxing automatique


Modèle de nouvelle boucle 'for'

Le modèle foreach insère une nouvelle boucle 'for' dans le code, en proposant des instances locales itérables sur lesquelles vous pouvez souhaiter itérer :

Capture d'écran montrant un modèle de boucle 'for' insérée


Convertir en 'enhanced for loop'

Un nouvel assistant rapide (Ctrl+1) propose de convertir les boucles 'for' ancienne version des tableaux et des collections en boucles 'for' améliorées (enhanced for loops) de J2SE 5.0 :

Image Exemple de conversion en 'enhanced for loop'

Le correctif rapide simplifie la boucle pour :

Image démontrant le résultat de l'assistant rapide Enhanced for loop


Argument Varargs
nécessitant un transtypage

Le compilateur Java peut signaler des appels de méthode varargs suspects. Contrairement à ce que l'on pourrait penser, un dernier argument nul n'est pas encapsulé en tant que tableau à un élément : l'ajout explicite d'un transtypage permet d'annoncer clairement l'intention du code.

Le diagnostic du compilateur a nécessité un transtypage pour l'argument varargs

Le paramètre de préférence se trouve dans Java > Compilateur > Erreurs/Avertissements > Options J2SE 5.0 > Correspondance de type inexacte pour les arguments varargs.


L'exécution utilise des importations statiques

Dans l'Editeur Java, l'exécution de code est capable de traiter des importations statiques lors de la déduction d'exécutions contextuelles.

image de l'Editeur Java exécutant et trouvant une méthode de l'importation statique Math.*


Groupes d'importations
statiques

Afin d'organiser vos importations statiques, créez des groupes pour ces importations et placez-les là où vous le souhaitez. Vous pouvez définir un groupe 'autres' pour y rassembler toutes les importations ne correspondant à aucun des autres groupes :

Groupe Importations statiques

Il est également possible de créer un groupe 'autres' pour les importations non statiques.


Prise en charge de
package-info.java

Vous bénéficiez à présent d'une prise en charge pour le fichier source spécial package-info.java, ce qui vous permet d'annoter et de documenter les packages. Tous les outils JDT (assistant de code, sélection de code, recherche, structure, hiérarchies de types, etc.) sont disponibles dans cette unité spéciale de compilation.

Les commentaires de documentation à l'intérieur du fichier package-info.java sont traités, et la syntaxe ainsi que les références des balises de commentaires standard sont vérifiées.

image de la vue Packages et de l'Editeur Java sur package-info.java


Module de formatage de code pour les constructions J2SE 5.0

Le module de formatage de code prend en charge toutes les nouvelles constructions de langage J2SE 5.0. Vérifiez comment le module de formatage traite ces constructions dans la page de préférence Java > Style de code > Module de formatage de code :

Image de la page de préférences du module de formatage des espaces vides


Débogage du code source 5.0

Vous pouvez exécuter et déboguer le code source 5.0 avec un JRE 1.5. Les évaluations de débogage Java prennent en charge les constructions J2SE 5.0 telles que les génériques et les boucles 'for' améliorées.

L'appellation des fichiers de classe change pour les types internes locaux

Dans le mode de conformité 5.0, le compilateur Java génère des fichiers de classe suivant la convention de nom spécifiée dans JLS 13.1 (3ème édition) pour les types internes locaux. Par conséquent, dans l'exemple suivant, le fichier généré ne sera pas appelé X$1$A.class, mais simplement X$1A.class.

image du navigateur avec le fichier de classe pour un type interne local


Débogueur Java


Points de contrôle et
points d'arrêt
d'entrée de la méthode

En double-cliquant dans la règle de l'éditeur Java, vous créez des points de contrôle sur les zones et des points d'arrêt d'entrée de la méthode sur les déclarations de méthode.

Verrous et blocages

Les verrous d'une unité d'exécution ainsi que ceux qu'elle attend peuvent être affichés directement dans la vue Débogueur en activant l'option Afficher les moniteurs du menu déroulant de la vue Débogueur. Les unités d'exécution et les verrous impliqués dans un blocage sont surlignés en rouge.

Un blocage a été affiché dans la vue Débogage


Navigation des traces de pile

Copiez et collez une trace de pile sur la console Java Stack Trace puis utilisez les hyperliens afin de parcourir la trace. Vous pouvez ouvrir la console Java Stack Trace à partir du menu déroulant Ouvrir la console de la vue Console. Les traces de pile collées peuvent être formatées à l'aide de la liaison de touches standard Format.

Console Java Stack Trace


Valeur 'toString()' incorporée

La valeur de calcul toString()d'une variable peut être affichée directement dans l'arborescence Variables ainsi que dans la zone Détails. La commande Modules Java de formatage des détails... dans le menu déroulant de la vue sert à configurer le mode de travail de cette fonction.

Exemple de valeur toString() incorporée


Structures logiques définies par l'utilisateur

Le débogueur Java vous permet dorénavant de contrôler ce qui est affiché dans la vue Variables pour différents types d'objets. Par exemple, les collections peuvent être affichées comme un simple tableau de valeurs, au lieu d'indiquer tous les détails relatifs à l'implémentation de cet objet particulier.

Cette opération est effectuée à partir de la page de préférences Java > Débogage > Structures logiques, dans laquelle vous associez à une interface ou une classe spécifique soit une expression unique (par exemple, this.toArray()), soit une série d'expressions nommées. Lorsque l'objet doit être affiché dans la vue Variables, les expressions sont évaluées afin de produire les valeurs à afficher.

Boîte de dialogue pour modifier la structure logique Java


Modification améliorée des valeurs de variables

Le débogueur Java vous permet maintenant de modifier les valeurs des variables en saisissant une expression dans la boîte de dialogue Modifier les valeurs ou dans la zone Détails de la vue Variables, puis en appuyant sur Enregistrer.

Boîte de dialogue permettant de modifier une expression afin de remplacer la valeur actuelle d'une variable


Rechercher une variable

Dans la vue Variables, l'action Rechercher une variable vous permet de saisir le nom de la variable que vous rechercher. Lors de la saisie, la vue Variables sélectionne la première variable visible correspondant au texte entré. La boîte de dialogue Rechercher affiche également les variables correspondant au texte saisi jusqu'à présent.


Liaisons Javadoc

Vous pouvez à présent associer à chaque fichier JAR un emplacement Javadoc différent dans les bibliothèques d'un JRE.

Boîte de dialogue affichant un emplacement javadoc par bibliothèque JRE


Compilateur Java


Nouveaux paramètres
du compilateur Javadoc

Lorsque la vérification Javadoc est activée, vous pouvez la configurer de façon à ce qu'elle
  • vous avertisse lorsque les balises @see et @link font référence à des éléments déconseillés
  • vous avertisse lorsque les balises @see et @link font référence à des éléments non visibles

Les paramètres sont accessibles dans la page de préférences Java > Compilateur > Javadoc.


Diagnostic Affectation sans effet pour une expression postfixe

Le diagnostic optionnel Affectation sans effet détecte les cas où une expression postfixe est affectée à la même variable, par exemple : i = i++ ;

image de l'affectation d'une expression postfixe


Serial Version UID

Un nouveau diagnostic de compilateur est proposé en option pour les classes sérialisables manquant d'une zone serialVersionUID.

Le paramètre de préférence se trouve dans Java > Compilateur > Erreurs/Avertissements > Problèmes de programmation possibles.


Détection précoce des références à des classes internes

Vous pouvez annoter les entrées de bibliothèque (et de projet) sur le chemin de génération Java (Propriétés > Chemin de génération Java > Bibliothèques) afin d'identifier les packages internes auxquels vous ne souhaitez pas faire référence directement à partir de votre code. Par exemple, il est généralement déconseillé de dépendre des packages spécifiques à un fournisseur, tels que com.ibm.* ou com.sun.*, que l'on trouve souvent dans les bibliothèques J2SE. Les restrictions d'accès sont exprimées à l'aide d'une combinaison de règles d'inclusion et d'exclusion sur les entrées du chemin de génération. La syntaxe du schéma suit la notation Ant, et s'oppose au chemin du fichier de classe. Par exemple, l'utilisation du schéma com/ibm/** comme règle d'exclusion restreint l'accès à toutes les classes du package com.ibm et de ses sous-packages ; l'utilisation du schéma org/eclipse/**/internal/** comme règle d'exclusion permet de détecter toutes les classes des packages Eclipse internes. Lorsque vous fournissez des règles d'inclusion, tous les éléments correspondant à ces règles sont corrects, et tous les autres sont considérés comme hors limites.

Le paramètre de préférence Java > Compilateur > Erreurs/Avertissements > API déconseillées et restreintes vous permet de contrôler si les références errantes sont signalées comme des erreurs ou des avertissements (les erreurs par défaut correspondent aux références interdites et les avertissements aux références déconseillées).

image de la boîte de dialogue Propriétés du Chemin de génération Java


Règles d'accès pour les bibliothèques et les projets

Des règles d'accès peuvent être définies pour les bibliothèques et les projets référencés pour autoriser/interdire/déconseiller l'accès à des types spécifiques.

image d'un assistant Chemin de génération avec des règles d'accès


Editeur Java


Amélioration des icônes et des légendes de réduction

Lorsque vous réduisez un élément Java, la ligne restant dans l'éditeur Java est celle contenant le nom de l'élément. La première ligne de commentaires est affichée pour les commentaires Javadoc réduits. Les nouvelles icônes de réduction légère affichées dans l'éditeur Java diffèrent des indicateurs de remplacement et d'implémentation :

Image des nouvelles icônes de réduction


Réduction de commentaire d'en-tête

Les commentaires d'en-tête et les déclarations de copyright des fichiers source Java peuvent être réduits :

Capture d'écran montrant un commentaire d'en-tête réduit


Marquer les occurrences des méthodes héritées

L'éditeur Java peut mettre en évidence toutes les déclarations de méthodes implémentant ou remplaçant les méthodes héritées du supertype sélectionné. Voir le paramètre de préférence Java > Editeur > Marquer les occurrences > Méthode implémentant une interface.

Image Marquer les occurrences d'implémentation


Nouveau menu rapide Occurrences

Vous pouvez ouvrir dans l'éditeur Java un menu contextuel avec des recherches d'occurrences en cliquant sur Ctrl+Maj+U.

Remarque : si vous préférez l'ancienne méthode, vous pouvez réattribuer la combinaison de touches ci-dessus à la commande "Rechercher toutes les occurrences dans le fichier".


Mise en évidence des membres de classe déconseillés dans l'Editeur Java

Les membres de classe déconseillés sont signalés par une mise en évidence perfectionnée :

Mise en évidence des membres déconseillés

Cette option est configurable dans la page de préférences Java > Editeur > Coloration syntaxique.

Références dans Javadoc

Maintenant, Eclipse reconnaît les références à des éléments Java à l'intérieur des commentaires de la documentation (c'est-à-dire les balises @see, @link, @linkplain, @throws, @exception, @param ou @value). Cela permet l'aide contextuelle et l'association avec l'élément Java référencé.

image de l'Editeur Java avec aide contextuelle dans Javadoc


Exécution de code sur un mot vide

L'exécution de code Java sur un mot vide ne propose plus automatiquement tous les types visibles à l'emplacement de l'exécution. Vous devez maintenant taper le premier caractère du type pour obtenir une proposition d'exécution.

image de l'Editeur Java montrant l'exécution sur un mot vide


Description de type infobulle pour Javadoc

Le Javadoc affiché via Editer > Afficher une description de type infobulle (F2) apparaît dans le widget Navigateur SWT.


Réglage de l'identation à l'aide de la commande Déplacer les lignes

Les commandes Déplacer les lignes (Alt+Haut/Bas) et Copier les lignes (Ctrl+Alt+Haut/Bas) règlent automatiquement l'identation des lignes sélectionnées lorsque vous les déplacez à l'intérieur de l'Editeur Javadoc.

Amélioration de l'éditeur de fichiers de propriétés Java

Les éditeurs de fichiers de propriétés Java ont été considérablement améliorés. Ils proposent la mise en évidence de la syntaxe, une amélioration du comportement de l'action double-cliquer et une préférence de police séparée. Les couleurs de mise en évidence de la syntaxe sont réglées à partir de la page de préférences Java > Editeur de fichiers de propriétés. La vérification orthographique est également disponible, et un correctif rapide (Ctrl+1) peut être utilisé pour corriger les problèmes d'orthographe.

Image de l'Editeur de fichiers de propriétés Java


Travailler avec des chaînes externalisées

Lorsque vous maintenez le curseur sur l'icône d'une chaîne externalisée dans l'Editeur Java, la valeur externalisée associée apparaît dans une infobulle :

Image d'une infobulle de chaîne externalisée

Cliquez dessus en appuyant sur Ctrl pour passer directement dans le fichier de propriétés Java correspondant :

Image Ctrl+Clic dans l'Editeur Java


Passer de la clé de propriété dans l'éditeur de fichiers de propriétés à ses références

Pour quitter une clé de propriété dans l'éditeur de fichiers de propriétés et revenir au lieu de référencement de la clé dans le code, cliquez sur Parcourir > Ouvrir (F3) ou appuyez sur Ctrl en cliquant.

Image montrant l'hyperlien de la clé de propriété


Prise en charge de nouveaux bundles de messages par l'assistant Chaînes externalisées

L'assistant Chaînes externalisées prend en charge le mécanisme d'externalisation des chaînes d'Eclipse, ce qui n'était pas le cas dans les versions précédentes :

Image de l'assistant Chaînes externalisées


Nouvelle API pour créer des propositions de code comme dans l'Editeur Java

Vous implémentez un éditeur pour un langage similaire à Java ? Créez vos propres propositions d'assistant de code, semblables à celles proposées dans l'Editeur Java. Instanciez le CompletionProposalCollector de façon à avoir les mêmes propositions que l'Editeur java, ou sous-classez-le pour le combiner à vos propres propositions. Utilisez CompletionProposalLabelProvider pour obtenir des images et des titres corrects, puis triez les propositions à l'aide de CompletionProposalComparator.

Package : org.eclipse.jdt.ui.text.java dans le plug-in org.eclipse.jdt.ui.


Outils Java généraux


Nouvelle boîte de dialogue Ouverture d'un type

La boîte de dialogue Java Ouverture d'un type a été améliorée sous bien des aspects :
  • Dorénavant, la sélection s'effectue à partir d'une seule liste.
  • Un historique des derniers types ouverts s'affiche en premier dans la boîte de dialogue ; les types d'espace de travail correspondant au schéma apparaissent sous la ligne de séparateur.
  • Le schéma CamelCase correspondant vous conduit à un type en utilisant moins de touches. Par exemple, TZ signifie TimeZone et IOOBE, IndexOutOfBoundsException.
  • De plus, le contenu de la boîte de dialogue peut être limité à un jeu de documents. Ce jeu peut être sélectionné à partir du menu déroulant de la boîte de dialogue.

Boîte de dialogue Ouverture d'un type

La boîte de dialogue Ouverture d'un type a également subi d'importantes modifications architecturales. Les types affichés dans la boîte de dialogue sont dorénavant trouvés à l'aide d'un moteur de recherche Java. Par rapport à la méthode précédemment utilisée, cela permet d'économiser entre 4 et 6 Mo sur un espace de travail de développement Eclipse.


Organisation de l'espace de travail avec plusieurs projets

Pour activer un nouveau mode affichant les jeux de documents comme des éléments de niveau supérieur, cliquez sur Afficher > Jeux de documents dans le menu d'affichage de la vue Packages. Ce mode vous permet de gérer beaucoup plus facilement les espaces de travail comportant de nombreux projets.

Vue Packages dans le mode Jeu de document

Pour déterminer les jeux de documents à afficher, utilisez la fonction Sélection des jeux de documents du menu d'affichage de la vue Packages. Cette boîte de dialogue vous permet de créer de nouveaux jeux de documents Java, de déterminer lesquels doivent être affichés et dans quel ordre. Les jeux de documents peuvent également être réorganisés directement dans la vue Packages à l'aide des fonctions glisser-déposer et copier-coller.


Amélioration de la page du dossier source pour l'assistant Nouveau projet Java

La page de configuration du dossier source dans l'assistant Nouveau projet Java a été améliorée afin de vous aider lorsque vous créez des projets à partir d'une source existante. Vous pouvez définir les entrées du dossier source, inclure/exclure des dossiers directement dans l'arborescence, et tester immédiatement les résultats de votre action.

Page Nouveau dossier source


Partage des paramètres d'un projet Java

Chaque projet Java peut avoir des paramètres personnalisés pour les options du compilateur et le style de code. Ces paramètres sont stockés dans le projet lui-même, et automatiquement appliqués lors du chargement (ou de la mise à jour) du projet à partir du référentiel.

Lorsque vous modifiez les paramètres d'un projet Java à l'aide de l'interface utilisateur, ceux-ci sont automatiquement écrits dans un fichier du répertoire .settings. (Le contenu du fichier de paramètres est généré automatiquement, et n'est pas destiné à être modifié directement).

Paramètres du compilateur pouvant être partagés


Lien vers les paramètres spécifiques au projet

La page de préférences des paramètres pouvant être également configurés par projet propose un lien vers la page de préférences spécifiques au projet.

Capture d'écran montrant le lien vers les paramètres spécifiques au projet


Emplacements Javadoc stockés dans le fichier .classpath

Les emplacements Javadoc associés aux fichiers JAR et aux dossiers de classe sont stockés dans le fichier .classpath de façon à pouvoir être partagés entre les membres de l'équipe. Lors du démarrage de la version 3.1, tous les emplacements précédemment stockés en interne sont migrés vers le fichier .classpath.

Les emplacements Javadoc sont utilisés par 'Ouvrir Javadoc externe' (CTRL + F2) et par l'assistant Javadoc.


Raccourcis pour les assistants et les correctifs rapides

Vous pouvez appelez directement certains des assistants rapides les plus utilisés - tels que Renommer dans un fichier et Affecter à Local - via les combinaisons de touches Ctrl+2 R et Ctrl+2 L. Consultez la page de préférences Touches pour connaître les correctifs rapides pouvant être appelés directement.

Page de préférences Touches avec raccourcis pour les assistants rapides


Nouveaux correctifs rapides

De nouveaux correctifs rapides ont été ajoutés à plusieurs options du compilateur Java, notamment aux options suivantes :
  • ID de version série manquant : Capture d'écran montrant des correctifs rapides de version série

Nouveaux assistants rapides

Plusieurs assistants rapides (Ctrl+1) ont été ajoutés à l'Editeur Java :
  • Inverser les expressions booléennes :
    Image de l'assistant rapide Inverser les conditions
  • Inverser une expression conditionnelle :
    L'assistant rapide Inverser les conditions
    a le résultat suivant :
    Résultat inversé
  • Convertir l'expression conditionnelle (? opérateur) en instruction if-else, ou vice versa
  • Introduire une nouvelle variable locale après une vérification instanceof :
    Affecter le transtypage à la variable locale avant l'appel
    a le résultat suivant :
    Résultat après l'appel de l'assistant rapide
  • Tester le libellé d'une sous-chaîne :
    Assistant rapide Extraire une chaîne
    a le résultat suivant :
    Résultat de l'assistant rapide 'Extraire une chaîne'

Action Annuler/Rétablir la propagation des modifications disponible à partir du menu Editer

Les actions Annuler/Rétablir la propagation des modifications sont à présent disponibles dans le menu Editer, et elles ne figurent plus séparément dans la barre de menus globale. De plus, ces opérations sont dorénavant intégrées à l'éditeur Java Annuler/Rétablir, ce qui permet d'améliorer la transparence de l'historique des annulations dans l'éditeur. Par exemple, une propagation des modifications déclenchée au sein de l'éditeur peut maintenant être annulée dans ce même éditeur en appuyant simplement sur Ctrl+Z.

Action Annuler dans le menu contextuel de l'éditeur


Réglage de la visibilité des membres

Les commandes de propagation des modifications Déplacer une méthode, Déplacer un type de membre vers un nouveau fichier, Déplacer un membre statique, Extraire et Transférer modifient automatiquement la visibilité des zones, méthodes et types référencés lorsque cela est nécessaire.

Capture d'écran montrant la commande Déplacer un type de membre vers un nouveau fichier


Commande Déplacer une méthode

La commande Propager les modifications > Déplacer a été développée afin de mieux prendre en charge le déplacement des méthodes d'instance. Les nouvelles fonctions sont les suivantes :
  • Une option pour créer une méthode déléguée pour la compatibilité
  • Les zones non référencées peuvent maintenant constituer des cibles de méthode

Capture d'écran montrant la commande Déplacer sur une méthode d'instance


Propagation des modifications Utiliser le supertype si possible

La propagation des modifications Utiliser le supertype si possible a été développée et propose maintenant une préférence spécifiant s'il faut mettre à jour les occurrences de type dans les expressions instanceof :

Capture d'écran montrant l'assistant Utiliser le supertype si possible


Menu Chemin de génération dans la vue Packages

Le menu contextuel de la vue Java Package dispose d'une nouvelle entrée : le menu Chemin de génération, qui propose des actions sensibles au contexte afin de modifier le chemin de génération d'un projet Java. Vous pouvez ajouter/supprimer de nouveaux dossiers source, archives et bibliothèques, et inclure ou exclure des dossiers et des fichiers d'un dossier source :

Menu Chemin de génération


Nouveau profil du module de formatage intégré par défaut d'Eclipse

Bien que le profil du module de formatage de code 3.0 par défaut d'Eclipse soit appelé Java Conventions, le formatage d'un fichier à l'aide de ce profil n'utilise pas des espaces mais des tabulations pour l'identation. Un nouveau profil appelé Eclipse a été ajouté : utilisant des tabulations pour l'identation, il reflète ce qu'ont toujours été les options du module de formatage par défaut. Pour utiliser de véritables paramètres Java Convention, il vous suffit de régler le profil du module de formatage sur Java Conventions à l'aide de la page de préférences Java > Style de code > Module de formatage.

Modification en une seule fois de plusieurs paramètres de retour à la ligne

La page du module de formatage de code Java vous permet de modifier plusieurs paramètres de retour à la ligne en une seule fois, en sélectionnant plusieurs paramètres dans l'arborescence puis en les modifiant :

Page Retour à la ligne du module de formatage de code

Les paramètres du module de formatage de code se trouvent sur la page de préférences Java > Style de code > Module de formatage.


Paramètres d'identation mixtes

Les préférences du module de formatage Java permettent de configurer la taille des tabulations indépendamment de la taille d'identation (voir l'onglet Indentation du profil du module de formatage) :

Page de préférences du module de formatage Java. Définissez les préférences d'identation dans l'onglet 'Identation' du profil du module de formatage.

Par exemple, vous pouvez définir le paramètre Taille Tabulation sur 8 et le paramètre Taille Indentation sur 4 pour identer votre source avec quatre espaces. Si vous définissez la Règle de tabulation sur Mixte, une unité d'identation sur deux est remplacée par un caractère de tabulation.

Les profils du module de formatage peuvent être configurés dans la page de préférences Java > Style de code > Module de formatage.


Réexécuter d'abord les tests ayant échoué

La vue JUnit vous propose une nouvelle action vous permettant de réexécuter les tests ayant échoué avant ceux qui ont réussi.

Réexécuter les derniers tests ayant échoué