Nouveautés de MPS 2020.1

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 !

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

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.

En savoir plus

Light patterns

Light patterns

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.

En savoir plus

Infobulles

Infobulles

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.

En savoir plus

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

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 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.

Détection des 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'outil Messages. Il est possible d'obtenir la trace de la pile à partir de l'erreur et d'accéder à la cellule problématique.

En savoir plus

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 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.

Pour en savoir plus

Suppression des extensions de langage inutiles

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.

En savoir plus

Commentaires Javadoc dans les modèles de stub Java

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.

En savoir plus

Commentaires multilignes en BaseLanguage

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.

Améliorations de BaseLanguage inspirées du langage 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.

Consultez le Guide de migration

Autres améliorations

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.

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.

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'IDE

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.

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

Police de caractères JetBrains Mono par défaut

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.

Marketplace débarque dans MPS

JetBrains Plugin Marketplace is now available in MPS. Cela ouvre de nouvelles opportunités car vous pouvez commercialiser vos plugins.