IntelliJ IDEA 2022.2 est disponible
Tour d'horizon des nouveautés de la deuxième mise à jour majeure de l'année de l'EDI Java de JetBrains

IntelliJ IDEA 2022.2 est disponible avec de nombreuses améliorations qui renforcent l'efficacité et la stabilité de la fonctionnalité de développement à distance. À partir de cette version 2022.2, IntelliJ IDEA utilise JetBrains Runtime 17, ce qui améliore l'expérience et les performances de l'EDI sur de nombreux points. IntelliJ IDEA Ultimate prend désormais en charge les fonctionnalités de Spring 6 et de Spring Boot 3 et propose des mises à jour pour plusieurs autres frameworks. La nouvelle version fournit par ailleurs de nombreuses autres mises à niveau et améliorations significatives, présentées en détail ci-dessous.

Principales mises à jour

Améliorations pour le développement à distance

JetBrains a introduit dans IntelliJ IDEA 2022.2 de nombreuses mises à niveau majeures pour le développement à distance afin de stabiliser l'expérience utilisateur et de l'enrichir de nouvelles fonctionnalités. Les dernières mises à jour apportent plusieurs améliorations du point de vue de la qualité. Vous pouvez ainsi connecter votre ordinateur portable via SSH à IntelliJ IDEA installé sur un serveur distant et bénéficier d'une expérience de développement fluide. Et si vous utilisez JetBrains Space pour orchestrer les backends avec la nouvelle version, vous pouvez gérer vos environnements de développement directement à partir d'IntelliJ IDEA.

Passage de JBR 11 à JBR 17

À compter de la version 2022.2, toutes les mises à jour d'IntelliJ IDEA sont fournies avec JetBrains Runtime 17 (JBR 17), ce qui accroît considérablement les performances de l'EDI, renforce la sécurité, améliore les performances de rendu sur macOS grâce à l'API Metal, et bien plus.

Prise en charge des fonctionnalités de Spring 6 et de Spring Boot 3

IntelliJ IDEA 2022.2 fournit désormais une prise en charge complète des fonctionnalités de Spring 6 et de Spring Boot 3, notamment des nouvelles classes @AutoConfiguration et des classes @ConfigurationProperties avec la nouvelle syntaxe de liaison de constructeur sans @ConstructorBinding explicite. Pensez à mettre à jour l'EDI ou à basculer vos projets vers cette nouvelle version si vous voulez essayer Spring 6.

Expérience utilisateur

Run Current File

JetBrains a ajouté une nouvelle fonctionnalité Run Current File, disponible via le widget Run/Debug, qui permet l'exécution et le débogage de fichiers uniques sans configuration d'exécution dédiée : l'EDI utilisera automatiquement le type de configuration d'exécution le plus adapté au fichier sur lequel vous êtes en train de travailler.

Raccourci clavier pour modifier globalement la taille de la police

Un nouveau raccourci clavier permet de modifier la taille de police partout dans l'éditeur. Pour augmenter la taille de la police, appuyez sur Alt+Maj+Point. Pour la réduire, appuyez sur Alt+Maj+Virgule. Vous trouverez aussi un nouvel un indicateur affichant la taille de police actuelle et une option permettant de rétablir la valeur par défaut.

Action Merge All Project Windows sur macOS

Pour macOS, JetBrains a introduit la possibilité d'organiser votre espace de travail en fusionnant toutes les fenêtres de projet ouvertes en une seule, chaque fenêtre devenant un onglet distinct. Pour effectuer cette action, allez dans Window | Merge All Project Windows.

Amélioration de la configuration de la mise en évidence des inspections

Vous pouvez maintenant configurer l'affichage des inspections dans l'éditeur sans que cela n'affecte leur degré de gravité. Pour modifier le style de la mise en évidence d'une inspection, utilisez le nouveau menu déroulant Highlighting in editor, qui affiche de façon claire toutes les options disponibles.


Barre de progression Cloning repository sur l'écran d'accueil

La barre de progression Cloning repository s'affiche désormais sur l'écran d'accueil de l'EDI et directement dans la liste des projets, ce qui la rend plus claire et plus facile à utiliser.

Nouveau champ Description pour les signets mnémoniques

La boîte de dialogue Add Mnemonic Bookmark se dote d'un champ Description afin de vous permettre d'ajouter une description facultative à votre signet.


Éditeur

Nouveau paramètre pour désactiver la fermeture automatique des commentaires de bloc

Il est maintenant possible de désactiver la fermeture automatique des commentaires de bloc en appuyant sur la touche Entrée. Pour ce faire, accédez à Settings / Preferences | Editor | Smart Keys et décochez la case Close block comment dans la section Enter.

Accès facilité aux paramètres de saisie semi-automatique du code

Vous pouvez désormais accéder aux paramètres Code Completion Settings et configurer vos préférences directement à partir du bouton de menu aux trois points verticaux dans la fenêtre contextuelle de saisie semi-automatique.


Nouveau panneau de notifications pour l'ajustement des associations de types de fichiers

Lorsqu'un fichier est explicitement associé au texte brut par erreur, IntelliJ IDEA vous avertit maintenant de l'association de types de fichiers erronés et vous suggère de la réinitialiser directement à partir de l'éditeur, sans passer par Settings / Preferences.


Nouvelle action pour générer un sommaire dans les fichiers Markdown

Il est désormais possible de générer facilement un sommaire dans les fichiers Markdown à partir des en-têtes de documents. Cette nouvelle action est disponible à partir des menus contextuels Insert et Generate que vous pouvez appeler à l'aide du raccourci Alt+Insertion ou en cliquant sur le bouton droit. L'EDI insère un sommaire à la position actuelle du curseur et l'entoure des balises <!-- TOC -->. Vous pouvez donc la modifier ultérieurement en appelant le même menu.


Java

Amélioration des inspections et de la saisie semi-automatique du code

JetBrains a implémenté une série de modifications dans les inspections Java visant à identifier les bugs potentiels et à simplifier le code. Par exemple, l'inspection Standard 'Charset' object can be used a été améliorée de façon à reconnaître .name() et .toString(). L'EDI peut désormais vous avertir lorsque les variables de schéma masquent des champs, et il intercepte les appels Objects.requireNonNullElse sans signification. Un certain nombre d'inspections Java liées à JUnit ont été converties en inspections JVM, elles sont donc maintenant disponibles en Kotlin. En outre, la saisie semi-automatique du code suggère désormais des littéraux .class, le cas échéant.

Kotlin

Prise en charge des fonctionnalités Kotlin 1.7.0

L'éditeur de logiciels pour développeurs a ajouté la prise en charge des fonctionnalités introduites dans Kotlin 1.7.0, la dernière version du langage. L'EDI rend maintenant correctement les types definitely non-nullable et vous fournit une inspection utile pour les exigences opt-in.

Prise en charge de l'analyse des flux de données dans le débogueur Kotlin

JetBrains a intégré le débogueur Kotlin à la fonctionnalité Data Flow Analysis de sorte qu'il affiche maintenant des conseils DFA montrant quelles conditions sont vraies et quelles branches seront exécutées. Auparavant, cette intégration était uniquement disponible pour Java, mais elle est désormais également prise en charge par Kotlin.

Le générateur natif IntelliJ IDEA utilise la version du compilateur Kotlin configurée dans le projet

À partir de la version 2022.2, le compilateur Kotlin intégré n'est plus utilisé avec le générateur natif IntelliJ IDEA. Les builds locales et de CI s'exécutent maintenant avec la version du compilateur Kotlin déclarée dans les paramètres du projet. Cette modification élimine les incohérences entre les builds locales et de CI qui apparaissaient précédemment en raison du manque de correspondance entre la version du compilateur intégré et la version définie dans le fichier de build du projet.

Amélioration des performances de l'EDI pour Kotlin

Le dernier travail d'optimisation des index par JetBrains a eu un impact positif sur la vitesse et les performances de l'EDI pour la mise en évidence du code, la saisie semi-automatique et Find Usages.

Groovy

Prise en charge de GINQ

JetBrains a ajouté la prise en charge des requêtes Groovy-Integrated Queries (GINQ). L'EDI propose désormais la mise en évidence de la syntaxe, la saisie semi-automatique du code, et des inspections pour cette fonctionnalité de Groovy 4.

Scala

Meilleure prise en charge de Scala 3

À compte de sa version 2022.2, IntelliJ IDEA peut lire des types match à partir de fichiers .tasty, les analyser correctement, résoudre les variables de type, les utiliser comme arguments de type, prendre en charge des inspections et afficher les types sous forme de texte. En plus de cela, JetBrains a ajouté la prise en charge des extracteurs sans options, des lambdas de type et des types de fonction polymorphes, des intrinsèques du compilateur au niveau du type, ainsi que de ? en tant que caractère générique aux côtés de _ dans Scala 2.13.9 et 2.12.16. Le code copié-collé est également correctement mis en retrait.

Nouvelles inspections Scala

IntelliJ IDEA 2022.2 vous avertit maintenant lorsque le mot clé return est utilisé dans une fonction anonyme pour sauter hors de la fonction sans exécuter tout le code qu'elle contient. Il ne s'agit généralement pas d'une utilisation prévue et elle peut entraîner des coûts d'implémentation et de performances cachés. Un nouvel avertissement est déclenché lorsqu'un paramètre private ou class suit une variable superclass. En outre, une erreur s'affiche lorsque vous tentez de remplacer une variable d'une manière interdite par le compilateur. Ces nouveaux avertissements peuvent être configurés pour s'afficher si leurs options de compilateur respectives (-Xlint:nonlocal-return et -Xlint:private-shadow) sont présentes.

Division d'une liste d'éléments séparés par des virgules en lignes distinctes

Si une ligne de code est trop longue parce qu'elle contient une liste d'arguments ou d'éléments dans une collection, vous pouvez maintenant utiliser l'action Put arguments on separate lines du menu contextuel pour répartir rapidement la liste sur plusieurs lignes. L'inverse est également possible : si vous pensez qu'une liste de plusieurs lignes est suffisamment courte, vous pouvez utiliser l'action Put arguments on one line pour replacer tous les arguments sur une même ligne.

Mise en évidence basée sur le compilateur pour Scala

La mise en évidence basée sur le compilateur a été optimisée pour une meilleure utilisation des ressources. L'EDI respecte désormais les paramètres de mise en évidence des fichiers définis par l'utilisateur. La compilation est maintenant déclenchée dans moins de cas et utilise moins de threads en arrière-plan. La portée de la compilation a été réduite au module et à la portée source appropriés.

La suppression sécurisée est maintenant disponible pour les paramètres de type

L'action Safe Delete supprime un élément de la définition et de tous ses appels. Cette action fonctionne désormais pour les paramètres de type.

Profileur

Graphiques CPU et Heap Memory disponibles lors du profilage

JetBrains a mis à niveau IntelliJ Profiler pour faciliter la collecte des instantanés. À présent, lorsque vous commencez le profilage, les graphiques CPU et Heap Memory apparaissent à côté de la console. Vous pouvez par conséquent voir les performances de votre application tout en collectant de nombreux instantanés de cette même application au cours de la période de profilage souhaitée.


Prise en charge des fonctions inline de Kotlin

Les fonctions inline de Kotlin sont maintenant affichées parmi d'autres dans les sections Flame Graph, Call Tree et Method List, ce qui vous permet d'en consulter le temps CPU et de l'optimiser si nécessaire. Pour l'instant, la fonctionnalité ne fonctionne que pour l'option Start profiling, mais nous travaillons à l'ajouter prochainement au mode Attach.


Sécurité

Importation des certificats SSL approuvés

IntelliJ IDEA peut désormais vous aider à importer des certificats SSL approuvés à partir d'entrepôts système approuvés. Il utilisera automatiquement les certificats personnalisés spécifiques à votre environnement d'entreprise. Aucune autre action n'est requise de votre part, tout fonctionne automatiquement.

Autres améliorations

Frameworks et technologies

  • Prise en charge des nouveaux clients HTTP déclaratifs dans Spring 6
  • Saisie semi-automatique de l'URL et navigation pour les routes Spring Cloud Gateway
  • Améliorations de l'analyse du code pour les frameworks test et mock de microservices JVM
  • Débogueur natif GraalVM expérimental pour Java
  • Navigation améliorée entre Protobuf et les sources Java
  • Améliorations de l'analyse du code pour Spring Shell
  • Prise en charge améliorée des points de terminaison JAX-RS
  • Prise en charge des points de terminaison WebSocket dans le client HTTP
  • Prise en charge des points de terminaison GraphQL dans le client HTTP
  • Améliorations de l'interface et de l'expérience utilisateur du client HTTP
  • URL cliquables dans les valeurs des chaînes JSON, YAML et .properties
  • Prise en charge améliorée des annotations Bean Validation
  • Remaniement du plugin AWS CloudFormation
  • Prise en charge de Jakarta Persistence 3.1

Docker

  • Saisie semi-automatique de l'image Docker dans les tests avec Testcontainers
  • Mise en ligne de l'image Docker locale vers Minikube et d'autres connexions
  • Connexion automatique à Docker lors du redémarrage de l'EDI
  • Options de connexion Docker pour différents démons Docker

Kubernetes

  • Intégration entre Kubernetes et Telepresence

Outils d'assurance qualité

  • Amélioration de la structure de la page web dans l'éditeur des objets de la page
  • Navigation facile grâce aux icônes de la gouttière
  • Suggestion de nom pour les objets de la page à partir de l'URL
  • Déplacement automatique du curseur jusqu'à la fin des blocs de code
  • Création d'un nouvel objet de page à partir du menu contextuel

Outils de base de données

  • Possibilité d'importer plusieurs fichiers CSV
  • Nouvelle interface utilisateur pour la boîte de dialogue Modify
  • Modes de résolution Playground et Script

Développement web

  • Prise en charge des composants autonomes Angular
  • Prise en charge améliorée de Vue 3
  • Prise en charge de TypeScript 4.7

Nouveautés et téléchargement d'IntelliJ IDEA 2022.2