Novedades de MPS 2019.2

Tipo de datos de enumeración

Tipo de datos de enumeración

Las declaraciones de tipos de datos son una forma precisa de declarar una lista de opciones en la que cada opción se expresa con un miembro de enumeración nombrado. También es posible alterar la presentación del editor para algunos miembros y elegir el miembro predeterminado que se usa cuando no se ha establecido ningún miembro específico en una propiedad.

Más información

Personalización de mensajes de error

Personalización de mensajes de error Patrocinado por cliente

Durante un tiempo, recibimos comentarios preguntando si sería posible personalizar los mensajes de error de MPS. Cuando uno de nuestros clientes de pago nos lo pidió, pudimos darle la mayor prioridad a esta funcionalidad. Ahora, las restricciones de los informes de errores pueden modificarse. Estamos pensando en hacer que la personalización de los informes esté disponible también para otros tipos de errores en las próximas versiones.

Ya está disponible una nueva funcionalidad llamada «Comentarios» en la personalización de texto de errores.

Más información

Lenguaje con restricciones basadas en reglas

Lenguaje con restricciones basadas en reglas

El lenguaje con restricciones basados en reglas se creó para sustituir, más adelante, la restricción actual canBe* del lenguaje de restricciones de MPS. El lenguaje con restricciones basadas en reglas es una funcionalidad experimental, por lo que esperamos que evolucione de forma significativa en los próximos lanzamientos.

Más información

Historial raíz

Historial raíz

El menú de Git presenta una nueva acción para mostrar el historial de los cambios de VCS de una raíz específica. La acción está disponible desde el menú contextual del editor.

Más información

Búsqueda de texto completo

Búsqueda de texto completo

La búsqueda de textos completos en los valores de la propiedad está lista. Con Edit > Find > Find Text in Project (Ctrl+Alt+Mayús+F), podrá buscar nodos con valores de propiedades que se ajusten a un texto específico.

Detección de errores específicos

Detección de errores específicos

Uno de los casos de uso comunes en un lenguaje de prueba es comprobar los mensajes de error o las advertencias de los nodos. A veces, el subsistema de pruebas de MPS no podía distinguir entre errores diferentes que aparecían en el mismo nodo. Esto podía ocasionar un comportamiento: incluso si el usuario especifica el error esperado en la anotación correspondiente de la prueba, cualquier error o advertencia adicional que se notifique sobre este nodo no se registraría como infracciones de pruebas.

Más información

Reglas de comprobación definidas por patrones

Reglas de comprobación definidas por patrones

Al definir reglas de comprobación para un concepto, se llama a la regla con cada nodo que sea una instancia del concepto.

Ahora, en vez de anular cualquier regla heredada del superconcepto, se puede especificar de forma explícita la lista de reglas que hay que anular. Recomendamos fervientemente revisar todas las reglas de comprobación que usen la funcionalidad de anulación, además de determinar qué reglas deberían anularse.

Más información

API de fachada de comprobación de tipos

En esta versión, la nueva API de fachada es la única forma compatible de ejecutar consultas de comprobación de tipos.

Neva API: Visite jetbrains.mps.typechecking.TypecheckingFacade y las clases relacionadas.

API obsoleta (heredada): La jerarquía de paquetes jetbrains.mps.typesystem.* está obsoleta. No se recomienda el uso directo de clases dentro de esta jerarquía, excepto para el código generado de forma automática a partir de los contenidos de un aspecto de «sistema de tipos».

Nuevos cambios en próximas versiones

Se trata de un plan provisional de cambios relacionados con la compatibilidad del sistema de tipos. El aspecto responsable de la implementación del sistema de tipos y el lenguaje usado en este aspecto quedará obsoleto. Con el tiempo, el lenguaje y la compatibilidad con tiempos de ejecución migrará a un complemento separado.

Introduciremos un aspecto nuevo que, fundamentalmente, sustituirá la parte ajena al sistema de tipos del aspecto del sistema de tipos. Ofreceremos una migración para extraer reglas de comprobación del aspecto del sistema de tipos heredado.

Se introducirá un nuevo marco de trabajo de comprobación de tipos y compatibilidad con tiempos de ejecución, de manera que se reescribirá completamente el motor heredado.

Ejecución en segundo plano

Consiga que los procesos en segundo plano funcionen adecuadamente. Hemos estado trabajando en la mejora de la respuesta de la interfaz durante la ejecución en segundo plano. Para restaurar la versión anterior, hay una nueva opción en la interfaz que lo controla todo: Preferences > Project Settings > Perform in background.

Java 11 con tiempos de ejecución

Ahora MPS se ejecutará en JDK 11. Esto afectará el mecanismo de los modelos stub en carga. La mayoría del proyecto no necesitará migración, excepto usos inusuales de algunas clases y campos vueltos a empaquetar en JDK 11.

En el complemento IntelliJ IDEA, los módulos con faceta MPS no deben asociarse con la versión 11 de JDK. De lo contrario, la generación de código fallará.

BaseLanguage

Las mejoras de BaseLanguage fueron uno de los objetivos principales de esta versión. Hemos arreglado muchos de los problemas relacionados con BaseLanguage, desde errores hasta los problemas de facilidad de uso.

Nuevo proyecto de muestra

Basándonos en los comentarios de la comunidad, hemos añadido un nuevo proyecto de muestra para la generación de XML.

Verificación ortográfica en comentarios de BL

Tenemos un corrector ortográfico en comentarios de una línea, texto Javadoc y literales de cadena.

Configuración git local

Hemos cambiado la configuración del controlador de combinación de global a local (por el repositorio git), de manera que ahora se puede tener tantos controladores de combinación como instalaciones de MPS.