Novedades de MPS 2021.3

MPS 2021.3 incorpora Coderules, compatibilidad experimental con Kotlin, lambdas de Java, un montón de mejoras de VCS, ¡y mucho más!

Coderules

No es ningún secreto que llevamos varios años trabajando en un nuevo sistema de tipos. La trayectoria para conseguirlo no ha sido fácil ni directa, pero por fin tenemos algo que mostrar. Coderules aún está en fase Beta, por lo que no se incluye en MPS.

Como se trata de un subsistema completo, hemos preparado un curso online que le guiará por sus fundamentos.

Ir al curso

Compatibilidad experimental con el lenguaje Kotlin

Compatibilidad experimental con el lenguaje Kotlin

MPS incorpora ahora una implementación experimental de Kotlin. Aunque admite la mayoría de los elementos estructurales del lenguaje (y su generación de texto), sigue siendo solo parcialmente compatible.

Más información.

Ocultar la acción de revisión en anotaciones

Ocultar la acción de revisión en anotaciones

La nueva acción Hide Revision (Ocultar revisión) permite excluir una revisión del resultado de la anotación y mostrar el resultado tanto en el editor como en el medianil. Las revisiones excluidas pueden restaurarse con la acción opuesta Restore Hidden Revisions (Restaurar revisiones ocultas).

Más información.

Optimización de los resultados de la acción de revisión de anotación

La acción Annotate (Anotar) en MPS no es tan rápida como la operación git blame para archivos de texto, ya que el resultado de la anotación se construye para los modelos. Las acciones Annotate revision (Anotar revisión) y Annotate previous revision (Anotar revisión previa) utilizan el mismo algoritmo para construir el resultado que la acción Annotate (Anotar), y también eran lentas. El resultado de Annotate revision y Annotate previous revision puede construirse instantáneamente utilizando el resultado obtenido de las acciones iniciales Annotate (Anotar).

Cuadro de diálogo de detalles en las raíces de la fusión

Cuadro de diálogo de detalles en las raíces de la fusión

Se ha introducido la acción Show Details (Mostrar detalles) para dar más detalles sobre las ramas durante la fusión. La acción es accesible desde la ventana de fusión de revisiones.

Descripciones cortas de los cambios en las descripciones emergentes del cuadro de diálogo Diff

Descripciones cortas de los cambios en las descripciones emergentes del cuadro de diálogo Diff

Hemos introducido una nueva acción que puede cambiar la descripción de los cambios en las descripciones emergentes del cuadro de diálogo Diff. La descripción es más corta y más legible.

Descripciones emergentes de editor mejoradas
Petición de nuestros clientes

Ahora puede hacer clic en los enlaces dentro de las descripciones emergentes, y la ventana emergente de las descripciones permanece dentro de la ventana principal de la aplicación. También puede desplazarse dentro de una descripción emergente si tiene mucho texto.

Nuevo algoritmo diff en el proceso de fusión

Nuevo algoritmo diff en el proceso de fusión
Patrocinado por el cliente

El nuevo algoritmo se desarrolló para encontrar cambios conflictivos, no conflictivos y simétricos para cambios de nuevos tipos. Hemos introducido un mecanismo de interfaz de usuario para cambiar entre los algoritmos con y sin seguimiento de movimiento de nodos en la ventana de fusión.

Más información.

Cambios anidados de envoltura y desenvoltura detectados en el cuadro de diálogo diff

Cambios anidados de envoltura y desenvoltura detectados en el cuadro de diálogo diff
Petición de nuestros clientes

Aunque antes era posible detectar inserciones, eliminaciones y movimientos internos dentro del cambio de envoltura o desenvoltura, no se detectaban los cambios de envoltura anidados. Ahora ya puede detectarlos.

Configuración de VCS reorganizada

Configuración de VCS reorganizada

Los ajustes de VCS se han reorganizado para hacerlos más visibles y utilizables. En Preferences/Settings | Version Control (Preferencias/Configuración | Control de versiones) encontrará ahora una lista de los ajustes disponibles para configurar su VCS. Además, hemos añadido un nodo independiente para Directory mappings, y las operaciones en segundo plano están ahora activadas por defecto.

Si va al nodo Git, verá que hemos dividido todas las configuraciones en secciones que incluyen los procesos más importantes: Commit, Push y Update.

Generación de cierres compatibles en lambdas Java

Generación de cierres compatibles en lambdas Java
Patrocinado por el cliente

Los cierres MPS se generan ahora en expresiones lambda de Java si son compatibles. Las incompatibilidades incluyen el uso de:

  • Operaciones yield
  • Clases abstractas «funcionales»
  • Anotaciones
  • Variables locales en conflicto con el ámbito principal

Más información.

Etiqueta de asignación de tuplas

Etiqueta de asignación de tuplas
Petición de nuestros clientes

Hemos introducido una funcionalidad experimental para utilizar un par de nodos como clave para la asignación, node<>, node<> --> node<>. Esto es útil en situaciones en las que se necesita soporte para dos conceptos de origen. Si desea probarlo, se utiliza de la misma manera que las etiquetas con un nodo clave.

Más información.

Acceso a todos los valores de dos asignaciones clave en generadores
Petición de nuestros clientes

Además de la funcionalidad de etiqueta de asignación para tuplas, ahora admitimos una consulta para acceder a todas las asignaciones conocidas para dos claves dadas, genContext.get output list LABEL for (node1, node2).

El rastreo de rendimiento informa del tiempo empleado en resolver las referencias dinámicas

Debido a las numerosas evaluaciones de ámbito, la resolución de las referencias dinámicas suele ralentizar la transformación de modelo a modelo. El rastreo de rendimiento oculta esta información vital bajo un vago título de «restauración de referencias». Ahora, el tiempo empleado en restaurar las referencias dinámicas se informa por separado del tiempo empleado en restaurar las referencias regulares o estáticas.

Mejoras en la migración de proyectos

Mejoras en la migración de proyectos

En esta versión hemos simplificado el proceso de creación de migraciones de proyectos. Solo tiene que crear una solución de complemento, escribir la raíz del complemento de migración y aplicación, e incluir esta solución de complemento con el script de build.

Mejora de la tarea Ant <migrate>

La tarea Ant <migrate> ahora es compatible con varias especificaciones de proyectos y puede migrar varios proyectos a la vez. Puede utilizar elementos anidados <project path="”/> o el <dirset> normal de Ant para enumerar las ubicaciones del proyecto para la tarea.

Checkout and Rebase onto Current para ramas remotas

Checkout and Rebase onto Current para ramas remotas

La acción Checkout and Rebase onto Current le permite extraer la rama seleccionada y volver a situarla sobre una rama que está actualmente extraída. Antes, esto solo era posible para las ramas locales, pero en MPS 2021.3 se puede aplicar también a las ramas remotas.

Nueva ventana de herramientas Changes

Nueva ventana de herramientas Changes

En MPS 2021.3, el IDE muestra la diferencia entre confirmaciones en una ventana de herramientas Changes por separado, situada a la izquierda del editor.

Nueva acción Push All up to Here

Nueva acción Push All up to Here

Esta funcionalidad le permite hacer push solo de las confirmaciones de las que está seguro, y dejar el resto para más adelante. Para utilizarla, elija la confirmación en la que desea detenerse, haga clic con el botón derecho del ratón para llamar al menú contextual y seleccione la nueva acción Push All up to Here.

Guía de migración 2021.3

Como en cada lanzamiento, hemos preparado la guía de migración para una transición sin problemas desde una versión anterior.