Coderules
Ce n'est pas un secret que JetBrains travaille sur un nouveau système de types depuis quelques années. Le chemin pour y parvenir n'a pas été facile ou direct, mais JetBrains a enfin quelque chose à vous montrer. Notons toutefois que Coderules est encore en version bêta, c'est pourquoi il n'est pas intégré à MPS. Comme il s'agit d'un sous-système complet, JetBrains a préparé un cours en ligne pour vous guider dans ses principes fondamentaux.
Prise en charge expérimentale du langage Kotlin
Une implémentation expérimentale de Kotlin est maintenant intégrée à MPS. Bien que la plupart des éléments de structure du langage (et leur génération de texte) soient pris en charge, cette dernière reste incomplète.
Action Hide revision dans les annotations
La nouvelle action Hide revision vous permet d'exclure une révision du résultat de l'annotation sur place et d'afficher le résultat à la fois dans l'éditeur et dans la gouttière. Les révisions exclues peuvent être restaurées avec l'action opposée Restore Hidden Revisions.
Optimisation des résultats de l'action Annotate revision
L'action Annotate dans MPS n'est pas aussi rapide que l'opération git blame pour les fichiers texte puisque le résultat de l'annotation est construit pour les modèles. Les actions Annotate revision et Annotate previous revision utilisent le même algorithme pour construire le résultat que l'action Annotate, et étaient donc également lentes. Le résultat des actions Annotate revision et Annotate previous revision peut être construit instantanément à l'aide du résultat des actions Annotate initiales.
Boîte de dialogue des détails dans les racines de fusion
L'action Show Details a été introduite pour apporter plus de détails sur les branches pendant une fusion. L'action est accessible depuis la fenêtre Merge revision.
Descriptions des modifications plus courtes dans des infobulles de la boîte de dialogue Diff
JetBrains inaugure une nouvelle action qui permet de modifier la description des changements dans les infobulles de la boîte de dialogue Diff. La description est plus courte et plus lisible.
Amélioration des infobulles de l'éditeur
Lorsque vous cliquez sur les liens dans les infobulles, la fenêtre contextuelle des infobulles reste maintenant dans la fenêtre principale de l'application. Vous pouvez également faire défiler le texte d'une infobulle si elle en contient beaucoup.
Nouvel algorithme de diff dans le processus de fusion
Le nouvel algorithme a été développé pour trouver les changements conflictuels, non conflictuels et symétriques pour les modifications de nouveaux types. JetBrains inaugure un mécanisme d'interface utilisateur pour basculer entre les algorithmes avec et sans suivi du mouvement des nœuds dans la fenêtre Merge.
Détection des modifications d'encapsulation et de désencapsulation dans la boîte de dialogue Diff
Même s'il était auparavant possible de détecter les insertions, les suppressions et les déplacements à l'intérieur des modifications d'encapsulation ou de désencapsulation, ces modifications elles-mêmes n'étaient pas détectées. Il est désormais possible de détecter des modifications d'encapsulation et de désencapsulation imbriquées.
Réorganisation des paramètres VCS
Les paramètres VCS ont été réorganisés pour faciliter leur découverte et leur utilisation. Dans Preferences/Settings | Version Control, vous trouverez maintenant une liste des paramètres disponibles pour configurer votre VCS. JetBrains a en outre ajouté un nœud Directory mappings distinct, et les opérations en arrière-plan sont maintenant activées par défaut.
Si vous accédez au nœud Git à partir de là, vous remarquerez que JetBrains a divisé les paramètres en sections correspondant aux processus les plus importants : Commit, Push, et Update.
Génération de fermetures compatibles dans les lambdas Java
Les fermetures MPS sont maintenant générées en expressions lambda Java si elles sont compatibles. Parmi les incompatibilités, citons l'utilisation des éléments suivants :
- Opérations yield
- Classes abstraites « fonctionnelles »
- Annotations
- Variables locales en conflit avec la portée du parent
Mappage d'étiquettes pour les tuples
JetBrains inaugure une fonctionnalité expérimentale permettant d'utiliser une paire de nœuds comme clé pour le mappage, node<>, node<> --> node<>. Elle est utile dans les situations où vous devez prendre en charge deux concepts sources. Si vous souhaitez l'essayer, elle s'utilise de la même manière que les étiquettes avec un seul nœud clé.
Accès à toutes les valeurs de deux mappages de clés dans les générateurs
En plus de la fonctionnalité de mappage d'étiquettes pour les tuples, JetBrains prend maintenant en charge une requête pour accéder à tous les mappages connus pour deux clés données, genContext.get output list LABEL for (node1, node2).
Consignation du temps passé à résoudre les références dynamique dans le suivi des performances
En raison des nombreuses évaluations de la portée, la résolution des références dynamiques ralentit souvent la transformation de modèle à modèle. Le suivi des performances dissimule cette information vitale sous un titre « restoring references » plutôt vague. Désormais, le temps passé à restaurer les références dynamiques est consigné séparément du temps passé à restaurer les références régulières ou statiques.
Améliorations de la migration des projets
JetBrains a simplifié le processus de création des migrations de projets dans cette version. Il vous suffit de créer une solution de plugin, d'écrire la racine du plugin de migration et d'application, et d'inclure cette solution de plugin avec le script de la build.
Améliorations de la tâche Ant <migrate>
La tâche Ant <migrate> prend désormais en charge plusieurs spécifications de projets et peut migrer plusieurs projets à la fois. Vous pouvez utiliser les éléments imbriqués <project path="”/> ou le <dirset> normal d'Ant pour énumérer les emplacements de projets pour la tâche.
Checkout and Rebase onto Current pour les branches distantes
L'action Checkout and Rebase onto Current vous permet d'extraire la branche sélectionnée et de la rebaser sur une branche actuellement extraite. Auparavant, cela n'était possible que pour les branches locales, mais dans MPS 2021.3, vous pouvez également l'utiliser pour les branches distantes.
Nouvelle fenêtre d'outil Changes
Dans MPS 2021.3, l'EDI montre la différence entre les commits dans une fenêtre d'outils Changes séparée, située sur la gauche de l'éditeur.
Nouvelle action Push All up to Here
Cette fonctionnalité vous permet de n'envoyer en push que les commits sur lesquels vous n'avez pas de doute et de laisser le reste pour plus tard. Pour l'utiliser, choisissez le commit auquel vous voulez vous arrêter, faites un clic droit pour appeler le menu contextuel, et sélectionnez la nouvelle action Push All up to Here.
La liste des nouveautés et améliorations présentées ici n'est pas exhaustive. Vous trouverez plus de détails dans les notes de version de MPS 2021.3.
Nouveautés et téléchargement de MPS 2021.3