Nouveautés d'IntelliJ IDEA 2022.2

IntelliJ IDEA 2022.2 comprend 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'IDE 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

Développement à distance

Améliorations pour le développement à distance
Bêta
Ultimate

Nous avons 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. Apprenez-en plus dans cet article de blog.

Passage de JBR 11 à JBR 17

Passage de JBR 11 à JBR 17

As of v2022.2, all IntelliJ IDEA updates come with JetBrains Runtime 17 (JBR 17), which brings a significant IDE performance improvement, better security, enhanced rendering performance on macOS thanks to the Metal API, and more. Consultez cet article de blog pour en savoir plus.

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

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 clqsses @ConfigurationProperties avec la nouvelle syntaxe de liaison de constructeur sans @ConstructorBinding explicite. Pensez à mettre à jour l'IDE ou à basculer vos projets vers cette nouvelle version si vous voulez essayer Spring 6.

Expérience utilisateur

Run Current File

Run Current File

Nous avons 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'IDE 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

Action Merge All Project Windows sur macOS

Pour macOS, nous avons 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

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

Pour plus de clarté et de facilité d'utilisation, la barre de progression Cloning repository s'affiche désormais sur l'écran d'accueil de l'IDE et directement dans la liste des projets.

Nouveau champ Description pour les signets mnémoniques

Nouveau champ Description pour les signets mnémoniques

La boîte de dialogue Add Mnemonic Bookmark comprend maintenant un champ Description qui permet d'ajouter une description facultative à votre signet.

Éditeur

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

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, allez dans 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

Accès facilité à Code Completion Settings

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

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

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

Lorsqu'un fichier est explicitement associé avec du texte brut par erreur, IntelliJ IDEA vous avertit de l'association de type de fichier erronée et vous suggère de la réinitialiser directement dans l'éditeur, au lieu de passer par Settings / Preferences.

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

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 avec le raccourci Alt+Insertion ou en faisant un clic droit. L'IDE insère un sommaire à la position du curseur et l'entoure des balises <!-- TOC -->. Vous pouvez ainsi le modifier ultérieurement en appelant le même menu.

Java

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

Nous avons implémenté une série de modifications dans les inspections Java pour vous aider à 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'IDE peut désormais vous avertir lorsque les variables de schéma masquent des champs et détecte les appels Objects.requireNonNullElse sans signification. Plusieurs inspections Java liées à JUnit ont été converties en inspections JVM et sont donc maintenant disponibles aussi en Kotlin. En outre, la saisie semi-automatique du code suggère maintenant des littéraux .class, le cas échéant.

Pour en savoir plus sur les autres améliorations concernant Java, consultez cet article de blog.

Kotlin

Prise en charge des fonctionnalités Kotlin 1.7.0

Prise en charge des fonctionnalités Kotlin de 1.7.0

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

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

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

Nous avons intégré le débogueur Kotlin avec la fonctionnalité Data Flow Analysis, de sorte qu'il affiche dorénavant des conseils de DFA indiquant 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 constructeur natif d'IntelliJ IDEA. Les builds locaux 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 locaux et de CI qui résultaient auparavant de la discordance entre la version du compilateur intégré et la version définie dans le fichier de build du projet. Apprenez-en plus dans cet article de blog.

Amélioration des performances de l'IDE pour Kotlin

Notre travail d'optimisation des index a eu un impact positif sur la vitesse et les performances de l'IDE concernant la mise en évidence du code, la saisie semi-automatique et Find Usages.

Scala

Meilleure prise en charge de Scala 3

Meilleure prise en charge de Scala 3

À partir 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. On top of that, we’ve added support for Option-less extractors , type lambdas and polymorphic function types , type-level compiler intrinsics , and ? as a wildcard together with _ in Scala 2.13.9 and 2.12.16. Le code copié-collé est également correctement mis en retrait.

Nouvelles inspections Scala

Nouvelles inspections Scala

Dorénavant, IntelliJ IDEA 2022.2 vous avertit lorsque le mot clé return est utilisé dans une fonction anonyme pour quitter 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

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

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'IDE 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

Safe Delete 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.

Groovy

Prise en charge de GINQ

Prise en charge de GINQ

We’ve added support for Groovy-Integrated Queries (GINQ). L'IDE 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.

Sécurité

Importation de certificats SSL approuvés

IntelliJ IDEA peut désormais vous aider à importer des certificats SSL approuvés à partir de magasins de confiance. Il utilisera automatiquement les certificats personnalisés spécifiques à l'environnement de l'entreprise. Aucune autre action n'est requise de votre part.

Profileur

Graphiques CPU et Heap Memory disponibles lors du profilage

Graphiques CPU et Heap Memory disponibles lors du profilage
Ultimate

Nous avons mis à niveau IntelliJ Profiler pour faciliter la collecte des instantanés. À présent, lorsque vous commencez le profilage, les graphiques en direct 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

Prise en charge des fonctions inline de Kotlin
Ultimate

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. Cette fonctionnalité est actuellement compatible avec Linux et macOS, et n'est disponible que pour l'option Start profiling. Nous travaillons à la rendre compatible avec Windows, et nous l'ajouterons également prochainement au mode Attach.

Frameworks et technologies

Prise en charge des nouveaux clients HTTP déclaratifs dans Spring 6
Ultimate

Spring Framework 6 vous permet de définir un client HTTP en tant qu'interface Java avec des méthodes annotées. IntelliJ IDEA 2022.2 fournit la saisie semi-automatique des URL, la navigation et l'intégration avec le client HTTP pour ces interfaces.

Saisie semi-automatique de l'URL et navigation pour les routes Spring Cloud Gateway
Ultimate

IntelliJ IDEA Ultimate propose désormais la saisie semi-automatique des URL, ainsi que les fonctionnalités Search Everywhere et Find Usages pour les URL Spring Cloud Gateway. Vous pouvez facilement générer une requête HTTP ou trouver toutes les routes de passerelle à l'aide de la fenêtre d'outil Endpoints.

Améliorations de l'analyse du code pour les frameworks test et mock de microservices JVM
Ultimate

IntelliJ IDEA 2022.2 met automatiquement en évidence les corps JSON/XML dans les tests à l'aide d'API Java courantes telles que Spring WebTestClient, RestAssured, WireMock et MockServer. Ces fragments de données sont donc plus lisibles et plus faciles à modifier. Vous pouvez également utiliser la saisie semi-automatique d'URL et la navigation vers une déclaration à ces emplacements dans vos tests.

Débogueur natif GraalVM expérimental pour Java
Ultimate

IntelliJ IDEA 2022.2 peut désormais vous aider à déboguer les binaires d'images natifs GraalVM. Vous pouvez joindre le débogueur à n'importe quel exécutable basé sur GraalVM ou démarrer votre application avec le débogueur joint. La configuration d'exécution correspondante sera créée automatiquement pour les projets Maven/Gradle. Cette intégration est expérimentale et nécessite le build de développement de GraalVM et l'installation de ce plugin.

Navigation améliorée entre Protobuf et les sources Java

Navigation améliorée entre Protobuf et les sources Java
Ultimate

Vous pouvez désormais naviguer facilement vers le code généré à partir des fichiers .proto et inversement. Assurez-vous que les plugins gRPC et Protocol Buffers sont activés.

Améliorations de l'analyse du code pour Spring Shell

Améliorations de l'analyse du code pour Spring Shell
Ultimate

IntelliJ IDEA 2022.2 reconnaît désormais les commandes CLI déclarées avec la bibliothèque Spring Shell et vérifie leur exactitude.

Prise en charge améliorée des points de terminaison JAX-RS
Ultimate

IntelliJ IDEA prend désormais correctement en charge les schémas d'URL de service web communs JAX-RS déclarés comme @ApplicationPath et les sous-ressources dans la saisie semi-automatique des URL, la navigation et Find Usages.

Prise en charge des points de terminaison WebSocket dans le client HTTP
Ultimate

IntelliJ IDEA Ultimate 2022.2 prend en charge les connexions WebSocket, ce qui vous permet de créer des requêtes, ainsi que d'envoyer et de recevoir des messages.

Prise en charge des points de terminaison GraphQL dans le client HTTP

Prise en charge des points de terminaison GraphQL dans le client HTTP
Ultimate

IntelliJ IDEA Ultimate peut désormais envoyer des requêtes GraphQL sur les protocoles HTTP et WebSocket. Pour http:// et https://, des requêtes HTTP simples sont utilisées, tandis que ws:// et wss:// sont délégués à l'exécuteur WebSocket.

Améliorations de l'interface et de l'expérience utilisateur du client HTTP
Ultimate

Nous avons implémenté quelques améliorations à l'interface et à l'expérience utilisateur du client HTTP. Tout d'abord, nous avons ajouté un moyen pratique de sélectionner un environnement d'exécution à l'aide d'une icône dans la gouttière. Pour l'activer, sélectionnez l'option Select Environment Before Run dans la liste déroulante Run with. Ensuite, nous avons amélioré la vue Response en ajoutant une barre de progression qui vous permet de suivre le processus de téléchargement.

URL cliquables dans les valeurs des chaînes JSON, YAML et .properties

URL cliquables dans les valeurs des chaînes JSON, YAML et .properties
Ultimate

Les fichiers JSON, YAML et .properties comportent désormais des références web insérées automatiquement dans les valeurs commençant par http:// et https://. Vous pouvez ouvrir ces liens dans un navigateur web d'un clic, ou générer une requête dans le client HTTP à partir du menu Context Actions (Alt+Entrée).

Prise en charge améliorée des annotations Bean Validation

Prise en charge améliorée des annotations Bean Validation
Ultimate

IntelliJ IDEA 2022.2 fournit désormais des références et prend en charge le pliage pour les attributs de message dans les annotations Bean Validation en Java et Kotlin. Vous pouvez utiliser la saisie semi-automatique pour les clés de message ou accéder à leurs déclarations dans les fichiers i18n ValidationMessages.properties.

Remaniement du plugin AWS CloudFormation

Remaniement du plugin AWS CloudFormation
Ultimate

Nous avons remanié le plugin AWS CloudFormation pour mettre à jour les schémas de métadonnées et améliorer la saisie semi-automatique des propriétés. Vous pouvez installer la version mise à jour du plugin à partir de JetBrains Marketplace.

Prise en charge de Jakarta Persistence 3.1
Ultimate

IntelliJ IDEA now supports all of the features in Jakarta Persistence 3.1, including the new JPQL syntax, functions, and types, and it provides language highlighting and code completion for them.

Docker

Saisie semi-automatique de l'image Docker dans les tests avec Testcontainers

Saisie semi-automatique de l'image Docker dans les tests avec Testcontainers

IntelliJ IDEA 2022.2 introduces image completion for the Testcontainers API where you can find all available Docker images and their versions. Cliquez sur la référence pour ouvrir l'URL Docker Hub correspondante dans votre navigateur web.

Mise en ligne de l'image Docker locale vers Minikube et d'autres connexions

Mise en ligne de l'image Docker locale vers Minikube et d'autres connexions

Il est maintenant possible de copier facilement des images d'un démon Docker vers un autre à l'aide de la nouvelle action Copy Docker Image, qui enregistre l'image dans un fichier, puis la transmet à la connexion choisie en mode push.

Connexion automatique à Docker lors du redémarrage de l'IDE

Connexion automatique à Docker lors du redémarrage de l'IDE

Désormais, IntelliJ IDEA 2022.2 se connecte automatiquement à Docker après un redémarrage. Ce nouveau paramètre est activé par défaut mais peut être désactivé dans Settings / Preferences | Advanced Settings | Docker.

Options de connexion Docker pour différents démons Docker

À compter de la version 2022.2, IntelliJ IDEA s'intègre avec Colima et Rancher afin de prendre en charge davantage d'options pour établir des connexions à un démon Docker.

Kubernetes

Intégration entre Kubernetes et Telepresence

Intégration entre Kubernetes et Telepresence
Ultimate

The Kubernetes plugin for IntelliJ IDEA 2022.2 provides integration with the Telepresence tool in order to intercept HTTP requests from services in the Kubernetes cluster and route them to your service running locally. Cela vous permet de déboguer ces services plus facilement et d'exécuter uniquement le sous-ensemble de services requis localement.

Outils d'assurance qualité

Amélioration de la structure de la page web dans l'éditeur des objets de la page

Amélioration de la structure de la page web dans l'éditeur des objets de la page

L'interface utilisateur de la structure des pages web a été considérablement améliorée. Vous pouvez désormais lire confortablement les parties les plus importantes, telles que le nom de la balise, l'identifiant et les classes CSS appliquées, grâce à la mise en évidence du format de texte.

Navigation facile grâce aux icônes de la gouttière

Navigation facile grâce aux icônes de la gouttière

Vous pouvez désormais facilement revenir à un élément de page d'un simple clic sur son icône dans la gouttière.

Suggestion de nom pour les objets de la page à partir de l'URL

Suggestion de nom pour les objets de la page à partir de l'URL

Lors de la création d'un fichier d'objet de page, l'assistant propose désormais un champ URL facultatif. Si l'adresse web est incluse, l'assistant suggère un nom de fichier d'objet de page à partir de l'adresse du lien. En outre, l'URL insérée est automatiquement chargée à l'ouverture de l'éditeur Page Object Editor.

Déplacement automatique du curseur jusqu'à la fin des blocs de code

Déplacement automatique du curseur jusqu'à la fin des blocs de code

Lors de l'ajout de nouveaux éléments de page à votre code, le curseur se déplace désormais automatiquement à la fin du bloc de code ajouté. Vous pouvez donc le parcourir facilement et poursuivre simplement vos modifications.

Création d'un nouvel objet de page à partir du menu contextuel

Création d'un nouvel objet de page à partir du menu contextuel

Chaque fois que vous tapez une nouvelle classe d'objet de page non référencée alors que vous travaillez sur une classe existante, vous pouvez corriger l'avertissement de code non résolu en naviguant simplement jusqu'au menu contextuel de l'avertissement pour créer un nouvel objet de page.

Outils de base de données

Possibilité d'importer plusieurs fichiers CSV

Possibilité d'importer plusieurs fichiers CSV
Ultimate

Pour la version 2022.2, nous avons amélioré le processus d'importation de fichiers. Vous pouvez maintenant sélectionner plusieurs fichiers CSV pour tous les importer en même temps.

Nouvelle interface utilisateur pour la boîte de dialogue Modify

Nouvelle interface utilisateur pour la boîte de dialogue Modify
Ultimate

La nouvelle interface utilisateur de la boîte de dialogue Modify est devenue l'option par défaut. À partir de la version 2022.2, tous les objets enfants d'une table peuvent être ajoutés et modifiés à l'aide de cette nouvelle interface utilisateur. L'ancienne interface utilisateur reste disponible dans le menu contextuel.

En savoir plus

Modes de résolution Playground et Script

Modes de résolution Playground et Script
Ultimate

Pour améliorer la précision de la résolution des objets de base de données dans les scripts SQL, nous avons implémenté deux modes de résolution : Playground et Script. La première approche est recommandée si votre fichier se compose simplement d'un ensemble de requêtes non connectées, indépendantes les unes des autres et sans séquence particulière. La deuxième conviendra mieux si vos requêtes ont une logique séquentielle et doivent être exécutées en tant que script unique.

En savoir plus

Développement web

Prise en charge des composants autonomes Angular

Prise en charge des composants autonomes Angular
Ultimate

Nous avons activement travaillé sur la prise en charge d'Angular 14 dans IntelliJ IDEA 2022.2. L'ajout le plus important apporté dans cette version est la prise en charge des composants Angular autonomes. IntelliJ IDEA reconnaît désormais correctement les composants, directives et canaux signalés par standalone: true.

Prise en charge améliorée de Vue 3

Prise en charge améliorée de Vue 3
Ultimate

IntelliJ IDEA 2022.2 améliore la prise en charge de Vue 3. Par exemple, il comprend maintenant la réduction de type (narrowing) dans les directives v-if/else. En outre, la prise en charge de Pinia, la solution de gestion d'état recommandée par l'équipe Vue, qui fonctionne comme un référentiel global, a été améliorée. La saisie semi-automatique et la résolution fonctionnent désormais dans Vue avec la bibliothèque Pinia et vous pouvez accéder aux propriétés d'état et aux actions définies dans le référentiel.

Prise en charge de TypeScript 4.7

Prise en charge de TypeScript 4.7
Ultimate

IntelliJ IDEA 2022.2 est fourni avec TypeScript 4.7 et prend en charge de nouvelles fonctionnalités de langage comme moduleSuffixes et ESM dans Node.js. Il insère automatiquement l'extension .js dans l'instruction d'importation si le module est défini sur node16 ou nodenext dans votre fichier tsconfig.json. De plus, l'IDE prend en charge le champ typesVersions dans les fichiers package.json.

Autre

  • Le plugin Android intégré à IntelliJ IDEA vous apporte désormais toutes les fonctionnalités d'Android Studio Chipmunk, y compris la prise en charge du plugin Android Gradle Plugin (AGP) 7.2.x.