Novedades de MPS 2019.3

Acción Quick Definition

Acción Quick Definition

Quick Definition es similar a su contraparte en IntelliJ IDEA. Haga clic en un nodo, mantenga pulsado Ctrl-Mayús-I y aparecerá una ventana emergente con la definición del nodo. En esta ventana emergente, puede navegar, seleccionar otros nodos y realizar la acción Find. De este modo, no necesita abrir una nueva pestaña cada vez que quiera echar un vistazo rápido al nodo.

Más información

Descarga de modelo

Descarga de modelo

Ahora es posible mejorar el consumo de memoria eliminando explícitamente todos los modelos de la memoria. Puede hacer clic en el indicador de memoria o definir un parámetro de limpieza programado (en segundos) con Registry Action. En estos momentos, esta funcionalidad es experimental y esperamos mejorarla en próximas versiones.

Más información

Módulos de generador independientes

Módulos de generador independientes y varios generadores por lenguaje

Ahora puede crear más de un generador para un lenguaje, y alojarlos dentro de otro lenguaje (como en versiones anteriores) o añadirlos junto a un lenguaje como un módulo de nivel superior normal. Usar planes de generador le permite aprovechar al máximo varios generadores. Para ayudarle con la transición, solo uno de los generadores de lenguaje seguirá estando implicado en un modelo sin un plan de generación explícito. El nuevo generador puede crearse desde el menú contextual de lenguaje, y el cuadro de diálogo siguiente tiene una nueva casilla de verificación que puede utilizar para hacer que sea independiente.

Conversión de conceptos e interfaces

Conversión de conceptos e interfaces

Hemos añadido una nueva intención que convierte un concepto en un concepto de interfaz y viceversa. Esto puede utilizarse al crear una estructura de lenguaje, y no modifica las utilizaciones.

Crear a partir del uso

Crear a partir del uso

Ahora es posible crear conceptos, métodos y clases a partir de utilizaciones en el código. La intención puede crear una clase en nuevas declaraciones, métodos en expresiones, y conceptos e interfaces en roles de referencia/secundarios y en extends/implements.

Generación de identificadores Java válidos

Generación de identificadores Java válidos a partir de INamedConcepts

Una nueva declaración de generador le permite generar un identificador Java válido a partir de cualquier INamedConcept. Esto creará un nombre único eliminando los símbolos ilegales, poniendo en mayúsculas y añadiendo un prefijo en caso de que sea necesario.

Find Usages: Nueva declaración para indicar un resultado de búsqueda arbitrario al escribir un buscador

En versiones anteriores de MPS, la declaración add result del buscador solo permitía resultados de búsqueda basados en nodos<>. Ahora, con add raw result, el diseñador de lenguaje puede mostrar cualquier resultado que Find Usages sea capaz de visualizar.

Correcciones

Generator: control de la advertencia de referencias dinámicas

El generador MPS emite una advertencia cuando intenta resolver una referencia dinámica pero no lo consigue; esto provoca muchas advertencias porque no todos los generadores siguen un enfoque de construcción de referencias estricto con asignación de etiquetas. Por ello, hemos añadido un nuevo ajuste para controlar la aparición o no de esa advertencia.

Más información

Mejora del rendimiento al cargar JavaStubs Patrocinado por cliente

Hemos mejorado considerablemente el rendimiento al cargar modelos stub, especialmente de conjuntos de jars grandes y con conexiones sólidas. Los tiempos de carga ahora son entre 2 y 3 veces más rápidos en nuestro proyecto de destino en comparación con la versión 2019.2 (de 18 segundos ha bajado a 6). Este impulso también se ha replicado en MPS 2019.1 y MPS 2019.2.

Lenguaje de compilación: raíces de modelos explícitos

MPS solía tratar solo un conjunto concreto de archivos como modelos, en concreto los archivos *.mps y *.mpsr, pero con la persistencia de modelos personalizados, los nombres de archivos son diferentes. Para asegurarte de que todos los archivos de modelos necesarios se añaden al paquete al crear un módulo, hay una declaración de raíz de modelo explícita para un módulo en el script de compilación que facilita los patrones de nombres de archivos personalizados.

Documentación

Se han actualizado las muestras de persistencia personalizada y la documentación para el asistente de solución de la nueva compilación. Se han corregido los errores de tiempo de generación en la muestra Math y los enlaces rotos en las páginas de documentación. También se han corregido varios cuadros de diálogo y ventanas de herramientas.

Lenguaje base

Ahora se admiten literales binarios y octales, y los parámetros de tipo en Javadocs se manejan correctamente. También se han solucionado muchas otras incidencias.

Arreglo rápido para actualizar los objetos de identidad de módulo/modelo

MPS detecta los nombres obsoletos y proporciona un arreglo rápido para actualizarlos para los objetos desde un lenguaje SModel.

Más información

Actualización de la historia para la faceta de módulo

Con la faceta de módulo 'Tests', ahora los diseñadores de lenguajes tienen total libertad, y MPS ya no exige que la faceta esté presente para el módulo de lenguaje.

Más información

Surround with...

La acción Surround with… ahora está disponible al seleccionar varios nodos. Previamente estaba habilitada únicamente para selecciones con un único nodo.

Acción Show Affected Files en el cuadro de diálogo Root History

Para una revisión en un historial raíz, ahora puede echar un vistazo al resto de archivos cambiados en la misma revisión.

Historial raíz para modelos por persistencia por raíz

La acción Show Root History, que se introdujo en la versión 2019.2, se ha hecho disponible para raíces de modelos guardados en un solo archivo. Ahora también se admiten los modelos por persistencia por raíz.

Actualización de la vista Favorites

MPS integra la herramienta de favoritos bien mantenida de IntelliJ Platform.

Más información

Estilo de metalenguajes

Ahora todos los metalenguajes ofrecen el mismo estilo y experiencia de edición en lo que respecta a, entre otros aspectos, la navegación mediante el teclado, el comportamiento de las celdas con marcadores de posición en los editores y la apariencia "New Root".