Nouveautés dans IntelliJ IDEA 2021.3

IntelliJ IDEA 2021.3 inaugure la prise en charge du développement à distance (en bêta) ainsi qu'un nouveau moyen de dépanner les problèmes de l'IDE grâce à l'action Repair IDE.... Cette version apporte également des améliorations au débogueur, l'inspection Constant conditions pour Kotlin, ainsi que d'autres nouveautés utiles. Les brèves descriptions suivantes détaillent ces fonctionnalités ainsi que d'autres fonctions importantes.

Principales mises à jour

Développement à distance

Développement à distance
Bêta
Ultimate

IntelliJ IDEA Ultimate prend désormais en charge une version bêta de notre workflow de développement à distance. Il vous permet de vous connecter à une machine distante exécutant le backend d'IntelliJ IDEA depuis n'importe où dans le monde. Tout le traitement se fait sur cette puissante machine distante, et vous pouvez travailler sur votre projet de manière aussi fluide que s'il se trouvait sur votre machine locale. Cette fonctionnalité peut être lancée à partir de l'écran de bienvenue d'IntelliJ IDEA ou de la nouvelle application JetBrains Gateway, disponible dans JetBrains Toolbox App.

Vous pouvez de plus créer, préparer, partager, reproduire, mettre en hibernation et gérer les environnements de développement avec Space, une plateforme unifiée pour l'ensemble du pipeline de développement logiciel.

Consultez cet article de blog pour en savoir plus.

Dépannage des problèmes de l'IDE

Dépannage des problèmes de l'IDE

IntelliJ IDEA 2021.3 apporte un nouveau moyen, plus rapide, de diagnostiquer et de résoudre les problèmes qui nuisent au bon fonctionnement de votre IDE. Si votre IDE ne fonctionne pas correctement, utilisez la nouvelle action Repair IDE… dans le menu File. Elle vous guidera dans une séquence d'étapes pour résoudre certains des problèmes les plus courants.

Inspection Constant conditions pour Kotlin

Inspection Constant conditions pour Kotlin

Nous avons ajouté la nouvelle inspection Constant conditions qui aide IntelliJ IDEA à signaler les conditions et valeurs non triviales qui sont statiquement connues pour être toujours vraies, fausses, nulles ou égales à zéro. Elle fonctionne de la même manière que l'inspection similaire pour Java, et prend en charge la plupart des vérifications associées à cette inspection. Vous trouverez cette nouvelle inspection dans Preferences/Settings | Editor | Inspections | Kotlin | Probable bugs.

Mises à jour du débogueur pour Kotlin

Smart step into

Lors du débogage d'une expression qui contient une chaîne d'appels de méthode et de lambdas, l'action Step Into fonctionne par défaut en tant que Smart Step Into. Elle met en évidence les méthodes et les lambdas accessibles. Pour l'utiliser, cliquez sur le bouton Step Into situé dans le volet supérieur de la fenêtre d'outil Debug ou utilisez le raccourci F7. L'IDE mettra alors en évidence les endroits où vous pouvez accéder au code, et vous pourrez sélectionner la ligne de votre choix en cliquant dessus.

Images de pile inline

Le débogueur peut désormais détecter les fonctions inline de Kotlin et afficher les appels de ces fonctions dans le volet de suivi de la pile. Vous pouvez naviguer vers ces appels, mais aussi inspecter et évaluer les variables dans chaque image.

Éditeur

Changement de la taille de police dans tous les onglets

Comme demandé, il est désormais possible de modifier la taille de la police dans tous les onglets ouverts simultanément avec ⌘+molette de la souris sous macOS ou Ctrl+molette de la souris sous Windows et Linux. Pour activer cette fonctionnalité, accédez à Preferences/ Settings | Editor | General, choisissez Change font size with Command + mouse wheel in, puis All editors. Si vous sélectionnez Active editor, le raccourci ne modifiera la taille de la police que dans le fichier sur lequel vous travaillez actuellement.

Amélioration de l'aperçu des intentions

IntelliJ IDEA possède une option utile qui vous permet de prévisualiser le résultat des actions d'intention et des correctifs rapides avant de les appliquer à votre code. Cette fonction est disponible dans le menu Intention actions. Pour activer l'aperçu, appuyez sur F1 sous macOS ou sur Ctrl+Q sous Windows et Linux.

Depuis son introduction dans la v2020.1, nous avons cherché à améliorer l'aperçu des intentions. Dans IntelliJ IDEA 2021.3, il fonctionne pour davantage d'actions d'intention et de correctifs rapides en Kotlin, et le message « Preview isn't available » a été remplacé par des descriptions HTML plus informatives des actions d'intention qui ne sont pas prises en charge. De plus, pour une action qui modifie plusieurs fichiers, l'aperçu affiche une partie d'un résultat possible. Ce résultat partiel devrait suffire à vous donner une idée générale des changements provoqués par l'action.

Amélioration de la prise en charge de Markdown

Amélioration de la prise en charge de Markdown

Dans IntelliJ IDEA 2021.3, il est facile de créer des tableaux. Appelez simplement le menu contextuel et sélectionnez Insert | Table. Et voilà ! Vous pouvez sélectionner la taille souhaitée en survolant avec la souris ou à l'aide du clavier.

La largeur des cellules du tableau sera ajustée au fur et à mesure de votre saisie. Vous pouvez modifier le contenu du tableau à l'aide des barres d'outils flottantes.

Pour créer une nouvelle ligne, vous pouvez utiliser Maj+Entrée, et Tab pour passer à la cellule suivante.

Accès rapide à toutes les actions des onglets

Accès rapide à toutes les actions des onglets

Il est encore plus simple de travailler avec les onglets de l'éditeur. Il suffit de cliquer sur les trois points en haut à droite du volet des onglets pour accéder à toutes les actions de ces onglets.

Expérience utilisateur

Nouvelle fenêtre d'outil Bookmarks

Nous inaugurons la nouvelle fenêtre d'outil Bookmarks, destinée à remplacer une instance similaire, Favorites. Dorénavant, vous pouvez simplement utiliser le raccourci F3 sous macOS ou F11 sous Windows et Linux pour marquer vos fichiers, dossiers et classes comme importants.

Lorsque vous ajoutez un signet, par défaut, IntelliJ IDEA le place dans le nœud portant le nom de votre projet dans la fenêtre d'outil Bookmarks. Chaque fois que vous ajoutez un nouveau signet, il s'affiche en haut de la liste à l'intérieur de ce nœud. Vous pouvez trier vos signets par type à l'aide de l'option Sort Groups and Bookmarks dans les paramètres de la fenêtre d'outil. Vous pouvez également créer de nouveaux nœuds et y glisser-déposer des éléments.

Possibilité de diviser la fenêtre d'outil Run

Possibilité de diviser la fenêtre d'outil Run

Dans la v2021.3, nous avons ajouté la possibilité de diviser la fenêtre d'outil Run en onglets. Vous pouvez ainsi exécuter plusieurs configurations simultanément et voir tous les résultats.

Pour diviser la fenêtre, faites glisser l'onglet que vous voulez voir vers la zone en surbrillance à l'intérieur de la fenêtre d'outil Run et déposez-le à cet endroit. Pour annuler cette division, cliquez avec le bouton droit de la souris sur le volet supérieur et sélectionnez Unsplit dans le menu contextuel.

Recherche d'actions basée sur l'apprentissage automatique dans Search Everywhere

Recherche d'actions basée sur l'apprentissage automatique dans Search Everywhere

Lors de la recherche d'actions dans IntelliJ IDEA, Search Everywhere fonctionne désormais par défaut grâce à l'apprentissage automatique. Nous avons élaboré une formule basée sur l'apprentissage automatique qui prend en compte :

  • L'historique d'utilisation des actions utilisateur.
  • La fréquence d'utilisation des actions sur l'ensemble de la base d'utilisateurs.
  • Les longueurs de la requête de recherche, du nom de l'action, etc.

Nous espérons que les modèles basés sur l'apprentissage automatique amélioreront la qualité de vos recherches et renverront des résultats adaptés à vos besoins spécifiques.

Amélioration de Find Usages

Amélioration de Find Usages

Lorsque vous recherchez les occurrences d'une implémentation de méthode via ⌥F7 sous macOS ou Alt+F7 sous Windows et Linux, l'IDE ne demande plus si vous souhaitez trouver les occurrences de la méthode de base dans une fenêtre contextuelle. Au lieu de cela, IntelliJ IDEA utilisera les méthodes de la hiérarchie de niveau supérieur comme cibles de votre recherche par défaut. Si vous souhaitez modifier ce comportement, décochez la case Search for base method usages dans les paramètres de la fenêtre d'outil Find Usages. Vous accédez à cette dernière en cliquant sur l'icône d'engrenage.

Remaniement de Show Usages

La boîte de dialogue Show Usages a reçu plusieurs nouvelles fonctionnalités utiles. Nous avons introduit l'aperçu du code source par occurrence trouvée. Vous pouvez l'afficher en cliquant sur l'icône carrée dans le volet supérieur de la barre d'outils. Une autre mise à jour vous permet de modifier la portée de votre recherche grâce à la nouvelle liste déroulante située à côté de l'icône Preview. De plus, la barre de titre de la fenêtre indique désormais le type d'élément de code que vous recherchez et le nombre d'occurrences trouvées.

Une autre mise à jour mineure mais très pratique vous permet de définir la largeur de la boîte de dialogue, que l'IDE conservera la prochaine fois que vous l'invoquerez.

Nœud Empty Project repensé et nouveau nœud Multi-Module Project

Dans la v2021.3, vous remarquerez quelques changements dans les nœuds de l'assistant de projet IntelliJ IDEA.

Vous pouvez maintenant sélectionner le nœud Empty Project pour créer un projet de base permettant de travailler avec des fichiers séparés de différents types et d'ajouter des classes Java et Kotlin. L'IDE configurera automatiquement le projet pour que vous puissiez le compiler si des classes Java ou Kotlin sont présentes.

Le nouveau nœud Multi-Module Project vous permet de créer un projet utilisant une structure complexe de A à Z. Une fois le projet créé, la boîte de dialogue Project Structure s'ouvre, et vous pouvez y ajouter des modules.

Mises à jour d'accessibilité

IntelliJ IDEA 2021.3 aborde certains problèmes d'accessibilité afin d'améliorer le confort du travail avec le lecteur d'écran. En réponse à vos demandes, nous avons désactivé la fenêtre contextuelle du widget de la fenêtre d'outil et celle de la documentation rapide, qui s'affichaient au survol de la souris. Nous avons également corrigé un problème concernant l'appel de la boîte de dialogue Go to Declaration.

Dans cette version, la prise en charge de l'accessibilité sur macOS a également été améliorée. Nous avons résolu plusieurs problèmes liés au focus de VoiceOver et rendu possible la détection des éléments d'une liste dans l'assistant New Project à l'aide d'un lecteur d'écran lors de la création de projets. Pour minimiser les distractions pendant que vous codez, nous avons réduit le nombre d'infobulles d'aide qui émettent des sons.

Java

Inspection pour le suivi des chaînes de caractères non sécurisées

IntelliJ IDEA vous avertit désormais des dangers tels que les failles d'injection SQL et XSS, les fuites de données sensibles et la désérialisation non sécurisée. Il vous empêche également de transmettre des données non sécurisées à des méthodes sécurisées. Ces avertissements supplémentaires sont lancés par notre nouvelle inspection Non-safe string is passed to a safe method.

Pour que cette inspection fonctionne, vous devez annoter les chaînes de caractères à l'aide de @Untainted (« sûre ») ou de @Tainted (« non sûre »). Ces annotations deviendront valides à l'ajout de la dépendance org.checkerframework.​checker.​tainting.​qual.

Autres nouvelles inspections Java

Nous avons ajouté deux inspections afin de vous aider à simplifier votre code. La première suggère de remplacer collect(toList()) par .toList(). Vous pouvez l'utiliser avec les versions 16 et supérieures de Java. Une autre inspection vous invite à remplacer collection.addAll(List.of("x")) par collection.add(x), et map.putAll(Map.of("a", "b")) par map.put("a", "b").

Refactorisations améliorées

Lorsque vous introduisez une variable locale en Java, les paramètres qui lui sont applicables n'apparaissent plus dans une fenêtre contextuelle (elle s'affichait auparavant par-dessus le code que vous étiez en train d'écrire). Au lieu de cela, vous pouvez accéder à ces options en cliquant sur l'icône d'engrenage située à côté d'une variable ou en utilisant le raccourci ⌥⇧O sous macOS ou Alt+Maj+O sous Windows.

Nous avons également amélioré la refactorisation Introduce parameter. Lorsque vous invoquez cette refactorisation, avec ⌥⌘P sous macOS ou Ctrl+Alt+P sous Windows et Linux, l'IDE vous demande où vous voulez remplacer les occurrences. Quand vous avez répondu, une icône en forme d'engrenage s'affiche. En cliquant dessus, vous accédez à d'autres paramètres pour cette refactorisation.

Possibilité de personnaliser le chemin d'accès aux classes dans Run/Debug Configurations

Possibilité de personnaliser le chemin d'accès aux classes dans Run/Debug Configurations

Il est parfois nécessaire de définir des chemins de classe personnalisés dans la boîte de dialogue Run/Debug Configurations, différents en fonction de la configuration. À partir de cette version, vous pouvez le faire en cliquant sur Modify options | Modify classpath.

Kotlin

Refactorisation Extract constant

Refactorisation Extract constant

Nous inaugurons une nouvelle refactorisation qui vous permet d'extraire des constantes en Kotlin. Pour l'utiliser, placez le curseur sur une chaîne de caractères et appuyez sur ⌥⌘C sous macOS ou Ctrl+Alt+C sous Windows et Linux.

Amélioration de l'inspection Possibly blocking call in non-blocking context

Amélioration de l'inspection Possibly blocking call in non-blocking context

L'inspection Possibly blocking call in non-blocking context vous avertit si vous utilisez une coroutine dans le mauvais contexte. Dans cette version, l'inspection fonctionne non seulement comme un avertissement mais aussi comme un correctif rapide tenant compte du contexte.

Nous y avons en outre apporté quelques autres améliorations. Cette inspection couvre désormais davantage de cas, et vous pouvez la personnaliser afin d'améliorer son fonctionnement dans le contexte particulier de votre environnement.

Indications inline pour les plages

Indications inline pour les plages

Il peut être difficile de comprendre les différentes façons de déclarer les plages prises en charge par Kotlin. Pour vous faciliter la tâche, nous avons ajouté des indications inline qui expliquent, à l'aide de signes mathématiques simples, la signification des mots ou des symboles dans ces plages. Si vous n'avez pas besoin de cette fonctionnalité, vous pouvez facilement la désactiver en cliquant droit sur une indication, puis en sélectionnant Disable 'Ranges' hints type.

Amélioration de l'assistant New Project

Amélioration de l'assistant New Project

Nous avons remanié la mise en page de l'assistant New Project en ajoutant des infobulles pour tous les champs. Elles vous permettent de comprendre facilement les informations requises. La section des modèles a également été actualisée. Nous avons supprimé certains modèles peu populaires et ajouté un nouveau modèle qui vous permet de créer une application web Compose.

Enfin, nous avons considérablement simplifié l'étape de configuration du projet. Il ne vous reste plus qu'à compléter les champs de base.

Scala

Améliorations de la prise en charge de Scala 3

Améliorations de la prise en charge de Scala 3

Cette version s'est principalement concentrée sur la prise en charge de Scala 3. Nous avons ajouté la mise en évidence, la navigation et la saisie semi-automatique pour les marqueurs end. La saisie semi-automatique concerne désormais également les mots-clés given, using et export, les mots clés logiciels et la syntaxe silencieuse. Le lecteur TASTy peut maintenant analyser les package objects, ainsi que la variance et les limites dans les types de genre supérieur. La mise en évidence des erreurs des analyseurs lexicaux et généraux est désormais beaucoup plus rapide. Un plus grand nombre d'inspections sont compatibles avec Scala 3. Nous avons amélioré la résolution des importations given et pris en charge les membres de niveau supérieur final et les abstract lazy val.

Option pour ouvrir les projets de compilation croisée Scala 3/Scala 2 en tant que Scala 2

Option pour ouvrir les projets de compilation croisée Scala 3/Scala 2 en tant que Scala 2

De nombreux projets qui doivent être compilés à la fois pour Scala 2 et Scala 3 sont modélisés en tant que projets Scala 3 avec compilation croisée pour Scala 2, même si, techniquement, il s'agit de projets Scala 2.

L'ouverture de tels projets en tant que Scala 2 permet à l'IDE d'utiliser la bonne version de Scala, et s'avère plus fiable.

Analyse des flux de données pour Scala

Analyse des flux de données pour Scala

Le plugin Scala prend désormais en charge l'analyse du flux de données, qui peut vous aider à détecter plus facilement les erreurs de programmation. Consultez notre récent article de blog pour en savoir plus.

Saisie semi-automatique pour les options du compilateur Scala

Saisie semi-automatique pour les options du compilateur Scala

Il existe une multitude d'options différentes dans le compilateur Scala. Très peu de programmeurs les connaissent par cœur. En outre, ces options varient en fonction de la version de Scala utilisée.

Vous pouvez maintenant compléter automatiquement les options applicables et même afficher la documentation rapide pour chacune d'entre elles.

Conseils d'incrustation pour les plages

Conseils d'incrustation pour les plages

Vous êtes-vous déjà demandé si la plage de 1 to 3 était inclusive ou exclusive ? Et qu'en est-il de 1 until 3 ? Ou Range(1, 3) ? Oubliez vos doutes, à partir de maintenant, la réponse est claire.

JavaScript

Nouvelle inspection pour la mise à jour des dépendances

Nouvelle inspection pour la mise à jour des dépendances
Ultimate

IntelliJ IDEA 2021.3 vous permet de mettre à jour vos paquets npm vers la dernière version directement depuis l'éditeur ! Ouvrez votre fichier package.json, placez le curseur sur la version du paquet que vous souhaitez mettre à jour, puis appuyez sur ⌥⏎ sous macOS ou Alt+Entrée sous Windows et Linux et sélectionnez Update ‘nom du paquet' to the latest version. Un correctif rapide s'affiche également lorsque vous survolez la version du paquet avec votre souris.

Amélioration de la saisie semi-automatique du code HTML

Amélioration de la saisie semi-automatique du code HTML
Ultimate

Nous avons amélioré le mode de fonctionnement de la saisie semi-automatique du code en HTML. Chaque fois que vous saisissez un nom de balise ou une abréviation dans l'éditeur, ou que vous invoquez la saisie semi-automatique du code, IntelliJ IDEA affiche immédiatement des suggestions pertinentes. Auparavant, il ne les montrait que si vous commenciez par saisir <. De plus, la saisie semi-automatique du code pour les références aux entités de caractères devrait mieux fonctionner à présent.

SSH

Prise en charge d'un proxy pour les connexions SSH

Cette nouvelle fonctionnalité très attendue vous permet de spécifier un serveur proxy HTTP ou SOCKS pour votre configuration SSH dans Preferences/Settings | Tools | SSH Configurations. Dans la nouvelle section HTTP/SOCKS Proxy, vous pouvez sélectionner le type de proxy, indiquer un nom d'hôte et un port et, si nécessaire, appliquer une authentification avec identifiant et mot de passe. Il est également possible de synchroniser vos paramètres de proxy SSH avec les paramètres généraux de l'IDE. Pour ce faire, cochez la case Use global IDE proxy settings.

Profileur

Comparaison des instantanés .jfr

Comparaison des instantanés .jfr
Ultimate

Vous pouvez maintenant vérifier facilement si les modifications que vous avez apportées ont fonctionné pour votre programme ou si elles ont provoqué une régression. Il suffit pour cela d'ouvrir deux instantanés à comparer dans la fenêtre d'outil Profiler. Dans l'instantané le plus récent, cliquez sur l'icône diff et sélectionnez l'instantané que vous utiliserez comme référence. L'IDE affichera le résultat sous la forme d'un graphique de flamme, d'une arborescence d'appels ou d'une liste de méthodes.

Prise en charge du profileur Async Profiler 2.0 sous Windows
Ultimate

Dans la v2021.2, nous avons ajouté la prise en charge d'Async Profiler 2.0 aux versions macOS et Linux d'IntelliJ IDEA. À partir de la version 2021.3, la version Windows prend également en charge Async Profiler 2.0. Cette prise en charge fluidifie l'expérience de profilage et améliore l'affichage des fonctions natives dans les instantanés.

Outils de build

Configurations Maven repensées

Configurations Maven repensées

Cette version prend quelques mesures pour améliorer nos configurations Run/Debug, et cette fois, les configurations Maven ont été considérablement remaniées. Les paramètres principaux sont tous regroupés sur un seul écran, tandis que des options supplémentaires sont disponibles via Modify options.

Prise en charge de .mvn/maven.config

Prise en charge de .mvn/maven.config

Si vous souhaitez configurer les paramètres Maven pour chaque projet dans le fichier .mvn/maven.config, accédez à Preferences/ Settings | Build, Execution, Deployment | Maven et cochez Use settings from .mvn/maven.config en bas de l'écran. N'oubliez pas que les paramètres de ce fichier remplaceront les paramètres standard de l'interface utilisateur de Maven.

Contrôle de version

Checkout and Rebase onto Current pour les branches distantes

Checkout and Rebase onto Current pour les branches distantes

Pour extraire la branche sélectionnée et la rebaser sur une branche actuellement extraite, vous pouvez utiliser l'action Checkout and Rebase onto Current, qui n'était auparavant disponible que pour les branches locales. Dans IntelliJ IDEA 2021.3, vous pouvez aussi l'utiliser pour les branches distantes.

Réorganisation des configurations VCS

Nous avons amélioré la structure des paramètres dans Preferences/Settings | Version Control pour y rendre certaines configurations critiques plus accessibles. Le nœud Version Control sert maintenant de point de départ pour la navigation, avec des liens vers tous les paramètres disponibles. Si vous accédez au nœud Git à partir de là, vous remarquerez que nous avons divisé tous les paramètres en sections correspondant aux processus les plus importants : Commit, Push, et Update. De plus, à l'intérieur de ces sections, les paramètres sont maintenant organisés de façon plus logique. Nous avons également ajouté un nœud Directory mappings distinct, et les opérations en arrière-plan sont maintenant activées par défaut. Le nœud Background n'existe plus.

Nouvelle fenêtre d'outil Changes

Nouvelle fenêtre d'outils Changes

À partir d'IntelliJ IDEA 2021.3, votre IDE affiche la différence entre les commits dans une fenêtre d'outil Changes séparée, située à gauche de l'éditeur.

Nouvelle action Push All up to Here

Nouvelle action Push All up to Here

Une nouvelle action vous permet de n'envoyer en push que les commits sur lesquels il n'y a plus de doute, et de garder le reste pour plus tard.

Elle envoie les commits en push jusqu'à celui que vous avez sélectionné dans l'onglet Log de la fenêtre d'outil Git. Pour l'utiliser, choisissez le commit auquel vous voulez vous arrêter, cliquez droit pour appeler le menu contextuel, et sélectionnez la nouvelle action Push All up to Here.

Alignement des modifications mises en évidence

Alignement des modifications mises en évidence

Une nouvelle option Align Changes Highlighting figure dans les paramètres de l'écran Diff que vous trouverez sous l'icône d'engrenage. Cette fonction facilite la lecture sur la vue Diff, surtout en cas de modifications complexes, car elle aligne les lignes inchangées de manière à les afficher face à face. Cela vous permet de voir plus clairement le code ajouté ou supprimé.

Terminal

Prise en charge de ConPTY sous Windows

Prise en charge de ConPTY sous Windows

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

Prise en charge de Typeahead

Prise en charge de Typeahead

Notre récente prise en charge de typeahead dans le terminal IntelliJ IDEA prédit les modifications de texte et les affiche instantanément en gris clair. Cette fonction vous permet de garder la même rapidité de saisie dans le terminal, que vous travailliez sur une machine locale ou distante.

Débogueur

Évaluer les expressions à partir du débogueur

Évaluer les expressions à partir du débogueur

Dans cette version, nous avons amélioré la détectabilité de la fonctionnalité Evaluate. Auparavant, lorsque les utilisateurs avaient besoin d'évaluer quelque chose, beaucoup avaient recours à des surveillances. Ils créaient simplement une surveillance, puis la supprimaient, au lieu d'utiliser la boîte de dialogue Evaluate. Le champ Evaluate est désormais accessible depuis la fenêtre d'outil Debug, et devient donc le moyen le plus pratique et le plus évident d'évaluer des expressions.

Frameworks et technologies

Requêtes gRPC dans le client HTTP
Ultimate

Le client HTTP d'IntelliJ IDEA offre une prise en charge de base des requêtes gRPC. Lorsque vous saisissez le mot clé gRPC pour débuter votre requête, le client HTTP vous propose la saisie semi-automatique du code. Ainsi, votre IDE affiche des invites pour tous les services gRPC connus, les méthodes unaires et de flux serveur d'un serveur particulier et, surtout, les champs du corps de la requête.

Une autre nouvelle fonctionnalité vous permet de générer une requête gRPC dans le client HTTP. Pour cela, il suffit de cliquer sur les icônes de la gouttière dans vos fichiers .proto.

Réponses binaires dans le client HTTP

Réponses binaires dans le client HTTP
Ultimate

Le client HTTP peut détecter les images dans les réponses et en afficher un aperçu dans la console de réponse.

Prise en charge des flux de texte et des flux JSON dans le client HTTP
Ultimate

Lorsque vous testez des applications de streaming dans IntelliJ IDEA, vous n'avez plus besoin d'attendre la fin d'un flux : le client HTTP affiche la sortie à la volée. C'est désormais possible, car nous avons ajouté la prise en charge des types de contenu suivants : text/event-stream, application/stream+JSON et application/x-ndjson. Une notification vous est également envoyée à la fin d'un flux.

Redirection de la sortie vers un fichier ou un répertoire personnalisé dans le client HTTP
Ultimate

Dans le client HTTP, il est possible de rediriger la sortie vers un fichier ou un répertoire personnalisé. Vous pouvez utiliser deux opérateurs pour les redirections forcées et logicielles :

  • L'opérateur >> crée toujours un nouveau fichier, en ajoutant un suffixe -n au nom du fichier si le nom demandé existe déjà.
  • L'opérateur >>! réécrit le fichier s'il existe déjà.

Prise en charge des identificateurs de requêtes HTTP
Ultimate

Vous pouvez ajouter des identificateurs de requête soit sous forme de commentaires via @nom, soit sous forme de texte dans le premier séparateur (###). L'IDE comprend ces identificateurs et vous permet d'invoquer des requêtes via ces derniers à partir de la fenêtre d'outil Services, ainsi qu'à partir des boîtes de dialogue Run Configuration, Run Anything et Search Everywhere.

Prise en charge du langage de modèle Qute

Prise en charge du langage de modèle Qute
Ultimate

Qute fait désormais partie des langages de modèles pris en charge. Cela signifie qu'IntelliJ IDEA fournit la mise en évidence du code, la saisie semi-automatique et d'autres fonctions utiles pour vous aider à développer des modèles pour votre projet Quarkus.

Résolution et saisie semi-automatique des références à partir des fichiers de spécifications secondaires

Résolution et saisie semi-automatique des références à partir des fichiers de spécifications secondaires
Ultimate

IntelliJ IDEA peut détecter si vos spécifications OpenAPI sont situées dans plusieurs fichiers et liées via $ref, et fournir la saisie semi-automatique.

Nouvelles annotations Blocking et Non-blocking pour le code réactif

Nouvelles annotations Blocking et Non-blocking pour le code réactif
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. Une fois que vous avez ajouté « org.jetbrains:annotations:23.0.0 » aux dépendances de votre projet, vous pouvez annoter vos classes et méthodes à l'aide de @Blocking ou @NonBlocking. Cela permettra à l'IDE de détecter les appels bloquants dans des contextes non bloquants, comme les coroutines Kotlin ou le code réactif avec Project Reactor, RxJava et SmallRye Mutiny.

De plus, l'IDE prend automatiquement en charge les annotations correspondantes de Micronaut et SmallRye Mutiny.

Amélioration de la détection du code bloquant dans Spring et Java EE

Amélioration de la détection du code bloquant dans Spring et Java EE
Ultimate

IntelliJ IDEA détecte désormais davantage de cas de code bloquant dans Spring et Java EE, notamment JpaRepository et CrudRepository de Spring Data, RestTemplate et JdbcTemplate, les méthodes de l'interface Spring Feign, les appels JPA EntityManager, ainsi que toutes les méthodes et classes annotées @Transactional.

Remaniement des configurations Spring Boot

Remaniement des configurations Spring Boot
Ultimate

Nous avons remanié la boîte de dialogue Run/Debug Configurations pour les projets Spring Boot. La logique est similaire aux configurations précédemment mises à jour pour Java. La nouvelle interface centralise les principaux paramètres sur un seul écran et vous permet de configurer le reste des paramètres via Modify Options.

Amélioration de la prise en charge des fichiers d'application Spring Boot

Amélioration de la prise en charge des fichiers d'application Spring Boot
Ultimate

IntelliJ IDEA propose désormais la saisie semi-automatique du code dans les fichiers de configuration supplémentaires (fichiers de propriétés ou .yaml) lorsqu'une clé spring.config.import est utilisée pour référencer un autre fichier. Il est également plus efficace pour mettre en place des fichiers de configuration Spring Boot complexes et personnalisés.

Références à application.yaml

Références à application.yaml
Ultimate

Pour les projets Spring Boot, l'IDE prend désormais en charge la saisie semi-automatique du code et la recherche d'occurrences (Find Usages) pour les références à application.yaml à partir de @Value, @Scheduled et Environment.getProperty().

Meilleure prise en charge pour @NamedQuery utilisé à partir des référentiels Spring Data

Meilleure prise en charge pour @NamedQuery utilisé à partir des référentiels Spring Data
Ultimate

La saisie semi-automatique de méthode de requête fonctionne désormais pour les requêtes déclarées à l'aide de @NamedQuery dans les projets Spring Data JPA. Vous pouvez également naviguer vers la définition d'une @NamedQuery via l'icône de la gouttière.

Prise en charge de Kotlin pour Java EE CDI
Ultimate

À partir de la v2021.3, vous pouvez utiliser toutes les inspections CDI dans les fichiers Kotlin. Ces inspections ne fonctionnaient auparavant que dans les fichiers Java. De plus, nous avons ajouté des icônes de gouttière CDI dans les fichiers Kotlin. Elles vous permettent de naviguer facilement vers les points d'injection ou les candidats à l'injection, les bean makers, les méthodes de rejet et les événements.

Diagrammes de classes UML améliorés
Ultimate

Nous avons accéléré tous les processus pour les diagrammes de classe UML, en Java comme en Kotlin. L'ouverture des diagrammes, le passage d'une catégorie à l'autre, le zoom et la fonction annuler/rétablir prennent désormais beaucoup moins de temps. Les autres changements notables incluent une nouvelle grille, la mise en évidence des membres et une fenêtre contextuelle d'aperçu de la documentation rapide.

Si vous devez contrôler l'apparence du diagramme, utilisez le menu contextuel et sélectionnez Appearance.

Outils de base de données

Agrégation dans l'éditeur de données

Agrégation dans l'éditeur de données
Ultimate

Nous avons ajouté la possibilité d'afficher une vue Aggregate pour une plage de cellules. Cette fonctionnalité très attendue vous permettra de gérer vos données et vous épargnera l'écriture de requêtes supplémentaires ! Cela rend l'éditeur de données encore plus puissant et simple d'utilisation, et le rapproche encore un peu plus d'Excel et des feuilles de calcul Google.

Sélectionnez simplement la plage de cellules pour laquelle vous voulez afficher la vue, puis cliquez droit et sélectionnez Show Aggregate View.

Mappage de la source de données DDL et de la source réelle

Mappage de la source de données DDL et de la source réelle
Ultimate

Cette version est une suite logique de la précédente, qui a inauguré la possibilité de générer une source de données DDL basée sur une source réelle. Désormais, ce workflow est totalement pris en charge. Vous pouvez :

  • Générer une source de données DDL à partir d'une source réelle : voir l'annonce 2021.2.
  • Mapper une source de données DDL et une source réelle.
  • Comparer et synchroniser ces sources dans les deux sens.

Pour rappel, une source de données DDL est une source de données virtuelle dont le schéma repose sur un ensemble de scripts SQL. Le stockage de ces fichiers dans le système de contrôle de version (VCS) est une méthode possible pour conserver votre base de données dans ce système.

Les propriétés de configuration des données comportent un nouvel onglet, DDL mappings, permettant de définir quelle source de données réelle est mappée à chaque source de données DDL.

Mappage de la source de données DDL et de la source réelle

Nouvelle fenêtre de comparaison des bases de données
Ultimate

La nouvelle fenêtre Database Diff est disponible à partir du menu contextuel. L'interface utilisateur est plus conviviale et le volet de droite indique clairement le résultat que vous obtiendrez après la synchronisation.

La légende du panneau droit donne la signification des couleurs pour votre résultat potentiel :

  • Vert et italique : l'objet sera créé.
  • Gris : l'objet sera supprimé.
  • Bleu : l'objet sera modifié.

L'onglet Script preview affiche le script du résultat. Vous pouvez l'ouvrir dans la nouvelle console ou l'exécuter à partir de cette boîte de dialogue. Le résultat de ce script applique les modifications pour faire de la base de données de droite (cible) une copie de la base de données de gauche (source).

Outre l'onglet Script preview, le panneau inférieur comporte deux autres onglets : Object Properties Diff et DDL Diff. Ils indiquent les différences entre les versions particulières de l'objet dans les bases de données source et cible.

Niveaux d'introspection

Niveaux d'introspection
Oracle
Ultimate

Nous inaugurons trois niveaux d'introspection pour les bases de données Oracle :

  • Niveau 1 : noms de tous les objets pris en charge et leurs signatures, à l'exception des noms de colonnes d'index et des variables de paquets privés
  • Niveau 2 : tout, à l'exception du code source
  • Niveau 3 : tout

L'introspection est la plus rapide au niveau 1 et la plus lente au niveau 3. Utilisez le menu contextuel pour basculer entre les niveaux d'introspection selon vos besoins.

Vous pouvez définir le niveau d'introspection soit pour un schéma, soit pour l'ensemble de la base de données. Les schémas héritent de leur niveau d'introspection de la base de données, mais ils peuvent également être configurés de façon indépendante.

Le niveau d'introspection est représenté par les icônes en forme de pilule, près de l'icône de source de données. Plus la pilule est remplie, plus le niveau d'introspection est élevé. Une icône bleue signifie que le niveau d'introspection est configuré directement, tandis qu'une icône grise signifie qu'il est hérité.

Outils d'assurance qualité

Éditeur des objets de la page

Modifier les objets des pages Selenium

Une mise à jour importante a permis de prendre en charge l'automatisation des tests d'interface utilisateur dans Selenium. L'éditeur visuel vous permet désormais de maintenir les classes des objets des pages existantes. Auparavant, il était seulement possible de générer de nouvelles classes d'objets de page. Vous êtes désormais en mesure de mettre à jour les classes d'objets de pages existantes directement, sans éditeur visuel. IntelliJ IDEA détectera automatiquement les classes d'objets de la page et les indiquera par une icône correspondante dans le volet de la gouttière. En cliquant sur ce volet de gouttière, vous pouvez ouvrir un éditeur visuel et y récupérer de nouveaux éléments à ajouter à la classe d'objets de la page.

Données de test

Données de test

Le dernier plugin du Test Automation Kit a reçu quelques correctifs de bugs mineurs, mais également une fonctionnalité utile dans les paramètres de générateur de données multiples. Vous pouvez maintenant modifier le préfixe, le suffixe et le délimiteur avec une définition multiligne.

Gestion des tests

Hiérarchie d'exécution des tests

Nous avons implémenté la prise en charge des tests à plusieurs niveaux. Vous pouvez désormais créer plusieurs cycles de test enfants pour des domaines de fonctionnalité ou des types de test spécifiques. Chaque exécution de test parente regroupe les résultats des exécutions de test enfants et fournit des statistiques récapitulatives de toutes les exécutions de test enfants associées.

Étapes partagées

Si vous choisissez de gérer les cas de test dans des fichiers Markdown à l'aide de notre fonctionnalité « Local TMS », vous pourrez facilement déclarer des étapes de test et les partager entre plusieurs cas de test. Les étapes partagées sont déclarées comme un cas de test ordinaire avec un identifiant numérique unique. Vous pouvez faire référence à ce cas de test dans d'autres cas de test. IntelliJ IDEA substituera les étapes du cas de test référencé lors de la génération des aperçus, des exécutions de test ou des modèles de code pour un test automatique.

Kubernetes

Amélioration de la mise en forme pour les modèles Helm

Amélioration de la mise en forme pour les modèles Helm
Ultimate

Vous pouvez mettre en forme vos modèles Helm avec la certitude que le résultat sera correct. Nous avons corrigé tous les problèmes associés, et la mise en forme est maintenant beaucoup plus fiable. Pour voir l'amélioration, accédez à Code | Reformat code ou Reformat file ou appuyez sur ⌥⌘L sous macOS ou Ctrl+Alt+L sous Windows et Linux.

Mise en évidence des éléments de blocs dans les modèles Helm

Mise en évidence des éléments de blocs dans les modèles Helm
Ultimate

Nous avons ajouté la mise en évidence d'éléments de bloc tels que if, else, range, with et define dans les modèles Helm. Il est ainsi beaucoup plus facile de travailler avec du code contenant des inclusions de modèles Go.

Injection de langage dans les ressources ConfigMap

Injection de langage dans les ressources ConfigMap
Ultimate

IntelliJ IDEA prend désormais en charge les injections de code automatiques de divers langages dans les ressources ConfigMap pour les clés comportant des extensions telles que .yaml, .json, .properties, etc. Les morceaux de code injectés sont mis en évidence en vert, et il est possible d'utiliser notre fonctionnalité d'analyse du code à l'intérieur de ceux-ci, avec entre autres la saisie semi-automatique du code et la mise en évidence des erreurs.

Possibilité de répéter la dernière commande

Possibilité de répéter la dernière commande
Ultimate

Il est maintenant possible de réexécuter votre dernière commande helm depuis la fenêtre d'outil Services. Il vous suffit de cliquer sur la nouvelle icône en haut à droite. Par exemple, vous exécutez la commande helm lint. Après son exécution, vous pouvez cliquer sur l'icône pour l'exécuter une nouvelle fois.

Docker

Connexion à Docker depuis Minikube

Connexion à Docker depuis Minikube

Il est maintenant facile de se connecter à un daemon Docker à partir de Minikube. Dans Preferences/ Settings | Build, Execution, Deployment, cochez la case d'option Minikube. Dans le champ adjacent, l'IDE affichera automatiquement les environnements docker-daemon de Minikube détectés que vous pouvez utiliser pour vous connecter.

Processus de connexion facilité

Processus de connexion facilité

La connexion à Docker s'est accélérée, car il suffit de double-cliquer sur le nœud nécessaire ou d'utiliser un nouveau raccourci : ⌘Entrée sous macOS ou Ctrl+Entrée sous Windows et Linux. Vous pouvez aussi appeler l'action Start container à l'aide de ce raccourci.

Nouvelle action Clean up

Nouvelle action Clean up

The new Clean up action works just like the prune terminal command. Lorsque vous cliquez droit sur le nœud Networks, Volumes, Containers, ou Images, vous pouvez sélectionner Clean up : l'IDE supprimera les objets inutilisés. Vous pouvez également appliquer cette action au nœud racine de Docker pour éliminer tous les objets inutiles d'un seul clic.

Prise en charge de Compose V2

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

Pour activer cette option, accédez à Preferences/Settings | Build, Execution, Deployment | Docker | Tools et cochez la case Use Compose V2.

Calques d'image

Calques d'image

Image layers allow you to track all the commands that are applied to images. Pour y accéder, sélectionnez une image et accédez à l'onglet Layers. À partir de cet onglet, lorsque vous choisissez une commande, vous pouvez cliquer sur le lien Analyze image for more information sur le côté droit de l'écran pour obtenir des informations plus détaillées sur les modifications appliquées à chaque calque.

Enregistrement du conteneur en tant qu'image

Enregistrement du conteneur en tant qu'image

Si vous disposez d'un conteneur préconfiguré que vous souhaitez utiliser ultérieurement, vous pouvez l'enregistrer localement en tant qu'image et l'envoyer en push pour continuer à l'utiliser à distance lorsque vous en avez besoin. Accédez à la fenêtre d'outil Services, cliquez droit sur le conteneur, et sélectionnez Image | Save as a new Image.

Mises à jour du registre

Nous avons apporté plusieurs modifications au registre Docker. First off, the IDE now displays all available registries in separate nodes in the Services tool window. Auparavant, la prise en charge était limitée au registre Docker Hub. Dans la version 2021.3, nous avons ajouté la prise en charge de GitLab (registry.gitlab.com) et JetBrains Space (identifiant.registry.jetbrains.space).

Vous pouvez développer les nœuds de registre dans la fenêtre d'outil Services, sélectionner l'image nécessaire et l'extraire vers l'emplacement souhaité. Si vous avez plusieurs connexions Docker, l'IDE vous demandera d'où extraire l'image. Il est possible d'envoyer en push des images vers n'importe quel registre ajouté, et dans la boîte de dialogue Push, l'IDE détecte automatiquement les espaces de noms disponibles dans le registre donné et vous permet d'en sélectionner un dans la liste déroulante.

Dernier ajout, mais non des moindres, vous pouvez utiliser la saisie semi-automatique pour les images des registres JetBrains Space, GitLab et Docker Hub

Prise en charge de Podman

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

Une fois Podman installé et configuré sur votre système d'exploitation, vous pouvez vous y connecter via Preferences/Settings | Build, Execution, Deployment | Docker en cochant la case d'option TCP socket et en remplissant les champs requis.

Intégration de Space

Créer des requêtes de fusion et des révisions de code à partir de l'IDE

Vous pouvez désormais créer des requêtes de fusion et des révisions de code pour vos projets dans Space. Vous avez deux possibilités :

  • Cliquez sur l'icône + de la barre d'outils supérieure de la fenêtre d'outil Code Reviews et sélectionnez l'action souhaitée.
  • Dans l'onglet Log de la fenêtre d'outil Git, cliquez droit sur le commit dans la liste et choisissez Space | Create merge request ou Create code review.

Pour en savoir plus, consultez cet article du blog ou reportez-vous aux gifs ci-dessous.

Signaler les fichiers comme vus

Signaler les fichiers comme vus

Tous les fichiers que vous n'avez pas encore révisés lors d'une révision de code resteront signalés par des points bleus jusqu'à ce que vous les ouvriez. De cette façon, vous ne raterez aucune modification critique. Si vous voulez revenir aux modifications plus tard, vous pouvez sélectionner Mark as Not Viewed dans le menu contextuel. Cette fonctionnalité fonctionne également pour les requêtes d'extraction GitHub.

Autre