Novedades en MPS 2018.1

Mejoras en el lenguaje SModel

En algunos casos, debe lidiar con punteros básicos (como SNodeReference o SModelReference). Trabajar con estos puede ser desconcertante, ya que son difíciles de crear y de utilizar. Para facilitar la utilización de punteros, hemos incluido nuevos tipos y operaciones en el lenguaje SModel.

Puntero de nodo

Hemos facilitado el trabajo con punteros de nodo al introducir un nuevo tipo «node-ptr<>». Estos punteros se pueden resolver en los nodos actuales mediante la operación «resolve». El expresión "node-ptr/ ... /" sustituye al antiguo "nodePointer/ ... /", que ya está obsoleta. Los scripts de migración se crean para encargarse de la conversión de las expresiones.

Definición de referencias con punteros

Al definir un destino en un enlace de referencia, no es necesario acceder al nodo de destino. Es suficiente con un puntero al destino. La operación «set ptr» aplicable a las expresiones de acceso al enlace de referencia establece el destino de referencia para los punteros especificados. Para comprobar si un nodo es el especificado por un puntero de nodo, deberá utilizar la nueva operación «is».

Reglas estrictas de escritura para los tipos smodel

Las reglas de escritura para los tipos SModel se han vuelto más estrictas. Los métodos de la interfaz SNodeReference ya no están disponibles en los valores «node-ptr». El operador de conversión a tipo heredado debe usarse para obtener de forma explícita SNodeReference. Además, la operación «pointer» en las instancias del nodo ahora devuelve «node-ptr» en lugar del SNodeReference habitual.

Expresiones node-ptr en la macro de referencia

La macro de referencia se ha modificado para aceptar expresiones node-ptr. Verificamos el tipo de puntero que retorna la macro de referencia según el tipo de la referencia.

Identificador de nodo para especificar el puntero

Ahora puede utilizar el nombre del modelo y el identificador del nodo para especificar un puntero hacia un instancia de concepto sin nombre o para codificar una referencia como cadena.

Punteros modelo

El tipo «model-reference» se ha refactorizado en un «model-ptr<>». Este puntero se puede resolver en los modelos actuales mediante la operación «resolve».

Nuevos scripts de migración

Hemos introducido un par de scripts de migración que le ayudarán a migrar antiguas construcciones en lenguaje SModel como las expresiones node/.../`, las comillas no deseadas o los operadores de conversión. Para ejecutarlas, vaya a Tools -> Scripts -> Enhancements... y seleccione "SModel Language Enhancements (node-ptr<> y model-ptr)". Además, en la misma ventana, encontrará la opción «Use node pointers in reference macro queries» para gestionar las construcciones antiguas en las macros de generador.

Ámbito mejorado para consultas SModel

Las consultas Smodel ahora se comportan de manera más intuitiva hacia el ámbito en el que operan. Si un ámbito se declara como un parámetro para una consulta específica, la consulta se ejecuta en todo el ámbito, incluidos los modelos de solo lectura, no solo desde los modelos editables, como antes.

Editor

Mostrar el editor reflectivo para el subárbol

Ahora puede mostrar el editor reflectivo para todo un subárbol. Para ello, seleccione el nodo y presione Cmd/Ctrl+Mayús+[ o seleccione «Show reflective editor for subtree» en el menú contextual. Para volver al editor habitual, presione Cmd/Ctrl+], Cmd/Ctrl+Mayús+] o haga clic derecho en la opción «Show regular editor for the Subtree». Todavía es posible mostrar el editor reflectivo solo para el nodo actual presionando Cmd/Ctrl+[ o desde el menú contextual.

Menú de transformación para celdas de propiedad y de referencia

El lenguaje del menú de transformación se ha mejorado de forma coherente para que sea compatible con las celdas de propiedad y de referencia. La transformación de las partes del menú de propiedad y de referencia le permiten personalizar los menús para las celdas de propiedad y de referencia mejor que con la opción «inline menus» usada anteriormente.

Las dos ventajas clave son:

  • Se pueden adjuntar a cualquier celda, no solo a las celdas de propiedad y de referencia.
  • Se pueden aplicar a la finalización, así como al resto de ubicaciones: asistente de contexto, menú contextual y transformaciones secundarias.