MPS 2021.2 fournit un mécanisme de vérification de l'orthographe, l'affichage automatique de la fenêtre de saisie semi-automatique, des améliorations du VCS, et bien plus encore.
La saisie semi-automatique du code, auparavant accessible en utilisant Ctrl/Cmd + Espace, s'affiche désormais automatiquement après que vous arrêtez de taper, avec un délai d'une demi-seconde par défaut. Elle reste cependant possible de l'ouvrir manuellement. En savoir plus.
Les modifications d'encapsulation sont désormais beaucoup plus flexibles. Si vous ajoutez ou supprimez un wrapper pour un bloc de code et que vous apportez également des modifications au bloc lui-même, ces modifications seront considérées comme indépendantes. En outre, il est possible d'avoir plusieurs changements d'encapsulation et de désencapsulation les uns à côté des autres. MPS peut désormais détecter les déplacements internes dans les nœuds même si l'ID du nœud parent a changé.
Auparavant, les cellules de l'éditeur pour les attributs n'étaient pas correctement mises en évidence dans la boîte de dialogue Diff. En général, si un attribut était ajouté ou supprimé, l'ensemble du nœud avec l'attribut était mis en évidence plutôt que l'attribut en question uniquement.
La fonctionnalité MPS utilise un mécanisme de vérification orthographique d'IntelliJ IDEA pour vérifier les commentaires et les chaînes de caractères afin de détecter les fautes de frappe et les erreurs. Ce dernier a été étendu et maintenant avec tout texte susceptible d'apparaître dans une cellule. Pour indiquer que le texte d'une cellule doit être vérifié à l'aide d'un dictionnaire (tel que configuré dans Préférences), il suffit d'ajouter le style spellcheck
à la cellule dans votre déclaration de l'éditeur.
Pour les plateformes client riche (RCP), n'oubliez pas d'inclure le plugin jetbrains.mps.editor.spellcheck
dans la distribution.
Nous avons trouvé une solution pour qu'un projet ayant été migré vers une version plus récente de MPS puisse être ouvert par un développeur utilisant une version plus ancienne de MPS. Le sous-système Migration détecte désormais la version de la plateforme MPS lors de l'application des migrations et vous avertit si le projet que vous essayez d'ouvrir a été migré vers une version plus récente. Cela permet d'éviter la corruption involontaire des modèles.
Un mécanisme permet de partager les éléments de la portée évalués lors de la première lecture du modèle. De nouvelles expressions ont été introduites pour cela dans j.m.lang.constraints
: for model [ factory, key]
, visible roots [concept]
et visible nodes [concept]
au lieu de new ModelPlusImportedScope(model, rootsOnly, concept)
. Les nouvelles expressions sont utilisées pour enregistrer la portée d'un modèle dans cache, il n'y aura donc pas à l'enregistrer ni à la calculer de nouveau.
Les auteurs d'extensions doivent choisir le type d'accès à accorder lorsqu'ils écrivent du code qui fonctionne avec les modèles MPS. Pour les opérations SNode (par exemple setProperty(), addChild(), etc.), il était uniquement possible d'accorder un accès aux commandes, même sans interaction avec l'interface utilisateur. Désormais, tout code avec accès à l'écriture pour le modèle peut apporter des modifications aux nœuds.
La fonction Tooltips dispose désormais d'une fonctionnalité appelée radar; qui indique les cellules dotées d'infobulles. Vous pouvez activer l'infobulle Radar en maintenant la touche Ctrl enfoncée.
BaseLanguage permet désormais à l'opérateur diamant de Java d'inférer des paramètres génériques à partir du contexte d'un constructeur. L'opérateur dimant sera activé par défaut pour tout nouveau code ajouté. Pour l'utiliser pour les constructeurs existants, supprimez les paramètres de type existants et définissez la valeur true pour infer type parameters dans la fenêtre d'inspection ou saisissez à nouveau <>
et supprimez le paramètre vide.
Dans baseLanguage, les propriétés sont désormais prises en compte correctement lors de la vérification de type. Lorsqu'une propriété hérite d'une interface ou de méthodes abstraites, il n'y a maintenant plus aucune erreur de méthode non implémentée. Lorsque vous définissez une propriété avec un type générique, le type correct est utilisé pour accéder à la propriété sur une instance.
Notez que le setter exposé pour une propriété de type T
retournera un objet de type T
plutôt que void
.
MPS affiche désormais la différence entre la version initiale et la version modifiée des fichiers dans l'onglet de l'éditeur. Quelle que soit la manière dont vous appelez l'action Show Diff, l'IDE ouvrira le diff dans l'éditeur par défaut.
Si vous préférez suivre les modifications dans une fenêtre séparée, vous pouvez faire glisser le fichier souhaité depuis l'éditeur. Dans ce cas, l'IDE s'en souviendra et ouvrira les diffs ultérieurs dans une fenêtre séparée.
De nouvelles flèches, en haut à droite de la fenêtre dans Preferences/Settings, facilitent la navigation dans les sections. Elles vous permettent d'aller et venir rapidement entre les sections.
Vous pouvez maintenant facilement glisser et déposer une fenêtre d'outils à l'intérieur de la fenêtre principale de l'IDE ou dans une fenêtre séparée. Pour faire glisser une fenêtre d'outils, cliquez sur sa barre de nom et déposez-la dans tout emplacement mis en évidence.
De nouvelles options permettent de modifier la forme du curseur dans le terminal intégré. En outre, le terminal offre une nouvelle prise en charge des raccourcis utilisant Option (⌥) comme touche Méta. Vous pouvez par exemple utiliser les raccourcis suivants :