Novedades de MPS 2025.3

MPS 2025.3 introduce una importante revisión del lenguaje JavaDoc, cambios significativos en los planes del generador y una actualización principal del editor reflexivo. También habilita las acciones del teclado en la ventana de herramientas Logical View y permite que TextIcon ofrezca variantes visualmente distintas para temas claros y oscuros.

Consulte la lista completa de cambios a continuación.

Revisión del lenguaje JavaDoc

El lenguaje JavaDoc se ha migrado por completo para utilizar el lenguaje jetbrains.mps.lang.text para la representación y edición de texto. Se prevé que este cambio tenga un impacto mínimo en la experiencia general del usuario. Sin embargo, soluciona muchos problemas:

  • La experiencia de edición ahora es coherente con otros lenguajes MPS que utilizan jetbrains.mps.lang.text, como los comentarios de BaseLanguage o la documentación del lenguaje de la estructura. Para obtener más información sobre la edición de texto, consulte la página Faceta Documentation.
  • El texto se puede copiar y pegar entre JavaDoc, comentarios de BaseLanguage, comentarios de documentación del lenguaje y otros lugares donde se utiliza jetbrains.mps.lang.text. También puede copiar y pegar texto sin formato.
  • Ahora el texto puede incluir estilos, como negrita o cursiva. Este estilo se genera como etiquetas HTML en los archivos fuente de Java resultantes.

En el camino, se han resuelto varios problemas asociados con el lenguaje JavaDoc:

  • La descripción de las etiquetas de bloque se ha cambiado para utilizar jetbrains.mps.lang.text en lugar de propiedades de cadenas, para que la misma funcionalidad de editar/copiar/pegar/estilo esté disponible dentro de las etiquetas de bloque.
  • Las etiquetas de bloque ahora admiten varias líneas de descripción.
  • Tanto las etiquetas de bloque como las etiquetas inline ahora se analizan correctamente desde fuentes Java.
  • Se ha añadido una nueva etiqueta inline {@literal ...} según lo exige la especificación del lenguaje Java.
  • El código dentro de CodeSnippet resuelve correctamente las variables locales.
  • NodeWrapper genera correctamente el texto de los nodos contenidos.

Acción Paste as JavaDoc disponible en BaseLanguage

Además de las acciones existentes Paste as Java Statement y Paste as Class Content, el lenguaje JavaDoc rediseñado admite una nueva acción que permite pegar fácilmente código JavaDoc textual en BaseLanguage. Lo más importante es que esta nueva acción garantiza que el código JavaDoc se analice correctamente en líneas de texto JavaDoc, etiquetas de bloque y etiquetas inline, incluidas las posibles resoluciones de referencia (por ejemplo, para las etiquetas @param o {@link }).

Esta nueva acción Paste as JavaDoc analiza el texto del portapapeles y lo pega en un comentario JavaDoc en la posición actual del cursor. Si el cursor no se encuentra posicionado dentro de un comentario JavaDoc existente, la acción adjunta los elementos JavaDoc analizados al JavaDoc de la siguiente definición de campo/método/clase, creando un nuevo archivo JavaDoc para ellos, si es necesario.

Contribuciones a los planes del generador

Hemos realizado algunas mejoras importantes en los planes del generador para optimizar la experiencia del usuario con transformaciones de modelos complejos. Una nueva noción de PlanContribution sustituye y reemplaza por completo la funcionalidad experimental fork as que introdujimos en la versión 2024.1.

Además, también hemos añadido un mecanismo para denotar un modelo de una rama (para cualquier rama que se origine en un plan o una contribución al plan) con atributos de modelo adicionales. Un posible caso de uso para esto podría ser cuando el diseñador del lenguaje/plan desea añadir atributos de modelos personalizados para identificar el resultado de una rama concreta para su posterior procesamiento. Uno de los atributos empleados por el propio MPS es targetFacet (consultar el modelo jetbrains.mps.generator.extensions.common), que indica a <mps.make> qué GenerationTargetFacet/ModuleFacet consultar al determinar una ubicación de salida adecuada para un modelo.

Bifurcaciones condicionales con planes de generador

Tanto el paso fork como un PlanContribution en un plan de generador admiten la activación condicional. Ahora es posible activar determinadas ramas de un plan solo cuando se cumplen ciertos criterios. Por el momento, MPS incluye una instrucción condicional que comprueba los valores de los parámetros del plan especificados. Con el tiempo, tenemos la intención de ampliar las declaraciones para admitir operaciones lógicas (and/or), así como otras operaciones potenciales, manteniendo al mismo tiempo una interpretación estricta de los planes de generación (es decir, sin código BaseLanguage en los planes).

Un diseñador de lenguajes puede proporcionar clases ParameterDeclaration personalizadas. Los valores de estos parámetros se pueden aportar utilizando un punto de extensión PlanParameterContributor. MPS incluye algunos parámetros predefinidos que se pueden utilizar sin configuraciones adicionales. Consulte el modelo jetbrains.mps.generator.extensions.common para obtener información detallada al respecto.

Opciones claras y oscuras de TextIcon

Ahora se pueden configurar las capas de TextIcon para que se apliquen a los temas de color claro y oscuro, o a ambos. Además, los literales de color en la definición de TextIcon pueden proporcionar diferentes valores para los temas de color claro y oscuro.

Revisión del editor reflectivo

El editor reflectivo (predeterminado) tiene un nuevo aspecto. El editor predeterminado de solo lectura se ha fusionado con el editor reflectivo, por lo que ya no hay confusión entre los dos.

Uso de accesos directos de teclado en la vista Project

Se ha mejorado significativamente el proceso de creación de nuevos elementos en el panel Logical de la vista Project mediante accesos directos de teclado. Ahora se pueden introducir nuevos módulos, modelos y nodos sin necesidad de utilizar el ratón.

Resaltado de utilizaciones invisibles

El resaltado de utilizaciones del nodo en el signo de intercalación ahora se limita únicamente a las referencias que son realmente visibles en el editor. Las utilizaciones en nodos que no se muestran realmente en el editor del nodo no se resaltan.

Gran cantidad de correcciones de errores

MPS 2025.3 incluye una amplia gama de correcciones de errores. Puede consultar la lista completa de problemas resueltos aquí.

Actualizaciones de la plataforma

Tema Islands de forma predeterminada

Los nuevos temas Islands se incluyen en MPS 2025.3 y están activados de forma predeterminada.

Guía de migración

Para cada versión principal, preparamos instrucciones sobre cómo migrar desde versiones anteriores de MPS para asegurarnos de que todo se realiza sin problemas. Puede consultarlas con mayor detalle en la guía de migración actualizada.