Accueil Nos publications Blog IntelliJ 12 : quoi de neuf docteur ?

IntelliJ 12 : quoi de neuf docteur ?

intellij12La version 12 d’intelliJ vient de sortir et elle arrive avec son lot de nouveautés : nouveau thème, support de nouveaux langages et de nouvelles syntaxes, ajouts de nouveaux plugins, … Le support d’Android s’est maintenant étendu, avec la possibilité de designer son interface via l’IDE – plus besoin de relancer Eclipse uniquement pour cela. La version Ultimate d’IntelliJ supporte le framework Play 2, et on peut même déployer sur le cloud. Mais le logiciel apporte aussi plein de petites modifications qui forment un tout intéressant… Petit retour sur ces fonctionnalités que j’utilise au jour le jour…

Community or Ultimate ?

IntelliJ est disponible en deux versions : la version Community gratuite et la version Ultimate proposant différents types de licences.

Il faut noter que Community n’est pas une version “demo” de Ultimate, mais bel et bien une version utilisable.

Des fonctionnalités sont bien absentes de la version Community (support javascript, support spring, code coverage, etc), mais elle reste parfaitement exploitable dans un environnement entreprise. Bref, elle est parfaite pour se faire une idée approfondie du produit avant de franchir le pas vers une version Ultimate. D’ailleurs, cela fait plus d’un an que j’utilise la version Community sur mes différentes missions sans avoir ressenti de limitation de la part de l’IDE.

Darcula

La première nouveauté la plus “visible” sur cette nouvelle version est l’apport du thème Darcula, qui passe tout l’IDE dans un style visuel qui tire vers le sombre. Déjà utilisateur d’un thème du même style, je me réjouis que ce soit maintenant disponible d’entrée… bien qu’il n’ait pas l’air de plaire à tout le monde ! Toujours est-il qu’il faut lui laisser sa chance. Essayez-le 2 ou 3 jours, et si cela ne vous convient pas, vous pourrez toujours revenir à un thème visuel plus classique, en passant par la configuration via Settings > Apparences > Color theme.

darcula

Suddenly…Lambda everywhere !

Le support de la nouvelle syntaxe de java 8 est disponible : il est possible d’écrire des lambdas sans avoir d’erreur syntaxique. Et encore mieux, si vous écrivez une classe anonyme éligible pour être une lambda expression, l’IDE vous propose de la transformer en lambda. C’est très bien pour faire des essais avec le dernier build Java 8 disponible, mais cela peut sembler inutile sur un projet plus standard. Pourtant, IntelliJ va même se permettre de changer l’affichage des classes anonymes qui pourraient être des lambdas, tout comme ce qu’il fait déjà avec les generics et la syntaxe Diamand.

La classe anonyme suivante sera présentée de telle manière sous l’IDE :

lambda_apres

 et on peut “déplier” le code pour retrouver ce qui se cache derrière cette lambda :

lambda_avant

On se fait surprendre la première fois, quand on voit une lambda dans du code qui ne nous appartient pas : “Quoi, ils font déjà du Java 8 ?!?”

Rearrange Entries

Côté style de code, IntelliJ propose maintenant le “ré-arrangement” du code lors du reformatage des sources : il va automatiquement réordonner l’ordre des méthodes, constructeurs, getter/setter/etc, histoire de ne plus avoir un constructeur en plein milieu de sa classe. Lorsque vous formatez votre code (Ctrl+Alt+L), cochez “rearrange entries”. C’est extrêmement pratique et toujours activé sur mon poste. Cela peut être un peu perturbant de voir le code sur lequel on travaille changer de place tout seul, mais on s’y habitue très vite.  L’ordre des méthodes est configurable via le panneau Settings > Code Style > Java > Arrangement.

reformat

Compilation automatique

Le compilateur a été modifié : il supporte maintenant la compilation automatique et peut également se lancer en arrière plan. Depuis plus d’un mois, je l’ai activé sur mes projets – qui sont en majorité en Maven, et je n’ai pas ressenti de différence majeure, sauf pour les tests unitaires couplés avec le plugin Infinitest.

Ces derniers se lancent maintenant automatiquement, mais je peux “forcer” ce lancement en faisant une sauvegarde des fichiers (Ctrl+S) : cela déclenche une compilation et “réveille” Infinitest. Il n’est plus nécessaire de faire une macro qui sauvegarde les fichiers et lancer un “make” du projet pour voir ces tests lancés automatiquement par le plugin – problème vraiment spécifique à l’utilisation de ce plugin. La compilation automatique se doit d’être activée pour être disponible sur votre projet : pour cela, un petit tour dans les options Settings > Compiler > Make project automatically.

Panneau des Breakpoints

La fenêtre permettant d’ajouter des points d’arrêt (Breakpoint) a également été modifiée, surtout visuellement : elle est plus sobre et on obtient la liste de tous les points d’arrêt d’un coup d’oeil. On peut même les trier par package/classe/fichier, et non plus avoir un tri uniquement par type du point d’arrêt, donc plus besoin de chercher dans tous les onglets si on n’a pas oublié d’en désactiver un en particulier.

breakpoints

Fonctionnellement, il reste tout de même identique, avec un petit ajout : lors de la sélection d’un point d’arrêt de type Line Breakpoints, le code source associé va s’afficher dans le panneau. Le petit reproche que j’aurais à faire tout de même : je trouve que c’est moins évident qu’auparavant pour ajouter des breakpoints. Il faut penser à cliquer sur le petit + “caché” en haut à gauche… et je n’y pense jamais.

Find Usage allégé ?

J’utilise beaucoup la fonction de Navigate To Implementation (Ctrl+Alt+B), Call Hierarchy (Ctrl+Alt+H) et Find Usage (Alt+F7). Parmi ces fonctions, seul le Find Usage impose de passer préalablement par une boîte de dialogue pour pouvoir filtrer sur l’utilisation d’une méthode, dans le code de production ou le code de test par exemple.

C’est fini depuis la version 12 d’IntelliJ. En effet, l’appui sur “Alt+F7” recherche directement où la méthode est utilisée, avec par défaut, la recherche dans le code de production et de test. Il est toujours possible de récupérer le panneau de paramétrage. Mais pour cela, il est nécessaire de faire un peu de gymnastique avec ces doigts : “Ctrl+Alt+Shift+F7” affiche la boîte de dialogue voulue.

Search With Google : adieu “Ctrl+C/V” dans Google

Dernière petite nouveauté toute simple, mais qui aurait dû être là depuis longtemps : dans la console, un clic droit sur un terme sélectionné (disons une erreur inconnue lancée par un framework…) fait apparaître un petit menu ayant la nouvelle fonction “Search With Google”. Elle permet, comme son nom l’indique, de lancer une recherche directement sur les mots sélectionnés. Plus besoin de faire “Ctrl+C” dans la console puis “Ctrl+V” dans votre navigateur web… Si Google n’est pas votre moteur de recherche privilégié, il n’est malheureusement pas encore possible de configurer d’alternative.

Références :