Dans les dernières  capacités d’IntelliJ IDEA et des IDE basés sur IntelliJ promises par la feuille de route 2020 de JetBrains, on trouve aussi bien de l'apprentissage machine (ML) pour la complétion de code que de l'édition collaborative.

Selon l’éditeur, les capacités supplémentaires de complétion de code basées sur l'apprentissage machine feraient un meilleur usage du contexte pour ses suggestions de complétion et pourrait générer des variantes de complétion qui vont au-delà du seul identifiant, l’objectif étant de réaliser une complétion totale. JetBrains investit beaucoup dans la complétion de code, mais il faudra sans doute un certain temps avant que les capacités de complétion de code totale arrivent dans le produit.

JetBrains a déjà exploré l’usage de l'apprentissage machine pour la complétion de code, et ses produits profitent déjà de certains résultats de cette recherche. Désormais, IntelliJ utilise l'apprentissage machine pour améliorer le classement des variantes de complétion, et les plug-ins de langages marquent chaque variante de complétion produite avec des attributs différents. IntelliJ utilise également l'apprentissage machine pour déterminer quels attributs contribuent au classement des éléments, de sorte que les éléments les plus pertinents se trouvent en tête de liste.

Plusieurs autre améliorations

En plus de l'apprentissage machine basé sur la complétion de code, JetBrains a annoncé une multitude d'améliorations pour IntellIj en 2020, sous réserve de modifications. Parmi celles-ci, on peut signaler :

- Le support de l'édition collaborative. Les utilisateurs pourront connecter leurs IDE à un système primaire sous forme de « clients légers » sans avoir besoin pas d'accès direct au code source. Chaque utilisateur aura son propre état, avec un ensemble de fichiers ouverts, une position d'insertion, une liste de variantes de complétion et d'autres capacités.

- L’utilisation étendue de l’IDE comme éditeur de texte léger. Un mode dédié pour l'édition de fichiers non liés à un projet est également en cours de développement.

- Deux modes d'intégration avec Git. Les développeurs pourront basculer d'une nouvelle interface utilisateur qui prendrait en charge la zone de transition (« stagging area ») mais pas les listes de modifications, à l'interface actuelle basée sur les listes de modifications. La combinaison des deux ne semble pas possible.

- Un paramétrage et une configuration plus faciles de l'environnement et de l’intégration. Le système se chargera d'installer Git, le kit de développement Java, etc.

- Une intégration plus poussée dans le cloud.

- Un modèle de projet repensé pour supprimer les limitations actuelles, comme le manque de support pour le mélange arbitraire de projets de différents types. Parmi les avantages, JetBrain cite notamment une ouverture plus rapide des projets et une synchronisation plus fluide avec Maven et Gradle.

- Une amélioration des performances d'indexation et une indexation moins disruptive. Les utilisateurs seront également avertis en cas d’anomalies d'indexation.

- Une refonte du modèle de threads de verrouillage en lecture/écriture pour résoudre le problème des gels de l'interface utilisateur.

- Plus de remaniements du code détectables pendant l'auto-détection. Par exemple, il sera possible de détecter les changements dans la déclaration d'une méthode et d'ajuster l’usage en conséquence.

- Support du chargement et du déchargement de la majorité des plug-ins sans redémarrage. L'objectif est d'avoir un IDE qui se dimensionne pour chaque projet. Par exemple, les projets Spring ne seront chargés qu'avec des plug-ins utilisant Spring.

- L'ajout des capacités Code Vision pour l'affichage d'informations contextuelles riches dans l'éditeur de code. Cette capacité a déjà été intégrée dans l’IDE Rider de JetBrain pour .NET.

- La localisation des IDE basés sur IntelliJ sur les marchés asiatiques, avec un support initial pour le chinois simplifié. Le support pour le coréen et le japonais suivra.