MPS 2020.1 est disponible !

Publié le par Delphine Massenhove

Nous avons le plaisir de vous informer que la première version majeure de MPS pour cette année est disponible. Cette version apporte plusieurs nouvelles fonctionnalités et des améliorations de différents sous-systèmes. Découvrez ce que nous avons préparé pour vous.


TÉLÉCHARGER MPS 2020.1

 

Utilisez des séparateurs différents selon la position dans la liste

Lors de la modification de nœuds avec la cardinalité (0, n) ou (1, n), vous aviez la possibilité de fournir un séparateur personnalisé entre les valeurs en implémentant une fonction de requête de séparateur. Cette fonctionnalité étend cette capacité en passant plus d’arguments vers la fonction de requête (à savoir prevNode et nextNode). Ces derniers permettent de fournir un séparateur personnalisé pour chaque paire de valeurs. Dans la capture d’écran suivante, “and” et “, ” sont les séparateurs. Regarder une démo.

séparateur

Light patterns

Un pattern language permet de définir des modèles de structure et de faire correspondre des nœuds avec ces derniers. Il utilise des éditeurs de concept courants qui donnent au modèle une apparence similaire aux nœuds qu’il accepte. Mais pour certains éditeurs complexes qui ne correspondent pas exactement à la structure du concept, il peut être plus confortable d’utiliser des light patterns (constructeurs de modèles) qui décrivent la structure requise littéralement. Consultez la documentation pour en savoir plus ou regardez une démo.

lightPatterns

Saisie par dessus un texte existant

La possibilité de saisir par dessus du texte existant est une nouvelle fonctionnalité de l’éditeur projectionnel, qui le rapproche un peu d’un éditeur de texte. Lors de la saisie dans une cellule de texte, si le caractère que vous venez de saisir était déjà présent à la position du curseur, le curseur se déplacera comme si vous veniez de remplacer le caractère existant. Cette fonctionnalité n’est déclenchée que si la frappe ne peut pas être traitée correctement et serait autrement ignorée (par exemple dans les cellules constantes) ou rendrait le contenu de la cellule invalide. Regarder une démo.

Cette fonctionnalité est activée par défaut et vous pouvez la désactiver dans l’onglet Settings / Editor / General.

Infobulles

L’extension d’éditeur de la plateforme Tooltips from mbeddr a été ajoutée à MPS. La migration est fournie pour les langages mbeddr. Regarder une démo.

tooltips1586943437422

Améliorations de BaseLanguage inspirées de Java

BaseLanguage inclut désormais try with resources, catch multiple exceptions, l’inférence de type pour les variables locales, et les méthodes d’interface par défaut et privées. Pour assurer la compatibilité avec les processus de build qui nécessitent un niveau de langage Java spécifique, chaque solution peut être configurée pour interdire les fonctionnalités de langage non compatibles avec ce niveau.

À l’exception de la fonctionnalité local variable type inference, qui nécessite j.m.baseLanguage.varVariable, ces fonctionnalités ne nécessitent aucune autre importation de langage. Voir le guide de migration ou regarder une démo.

Élimination des extensions de langage inutiles

MPS exigeait auparavant une dépendance ‘extends’ entre les langages lorsqu’un éditeur de langage fournissait des composants d’éditeur pour les concepts d’un autre langage. Ces dépendances ne reflètent pas nécessairement la relation entre les langages et entraînent parfois un traitement exhaustif de la hiérarchie des langages. Prenez par exemple INamedConcept de j.m.lang.core. Tous les langages MPS étendent j.m.lang.core. Par conséquent, les aspects de l’éditeur de tous les langages disponibles sont consultés dès que le concept d’éditeur INamedConcept est utilisé.

Dans la version 2020.1, le générateur détecte les extensions de l’éditeur pour d’autres langages et génère le code respectif qui manifeste la dépendance de façon explicite, afin que les concepteurs de langage n’aient pas à se soucier de ce type particulier de dépendance entre les langages. La dépendance ‘extends’ entre les modules de langage n’est plus nécessaire pour activer les extensions de l’éditeur.

Commentaires Javadoc dans les modèles de stub Java

Les bibliothèques Java sont utilisées dans le monde de MPS à l’aide de modèles de stub Java. Ces modèles sont construits à partir des informations .class et n’ont donc pas de documentation comme javadocs.

Dans la version 2020.1, un nouveau mécanisme permet de spécifier un zip contenant les sources d’une bibliothèque en plus de la bibliothèque .jar, et MPS est capable d’extraire le javadoc des sources pour le présenter en parallèle des informations extraites des fichiers de classe. Cette fonctionnalité est notamment pratique lorsque l’on utilise une bibliothèque Java à partir de MPS et que l’on doit accéder au javadoc de la bibliothèque. Il est beaucoup plus facile de naviguer vers le code concerné et sa documentation directement dans MPS que de basculer vers un emplacement externe pour ensuite lancer une recherche et lire le code. C’est encore plus important pour MPS lui-même, car des parties essentielles de son API sont fournies sous forme de stubs Java. Regarder une démo.

Détection d’erreurs pour les éditeurs défectueux

Si le code dans l’aspect éditeur d’un langage lève une exception, l’éditeur par défaut s’affiche pour une cellule correspondante dans un modèle écrit dans le langage. À partir de la version 2020.1, si ce type de cellule rompue est ouvert dans l’éditeur, une erreur s’affiche dans la fenêtre d’outils Messages. Il est possible d’obtenir la trace de la pile à partir de l’erreur et d’accéder à la cellule problématique. Regarder une démo.

Commentaires multilignes en BaseLanguage

La fonctionnalité de SingleLineComment a été améliorée et le nouveau concept MultiLineComment a été introduit dans BaseLanguage pour prendre en charge les commentaires délimités par les symboles /* … */ de la même manière que le fait Java.Voir le guide de migration ou regarder une démo.

Menus Transform/substitute : fusion des menus nommés et des menus par défaut

Il s’agit d’une amélioration qui simplifie les menus Transformation et Substitution en supprimant les concepts personnalisés des menus d’éditeur nommé (SubstituteMenu_Named) et par défaut (SubstituteMenu_Default). Les deux concepts ont été fusionnés dans leur parent (SubstituteMenu). Le type de menu est maintenant sélectionné dans l’éditeur de menus. La même refactorisation a été appliquée aux menus Transformation. Voir le guide de migration ou regarder une démo.

 

Autres améliorations

Police de caractères JetBrains Mono par défaut

MPS utilise maintenant la toute nouvelle police JetBrains Mono (Preferences / Settings | Editor | Font) par défaut. Découvrez tous les détails sur notre nouvelle police de caractères spécialement conçue pour les développeurs sur notre site web.

La Marketplace arrive dans MPS

La JetBrains Plugin Marketplace est désormais disponible dans MPS. Cela ouvre de nouvelles opportunités car vous pouvez commercialiser vos plugins.

Interface de Commit non modale

Afin de simplifier le flux de commits, nous avons développé une nouvelle fenêtre Commit tool pour gérer toutes les tâches liées aux commits. Elle offre davantage d’espace pour la liste des fichiers modifiés et le diff, et vous permet d’ajouter des modifications à un commit quand elles sont prêtes, de composer un message de commit de manière itérative et de choisir quelle modification échelonnée va dans quel commit.

Cette interface n’est pas activée par défaut. Si vous voulez l’essayer, sélectionnez “Use non-modal commit interface” dans Preferences/Settings | Version Control | Commit.

Mode Zen

Ce nouveau mode vous aide à vous concentrer sur votre code en combinant les modes Plein écran et Sans distraction. Pour essayer le mode Zen, cliquez sur View | Appearance | Enter Zen Mode.

Installer Git depuis l’EDI

Vous n’avez plus besoin de préinstaller Git manuellement . Lorsque vous clonez un référentiel Git, l’EDI recherche l’exécutable Git sur votre machine et vous propose de le télécharger et de le configurer pour vous si l’EDI ne peut pas le localiser.

Chemin d’accès au fichier de configuration

Veuillez noter que dans MPS 2020.1, le chemin d’accès aux fichiers de configuration a changé. En savoir plus.

 

N’oubliez pas de consulter notre Guide de migration. Nous avons également résolu une longue liste de bugs qui nous avaient été signalés par la communauté. Si vous trouvez de nouveaux bugs ou pensez à des fonctionnalités utiles que nous pourrions ajouter, merci de nous en faire part dans notre outil de suivi.

Faites attention à vous et passez une bonne journée !

L’Équipe JetBrains MPS

The Drive to Develop

Auteur de l’article original en anglais : Oscar Rodriguez

blog_footer_bw@2x