Nouveautés dans IntelliJ IDEA 2019.1

Thèmes

Personnalisation du thème

Nous avons de bonnes nouvelles pour vous ! IntelliJ IDEA 2019.1 est livré avec une prise en charge officielle des thèmes personnalisés ! Vous pouvez maintenant créer votre propre thème très facilement ! En savoir plus.

Nous avons créé de tout nouveaux thèmes pour vous aider à démarrer. Ajoutez immédiatement plus de couleur à votre IDE en téléchargeant l'un des nouveaux thèmes et en le sélectionnant dans les paramètres d'apparence ! En savoir plus.

Java

Prise en charge des expressions Switch dans Java 12 (en prévisualisation)

IntelliJ IDEA 2019.1 prend en charge la fonctionnalité (en prévisualisation) des expressions Switch dans Java 12 selon JEP 325.

Nous avons plusieurs nouvelles inspections et correctifs rapides à vous proposer pour vous aider à démarrer. L'IDE peut détecter toute instruction « switch » pouvant être remplacée par une instruction ou une expression « switch » améliorée, et il présentera un correctif rapide pour la conversion. L'IDE détectera également les branches en double dans « switch » et présentera un correctif rapide pour les fusionner. Tout ceci n'est que la partie visible de l'iceberg.

Pour en savoir plus

Améliorations de la refactorisation Extract variable

La refactorisation « Extract variable » a été considérablement améliorée et préserve encore mieux la sémantique. L'DE peut extraire une variable même à partir de l'initialiseur de champ, et la refactorisation « Extract variable » peut convertir un ternaire en « if » automatiquement lorsque la condition est importante. La condition est considérée comme importante si elle a une vérification null ou "instanceof".

Mise en évidence précise dans les expressions ternaires

IntelliJ IDEA 2019.1 garantit une mise en évidence plus précise des avertissements pour les expressions ternaires. Elle ne mettra en évidence que la condition dans laquelle une violation de nullabilité est détectée (alors que précédemment elle mettait en évidence l'ensemble de l'expression ternaire, même si la nullabilité n'était violée que dans une seule branche).

Grâce à cette nouvelle fonctionnalité, la mise en évidence est également plus précise dans les expressions switch.

Amélioration de l'analyse des opérations mathématiques

L'analyse des flux de données peut suivre le résultat d'opérations mathématiques et utilise ces informations pour vous avertir des conditions qui sont toujours vraies ou fausses. Nous avons amélioré l'analyse de nombreuses opérations mathématiques, notamment la multiplication, le reste et les opérations sur les bits.

Inférence de la pureté du constructeur à partir des sources

IntelliJ IDEA 2019.1 améliore sa prise en charge des annotations @Contract. Il peut maintenant déduire automatiquement la pureté des constructeurs à partir des sources.

Navigation depuis la trace de pile Java vers la position appropriée au sein d'une ligne

Lorsque vous cliquez sur la trace de pile Java, l'IDE tente de déterminer l'emplacement exact où placer le curseur sur la ligne. Auparavant, il vous aurait seulement amené à la première colonne de la ligne correspondante.

Détection de branches switch dupliquées

L'IDE peut désormais détecter les doublons de branches Switch et fournir un correctif rapide pour fusionner ces branches.

Gradle

Délégation d'actions build et run à Gradle définie par projet Gradle

Il est maintenant possible de déléguer des actions build et run à Gradle pour chaque projet individuellement. Configurez cette option pour chaque projet Gradle si votre projet IntelliJ IDEA se compose de plusieurs projets Gradle. Vous pouvez même configurer des valeurs différentes pour l'exécuteur de tests et le lanceur d'applications pour le même projet.

Dans IntelliJ IDEA 2019.1, par défaut, les actions build et run sont déléguées à Gradle pour les nouveaux projets Gradle.

Possibilité de sélectionner une tâche de test Gradle pour l'exécuter depuis l'éditeur

Avec IntelliJ IDEA 2019.1, nous avons amélioré la prise en charge des projets comportant plusieurs ensembles de sources Gradle dans lesquels l'exécution du test est déléguée à Gradle. Maintenant, l'IDE détermine correctement la tâche à exécuter lorsqu'un test spécifique a été lancé. Pour les choix comportant plusieurs options, l'IDE fournit une liste de toutes les tâches pouvant être exécutées pour le test sélectionné.

HotSwap fonctionne lorsque les actions build sont déléguées à Gradle ou à Maven

Désormais, lorsque vous déboguez avec les actions build déléguées à Gradle, HotSwap est déclenché et la création du build d'un projet recharge les classes.

HotSwap fonctionne également lorsque les actions build sont déléguées à Maven.

Maven

Résultat de build Maven envoyé à la fenêtre de l'outil Build

Par souci de commodité, tous les résultats de build Maven seront désormais affichés au même endroit : dans la fenêtre de l'outil Build. Il n'est plus nécessaire de consulter les fenêtres Run ou Messages. Vous pouvez également changer de vue pour afficher le résultat de la build sous forme de journal.

Diagrammes Maven améliorés

Les diagrammes Maven ont été améliorés et développés à l'aide de nouvelles options. Vous pouvez facilement trouver les conflits et les dépendances dupliquées grâce à 'Show Conflicts/Duplicates'. Pour afficher tous les chemins du nœud, cliquez sur 'Show Paths: Root -> Selection'.

Si vous ne devez afficher que les dépendances d'un nœud, sélectionnez 'Show Neighbors of Selected Nodes'. Vous pouvez également basculer le diagramme vers la vue Borderless.

Contrôle de version

Les actions Fixup et Squash ont été ajoutées au journal VCS

Invoquez les actions Fixup et Squash à partir du menu contextuel de l'onglet VCS Log. Ces actions créeront des commits avec les bons messages fixup! et squash ! messages commit.

Possibilité de sélectionner uniquement certains des fichiers directement à partir du journal VCS

Avec IntelliJ IDEA 2019.1, vous pouvez maintenant sélectionner des fichiers dans le commit depuis le journal VCS. Appelez simplement le menu contextuel et choisissez l'option "Apply Selected Changes".

Indication des commits entrants et sortants

Il est désormais possible de voir la disponibilité des commits entrants et sortants des différentes branches dans la fenêtre contextuelle Branches. Vous devez activer l'option 'Mark Branches that have incoming/outgoing commits in the Branches popup' (Marquer les branches comportant des commits entrants/sortants dans la fenêtre contextuelle Branches) dans Preferences/Settings | Version Control | Git.

Les fichiers mis de côté puis supprimés peuvent être restaurés

Vous pouvez maintenant afficher tous les fichiers récemment supprimés et restaurer tous les fichiers utiles mis de côté. Utilisez simplement le nouveau nœud "Recently Deleted" dans l'onglet Shelf de la fenêtre de l'outil VCS.

Nouvelle case à cocher "Uncheck all" pour les commits Git partiels

Pour plus de facilité, nous avons ajouté une nouvelle case à cocher "Uncheck all" dans le volet Diff de la boîte de dialogue Commit Changes, pour vous permettre de désélectionner tous les morceaux de code en une seule fois.

Mode d'affichage des initiales de l'auteur pour les annotations VCS

Vous pouvez maintenant afficher les initiales de l'auteur au lieu de son nom complet dans les annotations VCS. Cliquez avec le bouton droit de la souris sur l'onglet d'annotation et sélectionnez View | Names | Initials dans le menu contextuel.

Diff

Ajout de contenu de fichier à la fenêtre Blank Diff par glisser-déposer

Il est maintenant possible de copier et coller du texte dans une fenêtre Blank Diff (comparateur vierge) en y glissant un fichier.

Possibilité de changer de côté les fichiers comparés dans le comparateur

Vous pouvez maintenant permuter les côtés dans le comparateur lorsque vous utilisez les options Compare two files (Comparer deux fichiers), Compare with clipboard (Comparer avec le presse-papiers) ou Blank Diff (Comparateur vierge). Pour inverser l'affichage des fichiers à gauche et à droite, il suffit de sélectionner Swap Sides.

Swap Sides est également disponible pour la comparaison de dossiers.

Prévisualiser la différence par unité de caractère

Vous pouvez maintenant voir la différence par unité de caractère et pas seulement par unité de mot, comme c'était le cas auparavant dans le comparateur. Cela peut être très utile si votre code source contient des lignes de caractères de différents alphabets, par exemple, le japonais.

Fenêtre contextuelle Recent Locations

Découvrez le tout nouveau menu contextuel de navigation "Recent Locations", qui affiche tous les emplacements récemment visités et modifiés dans le code. Tous les emplacements que vous avez visités sont classés par ordre chronologique dans cette fenêtre contextuelle, avec le dernier emplacement visité en haut et les plus anciens emplacements visités en bas. Pour appeler la nouvelle fenêtre contextuelle « Recent Locations », appuyez sur Cmd-Maj-E / Ctrl-Maj-E.

Débogueur JVM

Prise en charge de 'synchronized', 'assert' et 'switch' dans l'évaluateur de débogage

L'évaluateur du débogueur JVM prend désormais en charge les instructions synchronisées, les expressions assert et les instructions Switch.

Sortie du bloc de code dans le débogueur de JVM

Il est maintenant possible de sortir du bloc actuel pendant que vous déboguez le projet Java. Cette nouvelle action Step Out est disponible dans le menu principal | Run.

Nouveau mouvement "Run to mouse pointer"

Si vous préférez utiliser la souris en mode débogage, vous pouvez survoler une ligne et l'IDE mettra cette ligne en surbrillance. Si vous cliquez ensuite sur un numéro de ligne, l'IDE lancera l'exécution jusqu'à l'emplacement du curseur.

Scala

Mise en évidence des for-comprehensions

IntelliJ IDEA 2019.1 offre une prise en charge améliorée des for-comprehensions, notamment la mise en surbrillance des erreurs, des conseils implicites et les actions GoTo / Quick Definition / Quick Documentation.

Find Usages pour les implicites

La fonction Find Usages peut maintenant être appelée sur des définitions implicites, les méthodes apply / unapply, les méthodes for-comprehension et les types Single Abstract Method (SAM).

Décompiler en Java

Maintenant, même si les fichiers Scala .class ne contiennent aucune source, vous pouvez les décompiler en Java.

Version Scalafmt personnalisable

Avec IntelliJ IDEA v2018.2, nous avions ajouté la prise en charge de l'outil de mise en forme scalafmt et, avec cette version, nous avons amélioré cette fonction. Non seulement IntelliJ IDEA vous permet d'utiliser une version personnalisée de Scalafmt, mais l'IDE peut désormais télécharger la version requise pour vous.

Extension HOCON séparée

Nous avons extrait la prise en charge d'HOCON dans un référentiel et un plug-in distincts, que vous pouvez installer et désinstaller à la demande.

Améliorations du surlignage des erreurs

Dans cette version, nous avons considérablement amélioré le surlignage des erreurs dans de nombreux domaines, notamment :

  • Unification partielle et unification de la variable du type en général.
  • Mise en évidence des constructeurs, appels à des constructeurs privés.
  • Plugin de compilateur Better-monadic-for : fonction `implicit0`.
  • Kind-projector : lambdas polymorphes au niveau de la valeur.
  • Simulacrum : constructeurs de type d'arité supérieure.

Groovy

Prise en charge de la syntaxe Lambda de style Java de Groovy 3.0

IntelliJ IDEA 2019.1 prend en charge la fonctionnalité expérimentale Groovy 3.0, la syntaxe Lambda de style Java. L'IDE propose une prise en charge des outils d'édition pour cela, notamment la saisie de code automatique, la mise en évidence et l'inférence de type. Les intentions et les inspections Groovy fonctionneront également correctement à l'intérieur du corps lambda. La mise en forme est également disponible pour les lambdas de style Java et vous pouvez également déboguer des lambdas de style Java.

Kotlin

Le plugin Kotlin fourni avec l'IDE a été mis à jour vers la version 1.3.21

Modèle en direct pour générer ‘main' sans paramètres

À partir de Kotlin 1.3, vous pouvez utiliser la fonction 'main' sans paramètre. En conséquence, avec cette version d'IntelliJ IDEA, vous pouvez créer la méthode main sans paramètres à l'aide du modèle live template 'main'.

Notez que désormais l'abréviation par défaut 'main' crée la nouvelle version de la méthode main. Si vous avez besoin de passer des arguments, utilisez l'abréviation 'maina'.

Améliorations de la conversion de chaîne

L'intention 'Convert concatenation to template' (convertir la concaténation en modèle) peut maintenant supprimer les appels inutiles à .toString () sur chaque paramètre.

Nouvelle intention pour la conversion de SAM en lambda d'un objet anonyme

Si vous avez besoin de convertir une construction utilisant des lambdas avec SAM en objet anonyme, utilisez cette nouvelle action d'intention pratique.

Action d'intention pour améliorer le code de coroutine

IntelliJ IDEA suggère d'ajouter un suffixe "Async" à une fonction renvoyant "Deferred" lorsque vous travaillez avec des coroutines.

JavaScript & TypeScript

Nouvelles intentions pour la déstructuration de JavaScript

IntelliJ IDEA 2019.1 est livré avec un ensemble de nouvelles refactorisations et intentions pour vous aider à vous initier à la déstructuration dans votre code JavaScript ou TypeScript.

Intention pour convertir une fonction avec Promise en async/await

Modifier une fonction qui renvoie une promesse avec les appels .then() et .catch() à une fonction async qui utilise la syntaxe async/await. Pour utiliser ce correctif rapide, appuyez sur Alt-Entrée sur le nom de la fonction et sélectionnez "Convert to async function". Cette option est disponible pour TypeScript, JavaScript et Flow.

Documentation mise à jour pour CSS et HTML

La documentation sur les propriétés CSS, les balises HTML et leurs attributs (F1 / Ctrl-Q) affiche maintenant une brève description de MDN, notamment sur la compatibilité avec les navigateurs les plus courants.

Console de débogage JavaScript améliorée

La console de débogage interactive dans les fenêtres des outils de débogage JavaScript et Node.js affiche désormais les objets sous forme d'arborescence et prend en charge le style des messages de journaux avec CSS et leur regroupement à l'aide de console.group() et console.groupEnd(). En outre, il vous permet de filtrer tous les types de messages des fichiers journaux.

Docker

Possibilité de déboguer à l'intérieur du conteneur Docker

Vous pouvez maintenant attacher le débogueur à une application Java s'exécutant dans un conteneur Docker. L'IDE permet désormais le débogage à l'intérieur de conteneurs construits à partir d'un fichier Docker ou créés à l'aide de Docker Compose (docker-compose.yml).

Kubernetes

Prise en charge de ressources externes

IntelliJ IDEA 2019.1 prend en charge les ressources externes, ce qui signifie que vous pouvez désormais charger une spécification de définition de ressource personnalisée à partir de sources externes. Actuellement, cela n'est possible qu'à partir de fichiers locaux. Pour ajouter des spécifications, allez dans Preferences/Settings | Languages & Frameworks | Kubernetes et ajoutez le chemin vers la spécification de définition de ressource personnalisée.

Refactorisation Chart rename dans les fichiers de ressources Helm

Il est maintenant possible d'utiliser la refactorisation Rename dans le graphique des fichiers de modèle de ressources Helm. Notez qu'il vous faut installer le plugin Go template pour activer la prise en charge des fichiers de modèles de ressources Helm.

Éditeur

Possibilité d'exporter vos paramètres de style de code au format JSON

Il est maintenant possible d'exporter tous vos paramètres de styles de code, même s'ils correspondent aux paramètres par défaut, au format JSON à partir d'IntelliJ IDEA. Cliquez sur Preferences/Settings | Editor | Code Style puis sélectionnez l'option ‘Export | IntelliJ IDEA code style JSON' dans le menu déroulant.

Possibilité d'activer les retours à la ligne en fonction du type de fichier

Les retours à la ligne peuvent être limités à certains types de fichiers grâce au champ Soft-wrap files dans Preferences/Settings | Editor | General.

La boîte de dialogue Keymap Configuration pour les touches Ctrl-Y sous Windows

Lors de votre première utilisation de la combinaison de touches Ctrl+Y sous Windows, la boîte de dialogue Keymap Configuration s'affiche pour vous demander d'attribuer le raccourci à "Delete Line" ou à "Redo".

Modèle de clavier Sublime Text

Nous avons poursuivi l'ajout de nouveaux modèles de clavier préconfigurés à IntelliJ IDEA et, avec la version 2019.1, nous avons ajouté la configuration de clavier Sublime Text. Cliquez sur Preferences /Settings | Keymap et choisissez Sublime Text dans la liste déroulante Keymap – c'est tout ! Vous pouvez maintenant utiliser les raccourcis Sublime Text dans IntelliJ IDEA.

Plugin VS Code Keymap

Vous pouvez maintenant utiliser le modèle de clavier VS Code préconfiguré, que nous avons mis à disposition sous forme d'une extension séparée ! Installez cette extension et sélectionnez le modèle de clavier VS Code dans Preferences /Settings | Keymap.

Prise en charge de la syntaxe Lambda de style Java de Groovy 3.0

IntelliJ IDEA 2019.1 prend en charge la fonctionnalité expérimentale Groovy 3.0, la syntaxe Lambda de style Java. L'IDE propose une prise en charge des outils d'édition pour cela, notamment la saisie de code automatique, la mise en évidence et l'inférence de type. Les intentions et les inspections Groovy fonctionneront également correctement à l'intérieur du corps lambda. La mise en forme est également disponible pour les lambdas de style Java et vous pouvez également déboguer des lambdas de style Java.

Spring Cloud Stream

Prise en charge de l'outil d'édition Spring Cloud Stream

IntelliJ IDEA fournit désormais une prise en charge des outils d'édition enrichis pour les projets Spring Cloud Stream, notamment la mise en évidence des éléments de syntaxe, les inspections, les correctifs rapides et la saisie automatique du code (y compris la saisie automatique du nom du classeur pour les valeurs et les références dans les fichiers application.properties ou application.yml).

Navigation entre producteurs et consommateurs liés

Vous pouvez maintenant naviguer entre des gestionnaires de messages consommateurs et producteurs liés à l'aide de l'icône de la gouttière. Gardez à l'esprit que Consommateurs et Producteurs doivent être liés dans les fichiers application.properties ou application.yml via la clé de configuration ‘spring.cloud.stream.bindings'.

Thymeleaf

Prise en charge améliorée de Thymeleaf

Vous pouvez maintenant accéder aux fragments de modèle référencés dans les attributs 'th: replace' et 'th: include'. La saisie de code automatique et les refactorisations Rename fonctionnent désormais également pour ces fragments inclus et remplacés.

Outils de base de données

Prise en charge de Greenplum, Vertica et Apache Hive

IntelliJ IDEA prend en charge ces nouvelles bases de données :

  • Greenplum – une base de données d'analytique basée sur PostgreSQL.
  • Vertica – stockage orienté colonne conçu pour gérer de gros volumes de données.
  • Apache Hive – un entrepôt de données construit sur Apache Hadoop pour permettre les requêtes et l'analyse des données.

Dialogue de connexion amélioré

Nous avons repensé l'apparence de la boîte de dialogue de connexion et ajouté plusieurs paramètres importants. Vous pouvez maintenant ajouter une requête SQL dans le champ 'startup script' qui sera exécuté chaque fois que vous établirez une connexion. Vous pouvez également définir un délai après lequel l'IDE se déconnectera automatiquement ou configurer un intervalle de temps pour exécuter une requête toutes les N secondes afin de maintenir la connexion active.