Nouveautés de MPS 2025.3

MPS 2025.3 remanie en profondeur le langage JavaDoc, apporte des modifications significatives aux plans du générateur et offre une mise à jour majeure de l'éditeur réflectif. Cette version permet également d'exécuter des actions au clavier dans la Logical View et permet à TextIcon de proposer des variantes visuellement distinctes pour le thème clair et le thème sombre.

Nous vous invitons à explorer la liste complète de modifications ci-dessous.

Remaniement du langage JavaDoc

Le langage JavaDoc a été entièrement migré vers jetbrains.mps.lang.text pour la représentation du texte et l'édition. Ce changement ne devrait pas impacter de façon significative l'expérience utilisateur dans son ensemble. Toutefois, il corrige de nombreux problèmes :

  • L'expérience d'édition est désormais alignée sur celle des autres langages MPS qui utilisent jetbrains.mps.lang.text, tels que les commentaires BaseLanguage ou la documentation de l'aspect Structure du langage. Pour plus d'informations sur l'édition du texte, reportez-vous à la page Documentation Facet.
  • Le texte peut être copié et collé entre JavaDoc, les commentaires BaseLanguage, les commentaires de documentation du langage et tous les autres endroits où jetbrains.mps.lang.text est utilisé. Vous pouvez également copier et coller du texte brut.
  • Le texte peut désormais inclure des styles, tels que le gras ou l'italique. Ces styles sont générés sous la forme de balises HTML dans les fichiers source Java qui en résultent.

Au cours de ce processus, plusieurs problèmes liés au langage JavaDoc ont été résolus :

  • La description des balises de bloc a été modifiée, afin d'utiliser jetbrains.mps.lang.text à la place des propriétés de chaîne, de sorte que la même fonctionnalité modifier/copier/coller/style soit disponible dans les balises de bloc.
  • Les balises de bloc prennent désormais en charge les descriptions sur plusieurs lignes.
  • Les balises de bloc comme les balises inline sont désormais analysées correctement à partir des sources Java.
  • La nouvelle balise inline {@literal ...} a été ajoutée conformément à la spécification du langage Java.
  • Le code à l'intérieur de CodeSnippet résout correctement les variables locales.
  • NodeWrapper génère correctement le texte des nœuds contenus.

Action Paste as JavaDoc disponible dans BaseLanguage

En complément des actions Paste as Java Statement et Paste as Class Content existantes, la nouvelle version du langage JavaDoc prend en charge une nouvelle action qui permet de coller facilement le texte du code JavaDoc dans BaseLanguage. Mais surtout, cette nouvelle action permet de s'assurer que votre code JavaDoc est correctement analysé en lignes de texte JavaDoc, en balises de bloc et en balises inline, avec notamment les résolutions potentielles de références (p. ex. pour les balises @param ou {@link }).

Cette nouvelle action Paste as JavaDoc analyse le texte du presse-papiers et le colle dans un commentaire JavaDoc à la position du curseur. Si le curseur n'est pas positionné dans un commentaire JavaDoc existant, l'action attache les éléments JavaDoc analysés au code JavaDoc définissant les champs/méthodes/classes suivants et crée un nouveau fichier pour cela, si nécessaire.

Contributions aux plans du générateur

Nous avons apporté des améliorations majeures aux plans du générateur, afin d'enrichir l'expérience utilisateur avec des transformations complexes du modèle. La nouvelle notion de PlanContribution remplace totalement la fonctionnalité expérimentale fork as que nous avions introduite dans la version 2024.1.

De plus, nous avons également ajouté un mécanisme permettant d'annoter un modèle de branche (pour toute branche provenant d'un plan ou d'une contribution de plan) avec des attributs de modèle supplémentaires. Cela peut être utile si le concepteur du langage ou du plan souhaite ajouter des attributs de modèle personnalisés pour identifier le résultat d'une branche en vue d'un traitement ultérieur. MPS emploie l'attribut targetFacet (voir le modèle jetbrains.mps.generator.extensions.common), qui indique <mps.make> quel GenerationTargetFacet/ModuleFacet consulter lors de la détermination de l'emplacement du résultat d'un modèle.

Fourches conditionnelles dans les plans de générateur

Les étapes fork et PlanContribution prennent en charge l'activation conditionnelle dans un plan de générateur. Il est désormais possible de n'activer certaines branches d'un plan que si des critères spécifiques sont réunis. Actuellement, MPS comporte une instruction conditionnelle qui vérifie les valeurs des plan parameters spécifiés. Nous avons comme objectif d'étendre les instructions pour prendre en charge les opérations logiques (and/or), ainsi que d'autres opérations potentielles, tout en maintenant une interprétation stricte des plans de génération (par exemple, pas de code BaseLanguage dans les plans).

Un concepteur de langage peut fournir des classes ParameterDeclaration personnalisées. Les valeurs de ces paramètres peuvent être fournies en utilisant un point d'extension PlanParameterContributor. MPS est fourni avec un petit nombre de paramètres prédéfinis et utilisables directement : voir le modèle jetbrains.mps.generator.extensions.common pour plus de détails à ce sujet.

Options TextIcon pour les thèmes clair et sombre

Les couches de TextIcon peuvent désormais être configurées pour s'appliquer au thème clair, au thème sombre ou aux deux. De plus, les littéraux de couleur dans la définition de TextIcon peuvent fournir différentes couleurs pour les thèmes clair et sombre.

Remaniement de l'éditeur réflectif

L'expérience de l'éditeur réflectif (par défaut) a également évolué. L'éditeur par défaut en lecture seule a été fusionné avec l'éditeur réflectif, afin d'éliminer définitivement cette source de confusion.

Utilisation des raccourcis clavier dans la vue Project

Le processus de création de nouveaux éléments dans le volet Logical de la vue Project en utilisant des raccourcis clavier a été considérablement amélioré. De nouveaux modules, modèles et nœuds peuvent désormais être introduits sans recourir à une souris.

Mise en évidence des utilisations invisibles

La mise en évidence des utilisations du nœud au niveau du curseur est désormais limitée aux références visibles dans l'éditeur. Les utilisations des nœuds qui ne s'affichent pas directement dans l'éditeur de nœuds ne sont pas mises en évidence.

Nombreux correctifs de bugs

MPS 2025.3 comprend de nombreux correctifs de bugs. Vous trouverez la liste complète des problèmes résolus ici.

Nouveautés de la plateforme

Thème Islands par défaut

Les nouveaux thèmes Islands sont inclus dans MPS 2025.3 et sont activés par défaut.

Guide de migration

Pour chaque nouvelle version majeure de MPS, nous fournissons des instructions pour vous aider à effectuer la migration dans les meilleures conditions. Veuillez les examiner attentivement dans le guide de la migration actualisé.