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.
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 :
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. jetbrains.mps.lang.text est utilisé. Vous pouvez également copier et coller du texte brut. Au cours de ce processus, plusieurs problèmes liés au langage JavaDoc ont été résolus :
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. {@literal ...} a été ajoutée conformément à la spécification du langage Java. CodeSnippet résout correctement les variables locales. NodeWrapper génère correctement le texte des nœuds contenus. 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.
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.
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.
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.
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.
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.
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.
MPS 2025.3 comprend de nombreux correctifs de bugs. Vous trouverez la liste complète des problèmes résolus ici.
Les nouveaux thèmes Islands sont inclus dans MPS 2025.3 et sont activés par défaut.
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é.