Nouveautés de MPS 2019.3

Action Quick Definition

Action Quick Definition

Quick Definition est similaire à son homologue dans IntelliJ IDEA. Cliquez sur un nœud, maintenez les touches Ctrl-Maj-I, et vous obtenez une fenêtre contextuelle affichant la définition du nœud. Cette fenêtre contextuelle vous permet de naviguer, de sélectionner d'autres nœuds et de lancer l'action Find. Il n'est donc pas nécessaire d'ouvrir un nouvel onglet à chaque fois que vous souhaitez avoir un aperçu du nœud.

Pour en savoir plus

Déchargement de modèle

Déchargement de modèle

Il est maintenant possible d'améliorer la consommation de mémoire en retirant explicitement tous les modèles de la mémoire. Vous pouvez cliquer sur l'indicateur de mémoire ou définir un paramètre de nettoyage programmé (en secondes) avec l'action Registry. Cette fonctionnalité est pour le moment expérimentale, et nous prévoyons de l'améliorer dans les futures versions.

Pour en savoir plus

Modules de générateurs autonomes

Modules de générateurs indépendants et plusieurs générateurs par langage

Vous pouvez à présent créer plusieurs générateurs par langage, et soit les héberger à l'intérieur d'un langage (comme dans les versions précédentes), soit les ajouter à côté d'un langage comme un module de niveau supérieur normal. L'utilisation de plans de générateurs vous permet de tirer le meilleur parti de plusieurs générateurs. Pour faciliter la transition, un seul des générateurs de langage continuera d'être impliqué pour un modèle sans plan de génération explicite. Le nouveau générateur peut être créé à partir du menu contextuel du langage et la boîte de dialogue ci-dessous a une nouvelle case que vous pouvez cocher pour le rendre autonome.

Conversion de concepts et d'interfaces

Conversion de concepts et d'interfaces

Nous avons ajouté une nouvelle intention qui convertit un concept en un concept d'interface et inversement. Vous pouvez utiliser cette fonction lors de la création d'une structure de langage, et cela n'en change pas les utilisations.

Créer à partir d'une utilisation

Créer à partir d'une utilisation

Il est maintenant possible de créer des concepts, des méthodes et des classes à partir d'utilisations dans le code. L'intention peut créer une classe sur de nouvelles déclarations, des méthodes dans les expressions, ainsi que des concepts et des interfaces dans des rôles enfant/référence et dans extends/implements.

Génération d'identifiants Java valides

Génération d'identifiants Java valides à partir de INamedConcepts

Une nouvelle déclaration de générateur vous permet de générer un identifiant Java valide à partir de tout INamedConcepts. Cela crée un nom unique en supprimant les symboles illégaux, en transformant des lettres en majuscules et en ajoutant un préfixe si nécessaire.

Find Usages : nouvelle déclaration pour signaler un résultat de recherche arbitraire lors de l'écriture d'un module de recherche

Dans les version précédentes de MPS, la déclaration add result du module de recherche n'acceptait que des résultats de recherche basés sur node<>. Maintenant, avec add raw result, le concepteur de langage peut afficher tous les résultats que la vue Find Usages est en mesure de visualiser.

Correctifs réalisés

Générateur : contrôlez l'avertissement de référence dynamique

Le générateur MPS émet un avertissement lorsqu'il ne parvient pas à résoudre une référence dynamique, ce qui provoque de nombreux avertissements étant donné que tous les générateurs n'adhèrent pas à une approche stricte de construction de références à l'aide de mappages d'étiquettes. Nous avons donc ajouté un nouveau paramètre qui permet de contrôler l'affichage de l'avertissement.

Pour en savoir plus

Amélioration des performances de chargement des JavaStubs Sponsorisé par un de nos clients

Nous avons considérablement amélioré les performances lors du chargement de modèles stubs, en particulier à partir de grands ensembles d'archives Java fortement connectés. Les temps de chargement sont désormais 2 à 3 fois plus rapides sur notre projet cible qu'ils ne l'étaient dans la version 2019.2 (de 18 secondes à 6 secondes). Cette accélération a également été rétroportée vers MPS 2019.1 et MPS 2019.2.

Langage de build : racines de modèles explicites

MPS ne traitait qu'un ensemble spécifique de fichiers en tant que modèles, à savoir *.mps et *.mpsr. Toutefois, avec la persistance du modèle personnalisé, les noms de fichiers diffèrent. Pour vous assurer que tous les fichiers de modèles nécessaires sont regroupés lors de la construction d'un module, il existe une déclaration racine de modèle explicite pour un module dans le script de build qui facilite les schémas de nom de fichier personnalisés.

Documentation

Les exemples de persistance personnalisée et la documentation du nouvel assistant de solution de build ont été mis à jour. Les erreurs d'heure de génération dans l'exemple Math et les liens rompus sur les pages de documentation ont été corrigés. Plusieurs boîtes de dialogue et fenêtres d'outils ont également été corrigées.

Langage de base

Les littéraux binaires et octaux sont désormais pris en charge et les paramètres de type sont gérés correctement dans Javadocs. De nombreux autres problèmes ont également été corrigés.

Correctif rapide pour mettre à jour les objets d'identité de module/modèle

MPS détecte les noms obsolètes et fournit un correctif rapide pour les mettre à jour pour les objets du langage SModel.

Pour en savoir plus

Nouveau jalon pour les facettes de modules

Avec la facette de module "Tests", les concepteurs de langage bénéficient désormais d'une liberté totale et MPS n'exige plus que la facette soit présente pour le module Language.

Pour en savoir plus

Surround with...

L'action Surround with… est à présent disponible lorsque plusieurs nœuds sont sélectionnés. Elle n'était auparavant activée que pour les sélections contenant un seul nœud.

Action Show Affected Files dans la boîte de dialogue Root History

Pour une révision dans un historique racine, vous pouvez maintenant consulter les autres fichiers modifiés dans la même révision.

Root History pour les modèles dans une persistance par racine

L'action Show Root History, inaugurée dans la version 2019.2, était disponible pour les racines des modèles conservés dans un fichier unique. Désormais, les modèles dans une persistance par racine sont également pris en charge.

Mise à jour de la vue Favorites

MPS intègre l'outil IntelliJ Platform Favorites, qui bénéficie d'une bonne maintenance.

Pour en savoir plus

Style des métalangages

Tous les métalangages offrent désormais le même style et la même expérience d'édition en ce qui concerne, entre autres, la navigation au clavier, le comportement des cellules d'espace réservé dans les éditeurs et l'apparence de "New Root".