MPS 2020.1 améliore l'éditeur et BaseLanguage et apporte le langage Light patterns, Javadocs pour les modèles de stub et plusieurs nouvelles fonctionnalités !
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.
Un Pattern language permet de définir des modèles de structure et de faire correspondre les nœuds avec ces derniers. Il utilise des éditeurs de concept courants qui donnent au schéma 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 schémas) qui décrivent littéralement la structure requise.
L'extension d'éditeur de la plateforme Tooltips from mbeddr a été ajoutée à MPS. Une migration sera également prévue pour le langage mbeddr.
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 avec leur parent (SubstituteMenu). Le type de menu est maintenant sélectionné dans l'éditeur de menu. La même refactorisation a été appliquée aux menus Transformation.
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'outil Messages. Il est possible d'obtenir la trace de la pile à partir de l'erreur et d'accéder à la cellule problématique.
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 avec fluidité et serait autrement ignorée (par exemple dans les cellules constantes) ou rendrait le contenu de la cellule invalide.
Cette fonction est activée par défaut. Vous pouvez la désactiver dans Settings / Editor / General
.
Désormais, le générateur détecte les extensions de l'éditeur pour d'autres langages et génère un code qui manifeste explicitement la dépendance. C'est-à-dire que les concepteurs de langage n'ont pas à se soucier de ce type particulier de dépendance entre les langages. Il n'est plus nécessaire d'utiliser une dépendance « extends » entre les modules de langage pour activer les extensions de l'éditeur.
Il y a un nouveau mécanisme pour spécifier un fichier zip qui contient les sources d'une bibliothèque aux côtés du fichier jar de la bibliothèque. Maintenant, MPS est capable d'extraire le javadoc des sources pour le présenter aux côtés des informations extraites des fichiers de classe.
La fonctionnalité de SingleLineComment a été légèrement 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 Java.
BaseLanguage inclut désormais try with resources, la détection (catch) de plusieurs 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 local variable type inference, qui nécessite j.m.baseLanguage.varVariable
, ces fonctionnalités n'exigent aucune importation de langage supplémentaire.
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.
Elle n'est pas activée par défaut, donc si vous souhaitez l'essayer, cliquez sur "Use non-modal commit interface" dans Preferences/Settings | Version Control | Commit
.
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
.
Vous n'avez plus besoin de préinstaller Git manuellement . Lorsque vous clonez un référentiel Git existant, l'IDE recherche l'exécutable Git sur votre machine et vous propose de le télécharger et de le configurer pour vous si l'IDE ne le trouve pas.
Veuillez noter que dans MPS 2020.1, le chemin d'accès aux fichiers de configuration a changé.
MPS utilise désormais 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éciale développeurs sur notre site Web.
JetBrains Plugin Marketplace is now available in MPS. Cela ouvre de nouvelles opportunités car vous pouvez commercialiser vos plugins.