Suivant son cycle de releases trimestrielles, la fondation Eclipse a diffusé la version 2020-06 (4.16) de son IDE. Cet article propose une revue des principales nouveautés générales et du JDT.
Les changements dans le style de l’IHM
Au lancement d’Eclipse 2020-06 sous Windows, la première chose que l’on remarque c’est le changement de style dans l’IHM. Avec le thème « Light », celui par défaut, le fond est un gris léger en remplacement du bleu clair et les bords des onglets ne sont plus arrondis mais sont carrés :
Eclipse 2020-03
Eclipse 2020-06
Le mode sombre (thème dark) a aussi été mis à jour.
Une case à cocher dans les préférences « General / Appearance » permet d’avoir les bords ronds dans les onglets.
Pour prendre en compte cette configuration, il faut redémarrer Eclipse.
Le thème « Classic » reste inchangé et ignore cette option.
L’affichage des raccourcis clavier
Deux options dans les préférences « General / Keys » permettent d’afficher au milieu en bas les raccourcis claviers utilisés ou utilisables en remplacement d’un clic de souris.
En cochant, la case « Throught keyboard », les raccourcis sont affichés lors de l’utilisation des combinaisons de touches. C’est pratique lors de démos pour permettre à l’assistance de voir la combinaison de touches utilisées.
En cochant la case « Throught mouse click », les raccourcis sont affichés lors de clics de la souris. C’est pratique pour apprendre les raccourcis clavier.
Le support de Java 14
Il est maintenant fourni en standard : il n’est plus nécessaire d’installer un plugin supplémentaire comme dans la version précédente 2020-03 d’Eclipse.
Pour utiliser Java 14, il faut configurer un JDK 14 dans les préférences
Il est alors possible de créer un projet en sélectionnant « JavaSE-14 » comme environnement d’exécution.
Les nouvelles syntaxes de l’instruction switch sont prises en compte dans l’éditeur et les assistants.
Si le switch est utilisé comme une expression, alors les suggestions se limitent à ce cas d’usage.
Les fonctionnalités en preview de Java 14 sont aussi supportés. Pour les activer, le plus simple maintenant est d’utiliser l’option « Configure / Enable preview features » du menu contextuel sur le projet.
Il est aussi possible de le configurer dans les propriétés « Java Compiler » du projet. Il faut décocher « Use compliance from execution environment » et « Use default compliance settings » et cocher « Preview features for Java 14 ».
Il est possible de préciser le niveau de sévérité des messages émis par le compilateur lors de l’utilisation de fonctionnalités en preview.
Le nouveau type Record est supporté dans les assistants.
Un assistant permet de saisir les informations concernant le nouveau record.
Un nouveau template nommé « new_record » permet de créer un Record dans un fichier .java vide
Le formatage de code prend en compte les Records avec des options dédiées dans sa configuration.
Les Text blocs et le pattern matching dans l’instruction instanceof sont supportés tels que proposés dans Java 14.
3 nouvelles fonctionnalités de « Clean up »
Elles sont utilisables manuellement en utilisant le menu contextuel « Source / Clean up » ou automatiquement dans les « Save actions ».
Deux de ces options sont activables dans l’onglet « Code Style ».
L’option « Use lazy logical operator » permet de remplacer les opérateurs | et & respectivement par || et &&.
L’option « Use local variable type inference » permet d’utiliser l’instruction var pour la déclaration des variables locales, pour des versions de Java supérieures ou égales à 10.
La troisième option est activable dans l’onglet « Unnecessary Code ».
L’option « Merge conditions of if/else that have the same blocks » permet de fusionner les blocs de code if/else qui contiennent le même code comme le montre la prévisualisation de la configuration.
Code saisi | |
Code modifié avec l’option activée |
Si les blocs contiennent des commentaires différents seuls les commentaires du premier bloc sont conservés dans lors de la fusion.
Code saisi | |
Code modifié avec l’option activée |
Le support de la JEP 358 (Helpful NullPointerExceptions) dans les JVM HotSpot
Comme le compilateur Eclipse génère les informations de debug dans le byte-code, il suffit simplement de fournir l’option -XX:+ShowCodeDetailsInExceptionMessages
aux JVM.
Il est possible de configurer cette option pour toutes les JVM utilisées. Dans les préférences, dans « Java / Installed JREs », sélectionner le JDK 14 et cliquer sur le bouton « Edit »
Ajouter l’option -XX:+ShowCodeDetailsInExceptionMessages
dans « Default VM arguments » et cliquer sur « Finish ».
Le support des fontes avec ligatures sous Windows
Les fontes avec ligatures n’étaient supportées intégralement que sous Linux et Mac : le support était partiel sous Windows. Avec la version 2020-06, elles sont aussi supportées intégralement sous Windows.
Il suffit de modifier la configuration dans les préférences
Sélectionner « Basic / Text Font » et cliquer sur « Edit » pour sélectionner la police à utiliser, par exemple JetBrains Mono qui est une police avec ligatures.
Les séquences de caractères prises en charge par la police sélectionnée sont remplacées par les caractères avec ligature correspondants.
La création d’un nouveau fichier
Dans les versions antérieures d’Eclipse, il n’est pas possible de préciser un chemin lors de la création d’un nouveau fichier.
Il est maintenant possible lors de la création d’un nouveau fichier de fournir un chemin dans le nom du fichier. Les sous-répertoires manquants seront créés.
La vérification de la compatibilité avec le JRE lors d’une installation/mise à jour
Une nouvelle option dans les préférences permet de faire des vérifications de compatibilité avec le JRE courant lors de l’installation ou de la mise à jour de plugins.
Cette option est activée par défaut. Une erreur sera reportée en cas d’incompatibilité lors d’une tentative d’installation ou de mise à jour.
Conclusion
Eclipse poursuit son rythme de release tous les 3 mois. Cette version 2020-06 ajoute le support de Java 14, un petit rafraîchissement de style dans l’IHM avec certains thèmes et quelques nouvelles fonctionnalités qui s’avèrent pratiques à l’usage.