Nouveautés de la version 2.1

Ci-après figure la liste des modifications les plus intéressantes et les plus importantes apportées aux outils de développement Java pour la version 2.1 d'Eclipse depuis la version 2.0 :

Editeur Java

Débogueur Java

Propagation des modifications

Généralités

Intégration JUnit

Editeur Java

L'éditeur Java peut être davantage personnalisé

La page des préférences Java > Editeur propose plusieurs options de configuration :

  • Vous pouvez configurer l'aide contextuelle dans l'éditeur Java à l'aide de l'onglet Aides contextuelles.
  • Vous pouvez utiliser l'onglet Saisie pour contrôler la fermeture automatique des parenthèses, crochets, chaînes et commentaires pour un retour à la ligne des chaînes et d'autres comportements utiles de l'éditeur, spécifiques à Java.
  • Vous pouvez utiliser l'onglet Annotations pour personnaliser l'aspect visuel des erreurs, des avertissements, des tâches, etc.
Aides contextuelles marquées

Vous pouvez ouvrir une aide contextuelle dans une fenêtre que l'on peut faire défiler et redimensionner en appuyant sur F2. Le contenu de cette fenêtre peut être sélectionné et copié.

Fenêtre d'aide contextuelle redimensionnable

Indication d'un état marquant

L'éditeur de texte par défaut et l'éditeur Java affichent à présent un marqueur bien visible dans l'angle supérieur droit pour indiquer que le fichier contient des erreurs ou des avertissements.

Editeur avec marqueur d'indication d'erreur dans l'angle supérieur droit

Recherche dans un fichier

L'ensemble de menus Recherche contient une nouvelle option (Occurrences dans le fichier) permettant de rechercher toutes les occurrences de types, zones, méthodes et variables locales dans l'unité de compilation ou le fichier classe dans lequel l'élément est déclaré. Conformément aux autres options de recherche, les marqueurs sont générés et présentés sous forme d'annotations dans l'éditeur. Les entrées de la vue Résultats de la recherche présentent des icônes différentes pour l'accès en lecture et en écriture. Dans l'exemple suivant, vous pouvez voir les résultats de la recherche pour "fName" dans "TestCase.java".

Vue Editeur et Recherche montrant les occurrences d'une zone dans un fichier

Davantage de correctifs rapides

Des correctifs rapides sont à présent disponibles pour des incidents Java supplémentaires. Cliquez sur l'ampoule dans la marge gauche de l'éditeur Java, appuyez sur les touches Ctrl+1 ou sélectionnez Editer > Correctif rapide dans le menu pour :

  • créer des constructeurs manquants,
  • supprimer de méthodes, des zones ou des types privés inutilisés,
  • corriger des importations ambiguës (suggérer également l'organisation des importations),
  • créer une méthode dans un type externe (pour les méthodes de classes anonymes),
  • ajouter des raccords pour les méthodes non implémentées,
  • ajouter une clause catch ou une déclaration throws pour traiter une exception non interceptée,
  • supprimer une clause catch pour traiter une exception qui n'est plus lancée,
  • ajouter des méthodes abstraites non implémentées.

Ci-dessous figurent d'autres incidents détectés par le compilateur qui peuvent être corrigés à l'aide du Correctif rapide :

  • zones d'instance utilisées dans un contexte statique,
  • méthodes ou zones statiques accédées de manière non statique,
  • déclaration d'une méthode abstraite dans un type non abstrait,
  • méthode, zone, type ou importation invisible,
  • chaînes non externalisées.

Fenêtre Correctif rapide

Assistant rapide

Les actions de correction rapide sont désormais disponibles même lorsqu'il n'y a pas d'erreur. Placez le caret dans un identificateur et appuyez sur Ctrl+1 (Editer > Correctif rapide) pour appeler l'assistant rapide.

  • Le changement de nom lié est disponible sur tous les identificateurs.

    Changement de nom lié - Assistant rapide

    Le changement de nom lié active l'édition du mode lié (comme dans les modèles) où le fait de changer l'identificateur modifie toutes les occurrences du nom dans le fichier source.

  • Vous pouvez remplacer la clause catch par une clause throws (disponible sur les clauses catch).
  • Vous pouvez attribuer des instructions d'expression à une nouvelle variable ou zone locale (disponible sur toutes les instructions d'expression). Par exemple, vector.iterator(); sera transformé en :
    Iterator iterator= vector.iterator();
    Les suggestions de nom de variable sont fournies par l'assistant rapide.
  • Vous pouvez supprimer des instructions if/while/for/do ou des blocs et le retrait du contenu sera automatiquement corrigé.
  • Vous pouvez entourer des sélections de plusieurs lignes par des modèles.
Améliorations de l'assistant de code
  • Le compilateur Java a amélioré le taux de pertinence d'une proposition en fonction du type attendu dans le contexte. Par exemple, pour StringBuffer sb= new [code assist], StringBuffer apparaît maintenant en premier dans la liste.
  • L'assistant de code de l'éditeur Java fournit à présent une exécution sur des mots clés.
Amélioration de la vue Structure Java

Vous pouvez paramétrer la structure Java pour qu'elle n'affiche que les membres de type main de l'unité de compilation en cliquant sur le bouton Passer au type de niveau supérieur (Passer au type de niveau supérieur) dans la barre d'outils de la vue Structure.

Barre d'outils de la vue Structure Java

Code Java avec hyperlien

Si vous placez le pointeur de la souris sur le code Java, en appuyant sur la touche Ctrl et en déplaçant la souris, les identificateurs de classe, méthode et zone se changent en liens sur lesquels il est possible de cliquer pour obtenir la déclaration correspondante. Cette option peut être configurée à l'aide de l'onglet Java > Editeur > Navigation.

Hyperliens dans le code Java

Défilement jusqu'au membre suivant Utilisez les touches Ctrl + Maj + Flèche bas (Naviguer > Accéder à > Membre suivant) et Ctrl + Maj + Flèche haut (Naviguer > Accéder à > Membre précédent) dans l'éditeur Java pour naviguer rapidement parmi les méthodes, les zones, les initialiseurs et les types de membre.
Davantage d'erreurs détectées à la volée

L'éditeur Java annote à présent davantage de types d'erreur, incluant des exceptions non interceptées et des variables inutilisées qui requièrent une analyse du flux détaillée.

Editeur montrant une erreur détectée à la saisie

Structures en place

Appuyez sur les touches Ctrl+F3 (Naviguer > Ouvrir la structure) dans l'éditeur Java pour afficher la structure en place de l'élément à la position courante du curseur ou appuyez sur les touches Ctrl+O (Editer > Ouvrir la structure) pour afficher une structure en place du fichier source courant.

Structure en place

Informations d'aide contextuelle dans la vue de l'éditeur

La règle de l'éditeur Java (à droite du cadre) affiche désormais des informations d'aide contextuelle relatives aux annotations des incidents.

Aide contextuelle de la règle

Editeur de fichier classe

L'éditeur de fichier classe a intercepté l'éditeur d'unité de compilation. Il prend maintenant en charge la mise en évidence de la ligne du curseur, les numéros de ligne, la mise en évidence des annotations, la règle, la marge d'impression, le développement de la sélection sémantique et la navigation au clavier entre les différents membres du fichier classe.

Débogueur Java

Vue Unités d'exécution et moniteurs

La nouvelle vue Unités d'exécution et moniteurs du débogueur montre quelles unités d'exécution détiennent des verrous et les quelles attendent d'en obtenir un.

Vue Moniteurs montrant les cycles de blocage

 

Points d'arrêt et points de contrôle de l'instance Vous ne pouvez pas définir de points d'arrêt et de points de contrôle spécifiques à une instance d'objet particulière. Dans la vue Variables, sélectionnez Points d'arrêt d'instance... à partir du menu contextuel des variables.

Boîte de dialogue de filtrage d'instance

Amélioration des points d'arrêt conditionnels Un point d'arrêt conditionnel traditionnel est déclenché par une expression booléenne dont la valeur est "true". Il est désormais possible de déclarer des points d'arrêt conditionnels, déclenchés lorsque la valeur d'une expression change. De plus, l'assistant de code est disponible lors de la saisie dans l'expression conditionnelle.

Boîte de dialogue des propriétés d'un point d'arrêt

Avance d'un pas avec entrée dans les sélections

Le débogueur Java permet à présent d'avancer d'un pas avec entrée dans une seule méthode au sein d'une série d'appels de méthode chaînés ou imbriqués. Mettez simplement en évidence la méthode dans laquelle vous souhaitez avancer d'un pas avec entrée et sélectionnez Avancer d'un pas avec entrée dans la sélection dans le menu contextuel de l'éditeur Java.

Avance d'un pas avec entrée dans la sélection

Eléments de contrôle Vous pouvez créer un élément de contrôle en sélectionnant une expression dans l'éditeur Java et en utilisant l'action Contrôler (disponible dans le menu contextuel et dans le menu Exécuter). De même, un élément de contrôle peut être créé en sélectionnant une variable et en utilisant l'action Contrôler.
Filtres de progression Ces filtres sont à présent plus adaptés, depuis que l'action Progression avec filtres a été ajoutée à la barre d'outils et au menu de débogage. De plus, les actions ont été ajoutées au menu contextuel de débogage pour rationaliser la création des filtres de progression pour le type ou le package associé au cadre de pile sélectionné.
Renvoi à la ligne dans la vue Variables La zone de détails des vues Variables et Expressions du débogueur prend à présent en charge la fonction de renvoi à la ligne, disponible à partir du menu déroulant de la vue.

Action de renvoi à la ligne dans le menu déroulant de la vue Variables

Hyperliens de trace de pile

Les traces de pile Java de la console apparaissent désormais sous forme d'hyperliens. Lorsque vous placez le pointeur de la souris sur une ligne de trace de pile, le pointeur se transforme en main et la trace de pile est soulignée. Cliquez sur le bouton de la souris pour ouvrir le fichier source Java associé et placez le curseur sur la ligne correspondante.

Trace de pile avec hyperliens dans la vue Console

Taille de la mémoire tampon de la console La vue Console conserve uniquement les n caractères les plus récents de la sortie (la valeur par défaut est 80 Ko). La taille de la mémoire tampon de la console peut être configurée dans la page des préférences Déboguer > Console.
Filtrage de constantes et de valeurs statiques

Deux nouvelles actions sont disponibles dans le menu déroulant de la vue Variables : Afficher les constantes et Afficher les variables statiques. Ces actions activent ou désactivent la visibilité des variables statiques et finales statiques.

Actions de filtrage de variable dans le menu déroulant de la vue Variables

Exécution pas à pas plus rapide

Les performances de l'action Exécuter > Avancer d'un pas sans entrée (F6) du débogueur ont été améliorées. Vous devriez noter la différence en maintenant enfoncée la touche F6 et en cliquant sur le bouton Avancer d'un pas sans entrée.

Pointeur d'instruction

Lors du débogage, l'éditeur Java indique à présent la ligne en cours d'exécution par une flèche dans la marge de gauche. Cette flèche est en trait plein pour le cadre de pile supérieur et en pointillés pour les cadres de pile inférieurs.

Pointeur d'instruction apparaissant dans la règle de l'éditeur

Propagation des modifications

Nouvelles propagations de modifications

De nombreuses actions de propagation des modifications sont disponibles :

  • Déplacement de la méthode d'instance : cette action permet de déplacer la méthode vers la classe déclarée d'un de ses paramètres ou zones. Elle crée une nouvelle méthode et convertit l'ancienne en délégué (la transmettant à un pointeur en this, si nécessaire).
  • Transfert de membres : cette action permet de déplacer un ensemble de méthodes et de zones d'une classe vers ses sous-classes.
  • Intégration de méthode : cette action intègre des appels à une méthode Java particulière, au niveau d'un site d'appel sélectionné ou de n'importe quel endroit où la méthode est appelée. Elle est polymorphiquement disponible via l'option de menu Propager les modifications > Intégrer.
  • Intégration de constante : cette action intègre les utilisations d'une zone finale statique Java particulière, au niveau d'un site de référence sélectionné ou de n'importe quel endroit où la zone est référencée. Elle est polymorphiquement disponible via l'option de menu Propager les modifications > Intégrer.
  • Extraction de constante : cette action crée une zone finale statique à partir de l'expression sélectionnée et substitue une référence de zone, en réécrivant éventuellement d'autres emplacements où la même expression se produit.
  • Conversion de variable locale en zone : cette action permet de changer une variable locale en zone. Si la variable est initialisée à la création, l'opération déplace l'initialisation sur la déclaration de la nouvelle zone ou sur les constructeurs de la classe.
  • Conversion de classe anonyme en classe imbriquée : si une classe interne anonyme du code est trop grande, cette action permet de la convertir en classe de membre.
  • Conversion du type de membre en type de niveau supérieur : cette action crée une unité de compilation Java pour le type de membre sélectionné, en mettant à jour toutes les références, si nécessaire. Pour les types de membre non statiques, une zone est ajoutée permettant d'accéder à l'instance fermante précédente.
  • Extraction d'interface : cette action crée une interface avec un ensemble de méthodes et fait implémenter l'interface par la classe sélectionnée, en modifiant éventuellement les références à la classe par la nouvelle interface.
  • Utilisation du supertype si possible : cette propagation des modification remplace les occurrences d'un type par l'un de ses supertypes, après avoir identifié tous les emplacements où ce remplacement est possible.
Amélioration des propagations de modifications

Plusieurs actions de propagation des modifications ont été améliorées :

  • Changement de la signature de la méthode : cette action remplace celle de modification des paramètres. Elle permet de modifier la visibilité et le type de retour d'une méthode et d'ajouter, de supprimer, de renommer et de réorganiser les paramètres de méthode.
  • Extraction de membres : cette action a été améliorée de plusieurs façons :
    • vous pouvez extraire les membres de plus d'un niveau dans la hiérarchie ;
    • au lieu de les extraire, vous pouvez déclarer des méthodes comme étant abstraites dans le supertype sélectionné ;
    • vous pouvez calculer le plus petit ensemble de membres devant être extrait afin de répondre aux contraintes de visibilité.
  • Extraction de méthode : vous pouvez réorganiser et renommer les paramètres de la méthode extraite.
  • Changement de nom et déplacement des propagations de modifications : lors du changement de nom d'un type ou d'un package Java (ou lors du déplacement d'un type vers un package différent), le nom complet qualifié de l'élément peut être à présent également mis à jour dans des fichiers non Java.

Nouvelle interface utilisateur de propagation des modifications simplifiée

L'activation d'une opération de propagation des modifications Java affiche désormais une petite boîte de dialogue de démarrage permettant de rassembler les informations nécessaires pour effectuer la propagation des modifications. Cliquez sur OK pour exécuter la propagation des modifications sans autre intervention ou cliquez sur Aperçu pour prévisualiser ses effets avant de décider de poursuivre l'opération.

Boîte de dialogue de la nouvelle propagation des modifications simplifiée

Généralités

Chemins source et de sortie Java plus flexibles

La configuration du chemin de compilation Java offre une flexibilité améliorée :
  • Les filtres d'exclusion permettent d'exclure de la compilation certains fichiers source d'un dossier source.
  • A présent, les dossiers source peuvent être imbriqués. Utilisez un filtre d'exclusion sur le dossier parent pour exclure le sous-dossier à ajouter au chemin de compilation.
  • L'emplacement des fichiers classe générés peut être défini individuellement pour chaque dossier source.
  • Vous pouvez également utiliser des dossiers liés comme dossiers source, dossiers classe ou dossiers de sortie.

Page des propriétés du chemin de compilation Java

Paramètre du compilateur Java spécifiques au projet Outre les paramètres de préférences du compilateur Java de l'espace de travail (Java > Compilateur), vous pouvez désormais configurer ceux d'un projet Java spécifique à l'aide de la nouvelle page des propriétés Compilateur Java de chaque projet Java.

Davantage d'options de compilation Java

  • Les projets Java qui dépendent l'un de l'autre peuvent être généralement compilés avec succès dans une seule action de compilation. Afin de permettre des cycles, vous devez réduire la gravité associée aux dépendances circulaires dans la page des préférences Java > Compilateur.
  • Le compilateur Java peut désormais signaler les déclarations de type, zone ou méthode privé inutilisées. Cette option permet de trouver un code désuet ou quelques erreurs subtiles.
  • Le compilateur Java vous avertit désormais lorsque vous semblez attribuer sa propre valeur à une variable. Ceci permet d'intercepter une erreur subtile dans des méthodes setter et des déclarations de constructeur dans lesquelles le nom d'un paramètre est proche de celui d'une zone. Cette option peut être configurée à l'aide de la page des préférences Java > Compilateur > Style. Exemple :
Attribution sans effet

Amélioration de la configuration des préfixes et des suffixes pour les variables

En plus de la configuration du préfixe ou du suffixe des zones, vous pouvez désormais spécifier le préfixe ou le suffixe des zones statiques, des paramètres et des variables locales. Ces paramètres de la page des préférences Java > Génération de code sont utilisés dans l'assistant de code, le correctif rapide et la propagation des modifications chaque fois qu'un nom de variable doit être calculé.

Page des préférences des conventions de nom

Génération de code personnalisable

La page des préférences Java > Génération de code permet de personnaliser le code et les commentaires générés de manière similaire à des modèles normaux. Ces modèles de code sont utilisés chaque fois que du code est généré. (Les commentaires remplacent les modèles existants 'filecomment' et 'typecomment' utilisés pour la génération de code.)

Onglet Code et commentaires dans la page des préférences Génération de code

Balises de tâche configurables

La page des préférences Java > Balises de tâche est utilisée pour configurer la présentation dans l'espace de travail des balises de tâche apparaissant dans les commentaires Java. Vous pouvez également configurer ces balises sur une base par projet à l'aide de la page des propriétés Balises de tâche Java sur chaque projet Java.

Page des préférences des balises de tâche

Dans l'éditeur, vous pouvez voir :

Editeur avec une tâche TODO

Tri des membres

Une action Trier les membres dans le menu contextuel des unités de compilation Java et des types de niveau supérieur permet de réarranger les membres d'une unité de compilation en fonction de l'ordre des catégories défini dans la page des préférences Java > Aspect > Ordre de tri des membres.

Page des préférences Ordre de tri des membres

Boîte de dialogue d'ajout de méthodes déléguées

Vous pouvez aisément générer des méthodes déléguées (méthodes qui délèguent à une méthode fournie par une variable d'instance) à l'aide de l'action Source > Générer des méthodes déléguées. L'action est disponible sur tous les types avec zones.

Boîte de dialogue d'ajout de méthodes déléguées

Améliorations de la vue Packages

Les projets autres que Java sont désormais présentés dans la vue Packages. Un filtre est fourni pour filtrer les projets non Java. De plus, l'interaction ouvrir/fermer est désormais cohérente avec le navigateur des ressources.

Projets non Java dans la vue Packages

Les bibliothèques (la bibliothèque système JRE, par exemple) sont désormais présentées sous forme d'un seul noeud avec un ou plusieurs fichiers JAR en tant qu'enfants.

Présentation hiérarchique et présentation à plat

Une option de la vue Packages Java (et de la vue Packages) permet de modifier le mode d'affichage des packages. L'option Hiérarchique affiche les packages sous forme d'arborescence, avec des sous-packages sous les packages. L'option A plat les affiche dans un arrangement standard, sous forme de liste à plat dans laquelle tous les packages et les sous-packages sont apparentés. L'exemple suivant illustre une présentation hiérarchique :

Présentation hiérarchique dans la vue Packages

Packages logiques

La vue Packages Java (perspective Navigation Java) regroupe les packages de même nom contenus dans les dossiers source dans un projet. Ceci permet d'afficher une vue de package logique.

Packages logiques dans la vue Packages Java

La vue Hiérarchie des types prend en charge le regroupement par type de définition

La vue des méthodes de la Hiérarchie des types permet de trier les méthodes du type sélectionné par leurs types de définition. Par exemple, pour AbstractList, vous pouvez voir qu'il contient les méthodes définies dans Objet, Collection et Liste :

Tri des membres par type de définition dans la hiérarchie des types

Davantage de filtres pour les vues Packages et Projet

Il existe davantage de filtres pour les vues Packages et Projets :

Filtres Packages

Restauration de plusieurs méthodes

Vous pouvez désormais restaurer plusieurs éléments Java à partir de l'historique local dans une seule opération en sélectionnant Restaurer à partir de l'historique local dans le menu contextuel. Dans la sous-fenêtre de gauche de la boîte de dialogue, cochez les éléments à restaurer et pour chacun d'eux, sélectionnez une entrée de l'historique dans la partie de droite.

Restauration de plusieurs méthodes

Intégration JUnit

Exécution de tous les tests par unité

Le programme d'exécution de test JUnit vous permet à présent d'exécuter facilement tous les tests dans un projet Java spécifié, un dossier source ou un package.

Configuration de lancement JUnit

Recherche des tests par unité La nouvelle action JUnit Naviguer > Accéder à > Tests de référence recherche et accède aux tests faisant référence à un type ou une méthode spécifique.

Exécution en tant que test JUnit

Choisissez une méthode de test JUnit dans une vue et sélectionnez Exécuter > Exécuter en tant que > Test JUnit. Une configuration de lancement est alors créée pour exécuter le test sélectionné.

Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.