Nouveautés de MPS 2018.1

Améliorations du langage SModel

Dans certains cas, vous devez gérer des pointeurs bruts (tels que SNodeReference ou SModelReference). Leur utilisation peut être déroutante, car ils sont difficiles à créer et utiliser. Pour faciliter l'utilisation de pointeurs, nous avons inclus de nouveaux types et de nouvelles opérations dans le langage SModel.

Pointeur de nœud

Nous avons facilité la manipulation des pointeurs de nœuds en introduisant le nouveau type « node-ptr<> ». Ces pointeurs peuvent être résolus pour obtenir les nœuds réels au moyen de l'opération « resolve ». L'expression « node-ptr/ ... / » remplace l'ancienne construction « nodePointer/ ... / » qui est déjà obsolète. Des scripts de migrations sont créés pour gérer la conversion des expressions.

Configuration de références avec des pointeurs

Lors de la configuration d'une cible sur un lien de référence, il n'est pas nécessaire d'accéder au nœud cible. Un pointeur vers la cible est suffisant. L'opération « set ptr », qui s'applique aux expressions d'accès au lien de référence, définit la cible de la référence sur les pointeurs spécifiés. Pour s'assurer qu'un nœud est bien celui qui est spécifié par un pointeur de nœud, la nouvelle opération « is » doit être utilisée.

Règles strictes de typage pour les types smodel

Les règles de typage des types SModel ont été durcies. Les méthodes d'interface SNodeReference ne sont plus disponibles pour les valeurs « node-ptr ». L'opérateur de downcast doit être utilisé pour obtenir explicitement SNodeReference. D'autre part, l'opération « pointer » sur les instances de nœud renvoie à présent « node-ptr » au lieu de SNodeReference.

Expressions Node-ptr dans la macro de référence

La macro de référence a été modifiée pour accepter les expressions node-ptr. Nous vérifions le type de pointeur renvoyé depuis la macro de référence en fonction du type de la référence.

Identifiant de nœud pour spécifier le pointeur

Vous pouvez désormais utiliser le nom de modèle et l'identifiant de nœud pour spécifier un pointeur vers une instance de concept non nommée ou pour le codage d'une référence sous forme de chaîne de caractères.

Pointeurs de modèles

Le type « model-reference » a été refactorisé en « model-ptr<> ». Ce pointeur peut être résolu en un modèle réel au moyen de l'opération « resolve ».

Nouveaux scripts de migration

Nous avons introduit deux scripts de migration qui peuvent vous aider à faire migrer les anciennes constructions de langage SModel, telles que les expressions node/.../`, les guillemets/apostrophes indésirables ou les downcasts. Pour les exécuter, allez dans Tools -> Scripts -> Enhancements... et choisissez « SModel Language Enhancements (node-ptr<> and model-ptr) ». D'autre part, la même fenêtre comporte l'option « Use node pointers in reference macro queries » qui gère les anciennes constructions dans les macros du générateur.

Portée améliorée pour les requêtes SModel

Les requêtes Smodel se comportent désormais de façon plus intuitive par rapport à la portée sur laquelle elles s'appliquent. Si une portée est déclarée en tant que paramètre dans une requête spécifique, cette requête s'exécute sur toute la portée, y compris les modèles en lecture seule, et plus seulement les modèles modifiables, comme c'était le cas avant.

Éditeur

Afficher l'éditeur réflectif pour la sous-arboresence

Vous pouvez désormais afficher l'éditeur réflectif pour l'ensemble d'une sous-arborescence. Pour ce faire, sélectionnez le nœud et appuyez sur Cmde/Ctrl+Maj+[ ou choisissez « Show reflective editor for subtree » dans le menu contextuel. Pou revenir à l'éditeur habituel, appuyez sur Cmde/Ctrl+], Cmde/Ctrl+Maj+] ou cliquez du bouton droit sur l'option « Show regular editor for the Subtree ». L'affichage de l'éditeur réflectif pour le nœud actif reste possible en appuyant sur Cmde/Ctrl+[ ou depuis le menu contextuel.

Menu de transformation pour les cellules de propriétés et de références

Le langage du menu de transformation a été constamment amélioré pour prendre en charge les cellules de propriétés et de références. Les éléments du menu de transformation des propriétés et des références vous permettent une meilleure personnalisation des cellules de propriétés et de références des menus que les « menus en ligne » utilisés précédemment.

Cela présente deux avantages clés :

  • Ils peuvent être attachés à toute cellule et pas seulement aux cellules de propriétés et de références.
  • Ils peuvent s'appliquer aussi bien à la saisie semi-automatique, ainsi qu'aux autres emplacements : assistant de contexte, menu contextuel et transformations annexes.