MPS 2021.1 apporte la prise en charge des annotations Java et d'Apple Silicon, de nombreuses améliorations du VCS, et bien plus.
La taille de la police peut être rapidement ajustée dans une fenêtre d'éditeur ouverte en maintenant la touche Contrôle enfoncée et en faisant tourner la molette de la souris. Les modifications de la taille de la police ne sont pas persistantes. Ainsi, lorsque vous ouvrez de nouveau le fichier, le texte reprend la taille par défaut. Vous pouvez activer/désactiver cette fonctionnalité dans Preferences | Editor | General, dans la section Change font size with Ctrl/Cmd+Mouse Wheel.
L'implémentation de la mise en page indentée est maintenant incrémentale dans certains cas importants, ce qui réduit le temps de rendu pour les grands modèles dans les langages utilisant principalement l'indentation (comme BaseLanguage). Cette fonctionnalité peut être désactivée avec l'option VM mps.indent_layout.disable_incremental.
Il est important de choisir une police d'éditeur avec laquelle vous pouvez travailler confortablement pendant plusieurs heures d'affilée. Les paramètres de typographie que nous avons récemment ajoutés vous permettent de personnaliser facilement le style de police. Dans la version 2021.1, vous pouvez ajuster le poids de la police principale et de la police grasse dans Preferences | Editor | Fonts.
La prise en charge du système de contrôle de version apporte des améliorations à l'annotation racine. Un nouvel algorithme de calcul des changements de révision avec suivi des mouvements est maintenant utilisé pour l'annotation racine. Les couleurs des lignes/cellules annotées sont déterminées uniquement sur la base des révisions dans lesquelles la racine a été modifiée . Les cellules annotées disposent désormais des options du menu contextuel lorsque la colonne d'annotation est ouverte. Vous pouvez notamment appliquer les actions Copy Revision Number et Show Diff à chaque cellule annotée.
La boîte de dialogue Diff est activée pour les commits fusionnés dans le journal Git. La visionneuse affiche trois panneaux : le panneau central pour le modèle fusionné, et les panneaux gauche et droit pour les modèles des deux branches fusionnées.
Il est désormais possible de désactiver la synchronisation du défilement de l'éditeur dans la boîte de dialogue Diff à l'aide d'un bouton.
Les algorithmes d'annotation racine et d'historique des racines/noeuds étaient auparavant basés sur la liste ordonnée des révisions de fichiers, en calculant les changements de racine entre deux révisions adjacentes. Il était toutefois possible que ces révisions proviennent de deux branches différentes, auquel cas les changements obtenus n'avaient aucun sens. Les révisions de fusion n'étaient pas gérées correctement non plus. Les modifications des anciens cycles de révision pouvaient s'afficher par erreur comme des modifications de la révision de fusion la plus récente. L'algorithme prend désormais en compte le graphique des révisions lorsqu'il formule l'historique des modifications.
Notre nouvelle action Save to Shelf vous permet de copier vos modifications dans Shelf tout en les conservant dans les modifications locales. Pour accéder à cette action, appuyez sur ⇧⌘A sous macOS (Ctrl+Maj+A sous Windows ou Linux) et saisissez « Save to Shelf ».
Il est désormais possible de faire référence au nœud d'entrée d'une macro LOOP en utilisant une expression LOOP.inputNode. Vous n'avez donc plus besoin d'utiliser une macro VAR. Vous pouvez aussi accéder à l'index de LOOP sous le même espace de noms en utilisant LOOP.index pour remplacer la précédente variable de contexte définie par l'utilisateur.
Pour améliorer l'extensibilité du plan de génération de modèles, il existe un nouveau mécanisme permettant d'inclure des langages ou des générateurs qui sont inconnus du concepteur de plan. Maintenant, avec l'instruction transform, le concepteur de langage peut inclure un langage qui cible ou étend un langage donné. Lorsque nous disons que le langage B « cible » le langage A, nous voulons dire que le générateur du langage B produit des constructions du langage A.
Avec MPS 2021.1, les modèles compilés vérifient désormais si les enfants sont correctement placés dans les nœuds parents si l'option est activée.
Beaucoup de choses ont changé dans notre approche de la compilation Java des modules MPS. Cela répond à l'une des demandes ayant recu le plus de votes : la prise en charge de l'outil Annotation Processing. Nous avons changé l'infrastructure du compilateur Java MPS pour utiliser l'ensemble d'API javax.tools.JavaCompiler, afin que MPS puisse utiliser n'importe quel compilateur qui implémente cette API standard. Depuis la version 2021.1, MPS fonctionne avec le compilateur par défaut configuré pour cette API, avec une option pour utiliser l'Eclipse Compiler for Java (ECJ).
Lorsqu'un nouveau projet est créé, une version MPS « de référence » est désormais enregistrée. Il n'est pas possible de transférer des projets de précédentes versions de MPS vers la nouvelle version. Les auteurs ont ainsi la possibilité de donner aux migrations de projet une version "de référence", qu'ils peuvent modifier dans l'interface de migration de projet en utilisant la nouvelle méthode "getBaselineVersion():int".
Le dialogue de la refactorisation Method Signature comprend maintenant un moyen de spécifier des valeurs par défaut pour les nouveaux arguments ou les arguments dont les types ont changé. Lorsqu'un paramètre est supprimé mais qu'il est toujours utilisé dans la méthode, une nouvelle variable locale est introduite afin que la référence ne soit pas perdue. Si l'appel d'une méthode ne correspond pas à sa signature, une action d'intention vous permet de modifier la signature de la méthode pour la faire concorder avec l'appel.
Le langage lang.text a été doté de plusieurs nouvelles capacités, qui améliorent directement les commentaires d'une ou plusieurs lignes dans BaseLanguage.
Les expressions model.roots(), model.rootsIncludingImported() et model.nodesIncludingImported() prennent désormais en charge #expression pour spécifier les concepts, tout comme model.nodes() le fait.
Les plugins indiquent à MPS les modules auxquels ils contribuent au moyen d'un point d'extension com.intellij.mps.LanguageLibrary
. Les points d'extension peuvent désormais fournir un attribut facultatif hide="true"
, ce qui rend les modules du plugin éligibles pour être filtrés par un schéma spécifié avec com.intellij.mps.VisibleModuleMask
.
Le nouvel aperçu intégré au navigateur vous permet de prévisualiser rapidement des fichiers HTML. Pour l'ouvrir, cliquez sur l'icône avec le logo MPS dans le widget en haut à droite de l'éditeur. Si vous apportez des modifications au HTML ou si vous modifiez les fichiers CSS et JavaScript liés, l'aperçu répercutera immédiatement ces changements.
Vous pouvez maintenant utiliser MPS sur les Macs ayant une puce M1. Pour commencer, téléchargez le programme d'installation de JetBrains MPS pour Apple Silicon directement sur notre site web ou obtenez-le à partir de l'application JetBrains Toolbox App.
Avec MPS 2021.1, la boîte de dialogue Import Settings qui apparaissait chaque fois que vous installiez une nouvelle version de MPS s'affichera seulement si vous ne disposez pas des paramètres et configurations appropriés.
Dans cette version, nous avons ajouté davantage de libellés aux éléments de l'interface utilisateur sur l'écran de bienvenue, dans la vue Project Structure et dans le journal du VCS. Ces éléments, ainsi que les icônes de la gouttière, peuvent désormais être lus correctement par un lecteur d'écran. Nous travaillons également à l'amélioration de la prise en charge de l'accessibilité pour les utilisateurs de macOS.