JetBrains a publié IntelliJ IDEA 2021.1 avec support pour Java 16, une nouvelle fonctionnalité de prévisualisation qui rend instantanément les modifications HTML et la prise en charge du sous-système Windows pour Linux (WSL) 2. Il est également possible d'exécuter des applications sur Docker, WSL 2 ou via SSH. Diverses autres améliorations incluent la prise en charge de Docker, Kubernetes, Kotlin, Git et autres.
L'une des nouvelles fonctionnalités de Java 16 prises en charge par IntelliJ est la possibilité de déclarer des membres statiques dans des classes internes :
public class OuterClass {
class InnerClass {
static final String STATIC_MESSAGE = new String("Works in Java 16");
static String staticMethod() {
return STATIC_MESSAGE;
}
}
}
Les Java bean traditionnels peuvent être convertis en records Java. Cela peut être fait automatiquement lorsque tous les champs sont déclarés comme final
. Par exemple, la classe Student
ci-dessous est convertie en record en appuyant sur ALT-Entrée sur le nom de la classe et en sélectionnant Convert to a record.
public class Student {
private final String firstName;
public Student(String firstName) {
this.firstName = firstName;
}
public String firstName() {
return firstName;
}
}
public record Student(String firstName) {
}
Les records n'ont pas de méthodes explicite de type getter, telles que la méthode firstName()
contenue dans la classe Student
. Cependant, si une classe contient une méthode de type getter, telle que getFirstName()
, alors le record généré aura également la méthode getFirstName()
.
Il est également possible de rechercher toutes les classes éligibles pouvant être converties en records. La conversion d'un record en une classe peut être utilisée au cas où le record n'offre pas les fonctionnalités requises.
Le pattern matching pour l'opérateur instanceof
a toujours été un processus en deux étapes. Premièrement, instanceof
a été utilisé pour vérifier si son argument était du type correct et, deuxièmement, l'objet a été converti en ce type spécifique. Le pattern matching de Java 16 supprime le besoin du cast et IntelliJ peut remplacer l'ancien style de pattern matching et supprimer le cast.
IntelliJ IDEA prend en charge la nouvelle méthode Java 16 toList()
et l'affiche d'abord dans le code completion pour une instance de l'interface Stream
.
Les avertissements sont désormais affichés chaque fois qu'un tableau ou une condition a une taille négative. Un autre avertissement s'affiche lorsque la méthode Collection.toArray()
est utilisée de manière incorrecte pour éviter la possibilité d'une ClassCastException
d'être levée.
La nouvelle fonctionnalité HTML preview peut être ouverte en cliquant sur l'icône IntelliJ comme indiqué dans l'image ci-dessous. Les modifications apportées au HTML, CSS et JavaScript sont immédiatement affichées dans la fenêtre d'aperçu.
Run Targets est une fonctionnalité d'IntelliJ IDEA Ultimate qui permet d'exécuter, de tester et de déboguer une application sur une cible. Avec Run Targets, il est possible d'exécuter des applications Java, des tests JUnit, des projets Maven, Gradle, Micronaut, Spring Boot et Quarkus (basés sur Maven) sur Docker, SSH et WSL.
IntelliJ IDEA peut désormais détecter les JDK installés dans WSL 2 et, si nécessaire, télécharger et installer un JDK. Une fois installés, les projets Java dans WSL 2 peuvent être compilés et exécutés par le système de build d'IntelliJ IDEA. Les applications Maven ou Gradle dans le répertoire WSL 2 \\wsl$
peuvent être utilisés dans IntelliJ.
Des modèles personnalisés de commit Git peuvent être créés pour des messages personnalisés. Les Run inspections permettent d'analyser le code avant un commit. Un fichier peut être copié d'une branche à une autre avec l'option Compare with branch en sélectionnant le fichier et en cliquant sur la flèche vers le bas.
Les expressions JSONPath avec la syntaxe Goessner ou Jayway sont désormais prises en charge et peuvent être testées via Edit | Find | Evaluate JSONPath Expression. La sélection d'une expression JSONPath et la pression sur Alt+Entrée peuvent être utilisées pour évaluer l'expression JSONPath. Cette nouvelle version prend également en charge les fichiers JSON délimités tels que .jsonl
, .jslines
, .ldjson
et .ndjson
.
La convivialité de Docker est améliorée en introduisant la complétion de code dans les fenêtres de configuration d'IntelliJ et les noms d'image dans les Dockerfiles. Un conteneur peut être démarré sur la base d'un Dockerfile et maintenant il peut également être arrêté en cliquant sur Stop Deploy.
Dans un Dockerfile multi-stage, une icône en forme de marteau est affichée pour chaque étape pour ne construire que cette étape. Après avoir ajouté la section Run dans la configuration Run/Debug, l'icône change et elle va créer une image et exécuter un conteneur.
Les ressources Kubernetes peuvent être supprimées en ouvrant une configuration fichier et en cliquant sur l'icône Run. kustomize
, l'utilitaire YAML sans modèle de Google pour Kubernetes, a introduit components dans la version 3.7.0 et ils peuvent être utilisés dans IntelliJ en configurant la version souhaitée de kustomize
via Settings/Preference | Languages & Frameworks | Kubernetes.
La vitesse d'analyse du code et la complétion de code pour Kotlin ont été améliorées. Des avertissements concernant des appels de méthodes blocantes inappropriés ont été introduits et des problèmes avec la fonctionnalité language injection de Kotlin ont également été corrigé.
L'UX et l'interface utilisateur sont mises à jour pour le client HTTP avec l'option pour copier le corps de la réponse sans le reste de la réponse. La prise en charge SSL pour l'authentification client est désormais disponible en cliquant sur Add environment file puis sur Private.
Les autres nouvelles fonctionnalités incluent :
- Les règles de formatage pour les appels de méthodes chaînées peuvent être configurées via Settings | Editor | Code Style | Java | Wrapping and Braces | Chained method calls.
- Une nouvelle action save to shelf stocke les modifications des utilisateurs tout en les conservant dans les changements locaux.
- Sous Windows, il est possible d'ouvrir un projet récent en cliquant avec le bouton droit de la souris sur l'icône IntelliJ IDEA.
Vous trouverez plus de détails sur toutes ces nouvelles fonctionnalités dans la section nouveautés de la page d'IntelliJ IDEA 2021.1.
IntelliJ IDEA, initialement lancé en janvier 2001, est utilisé dans le monde par plus de quatre millions de développeurs. JetBrains a récemment célébré le 20e anniversaire avec une retrospective de tous les temps forts des 20 dernières années.