Novedades de MPS 2021.1

MPS 2021.1 incorpora compatibilidad con Java Annotation, gran cantidad de mejoras en VCS, Apple Silicon y mucho más.

Editor

Acercar y alejar con zoom

El tamaño de fuente se puede ajustar rápidamente en una ventana abierta del editor con solo pulsar control y girar la rueda del ratón. Los cambios en el tamaño de fuente no son permanentes, así que cuando vuelva a abrir el archivo, el tamaño del texto volverá al valor predeterminado. Puede habilitar/deshabilitar esta funcionalidad en Preferences | Editor | General, en el apartado Change font size with Ctrl/Cmd+Mouse Wheel.

Rendimiento mejorado en el diseño de sangría

La implementación del diseño de sangría ahora es incremental en algunos casos esenciales, lo cual reducirá el tiempo de renderización para grandes modelos en lenguajes que utilizan principalmente el diseño de sangría (como BaseLanguage). Esta funcionalidad se puede deshabilitar con la opción de VM mps.indent_layout.disable_incremental.

Opciones del espesor de fuente

Opciones del espesor de fuente

Elegir una fuente para el editor que se pueda leer sin dificultad durante largos periodos de tiempo resulta fundamental. La configuración de tipografía añadida recientemente facilita un poco esta elección y la hace más personalizada. En v2021.1, puede ajustar el espesor de los estilos de fuente principal y negrita en Preferences | Editor | Fonts.

Sistema de control de versiones

Mejoras en la anotación de raíz

Mejoras en la anotación de raíz

La compatibilidad con el sistema de control de versiones añade mejoras en la anotación de raíz. Ahora se utiliza un algoritmo nuevo para calcular los cambios en las revisiones con seguimiento de movimientos para la anotación de raíz. Los colores para líneas/celdas anotadas se determinan solo a partir de las revisiones en las que se ha modificado la raíz. Las celdas anotadas ahora cuentan con el grupo de menú contextual especial cuando la columna de anotación está abierta. Puede aplicar Copy Revision Number, Show Diff y otras acciones a cada celda anotada.

Diálogo de diferencias para confirmaciones combinadas

Diálogo de diferencias para confirmaciones combinadas

El diálogo de diferencias está habilitado para confirmaciones combinadas en el registro Git. El visor muestra tres paneles: el panel central para el modelo combinado, y los paneles izquierdo y derecho para los modelos de las dos ramas combinadas.

Sincronizar el desplazamiento en el editor de diferencias

Sincronizar el desplazamiento en el editor de diferencias

Ahora ya puede desconectar la sincronización de desplazamiento del editor en el diálogo de diferencias con solo pulsar un botón.

Gráfico de revisiones utilizado para anotación de raíz e historial de nodo/raíz

Los algoritmos de anotación raíz e historial de nodo/raíz se basaban anteriormente en la lista ordenada de revisiones de archivo, calculando los cambios en la raíz entre dos revisiones adyacentes. Sin embargo, estas revisiones podían ser de dos ramas distintas, en cuyo caso los cambios obtenidos no tenían sentido. Las revisiones de combinaciones tampoco se gestionaban correctamente. Los cambios procedentes de revisiones más antiguas se podían mostrar erróneamente como cambios de una revisión de combinación más reciente. Ahora el algoritmo tiene en cuenta el gráfico de revisiones al formular el historial de cambios.

Save to Shelf

Nuestra nueva acción Save to Shelf le permite copiar sus cambios al Shelf al tiempo que los mantiene en los cambios locales. Puede acceder a esta acción pulsando ⇧⌘A en macOS (Ctrl+Mayús+A en Windows o Linux) y escribiendo «Save to Shelf».

Generador

Acceso mejorado a variables macro $LOOP$

Acceso mejorado a variables macro $LOOP$

Ahora se puede hacer referencia al nodo de entrada de una macro LOOP utilizando una expresión LOOP.inputNode, para que ya no sea necesario utilizar una macro VAR. También se puede acceder al índice de la LOOP con el mismo espacio de nombres utilizando LOOP.index y sustituyendo la variable de contexto anterior definida por el usuario.

Instrucción Transform actualizada en la declaración GenPlan

Para mejorar al extensibilidad de plan de generación, existe un mecanismo nuevo para incluir lenguajes o generadores desconocidos para el diseñador del plan. Ahora, con la instrucción transform, el diseñador del lenguaje puede incluir un lenguaje destinado a otro existente o que lo extienda. Cuando decimos que el Lenguaje B "tiene como objetivo" el Lenguaje A, queremos decir que el generador del Lenguaje B crea construcciones del Lenguaje A.

Mejora de plantillas compiladas

Con MPS 2021.1, las plantillas compiladas ahora comprueban si las secundarias están correctamente situadas en nodos principales si la opción está habilitada.

Más información

Miscelánea

Java Compiler para módulos MPS con faceta de Java

Han cambiado muchas cosas en nuestro enfoque de la compilación Java de los módulos MPS. Esto trata una de nuestras incidencias más votadas, la asistencia para el procesamiento de anotaciones. Cambiamos de infraestructura de MPS Java Compiler para utilizar el conjunto de API javax.tools.JavaCompiler, de modo que MPS ahora puede utilizar cualquier compilador que implemente esta API estándar. En la versión 2021.1, MPS se ejecuta con el compilador predeterminado configurado para esta API, con la opción de utilizar el Eclipse Compiler para Java (ECJ).

Más información

Versión base de MPS para migraciones de proyectos

Cuando se crea un nuevo proyecto, ahora se guarda una versión MPS "base". Las migraciones de proyectos para versiones de MPS anteriores a la versión de base de proyecto no son aplicables. Esto ofrece a los autores la flexibilidad de otorgar a las migraciones de proyectos la versión "base" especificada que deseen, que pueden modificar en la interfaz de migración del proyecto utilizando el nuevo método 'getBaselineVersion():int'.

Más información

Mejoras en la refactorización de las firmas de método

Mejoras en la refactorización de las firmas de método

El diálogo de refactorización Method Signature ahora incluye un modo de especificar valores predeterminados para nuevos argumentos o argumentos cuyos tipos han cambiado. Cuando se elimina un parámetro pero se sigue utilizando en el método, se introduce una nueva variable local para que la referencia no se pierda. Si la llamada a un método no coincide con su firma, una acción de intención le permite cambiar la firma del método para adaptarla a la llamada.

Más información

Nuevas opciones en los comentarios de BaseLanguage

El lenguaje lang.text ahora cuenta con varias nuevas capacidades, lo cual mejora directamente los comentarios de una y varias líneas en BaseLanguage.

  • La selección de texto ahora le permite destacar solo partes de líneas al seleccionar hacia arriba y abajo.
  • Acciones como negrita, cursiva y subrayar funcionan durante la selección.
  • Ahora ya puede copiar/pegar desde y a texto sin formato.
  • Ahora se admiten las listas numeradas y con marcadores.

Expresiones mejoradas en lang.smodel

Las expresiones model.roots(), model.rootsIncludingImported() y model.nodesIncludingImported() ahora admiten #expression para especificar conceptos como lo hace model.nodes().

Control de la visibilidad de módulos distribuidos con su complemento

Los complementos informan a MPS de los módulos a los que contribuyen utilizando un punto de extensión com.intellij.mps.LanguageLibrary. Los puntos de extensión ahora pueden ofrecer un atributo hide="true" opcional, lo que hace que los módulos del complemento sean elegibles para su filtrado mediante un patrón especificado con com.intellij.mps.VisibleModuleMask.

Más información

Otras mejoras

Vista previa HTML integrada

Vista previa HTML integrada

La nueva vista previa del navegador integrada le permite previsualizar los archivos HTML rápidamente. Para abrirla, haga clic en el icono con el logotipo de MPS en el widget de la esquina superior derecha del editor. Si realiza algún cambio en el código HTML o si cambia los archivos CSS y JavaScript enlazados, la vista previa se actualizará sobre la marcha.

Compatibilidad con Apple Silicon

Ahora puede utilizar MPS en Macs con chip M1. Para comenzar, descargue el instalador de MPS de JetBrains para Apple Silicon directamente en nuestra página web u obténgalo en nuestra aplicación JetBrains Toolbox App.

Autoimportación de ajustes

Con MPS 2021.1, el diálogo Import Settings que aparece cada vez que instala una nueva versión de MPS solo se mostrará cuando no tenga los ajustes y configuraciones adecuados.

Accesibilidad mejorada

En esta versión, hemos añadido más etiquetas para los elementos de la interfaz de usuario en la pantalla de bienvenida, en la vista Project Structure y en el registro de VCS. Estos elementos, además de los iconos del medianil, ahora se leen correctamente cuando se habilita un lector de pantalla. También estamos trabajando para mejorar la accesibilidad para los usuarios de macOS.