Novedades de MPS 2020.1

¡MPS 2020.1 añade mejoras al editor, el lenguaje de patrones Light, Javadocs para modelos de stub, mejoras en BaseLanguage y muchas más nuevas capacidades!

Utilizar separadores diferentes según la posición en la lista

Utilizar separadores diferentes según la posición en la lista

Al editar nodos con cardinalidad (0,n) o (1,n), tenía la posibilidad de proporcionar un separador personalizado entre valores implementando una función de consulta de separador. Esta funcionalidad amplía la posibilidad de pasar más argumentos a la función de consulta (en concreto, prevNode y nextNode), lo que permite proporcionar un separador personalizado para cada par de valores. En la siguiente captura de pantalla, “and” y “,” son los separadores.

Más información

Patrones light

Patrones light

El lenguaje de patrón ayuda a definir los patrones de estructura y a ajustar sus nodos. Emplea editores de conceptos regulares que hacen que el patrón tenga un aspecto similar a los nodos que acepta. Pero para algunos editores complejos que no se corresponden exactamente con la estructura de concepto, puede ser más práctico utilizar patrones light (constructores de patrones) que describen la estructura requerida literalmente.

Más información

Descripciones emergentes

Descripciones emergentes

The editor extension of the Tooltips from mbeddr platform has been added to MPS. También se proporcionará una migración para el lenguaje mbeddr.

Más información

Menús para transformar/sustituir: combinar menús predeterminados y con nombre

Menús para transformar/sustituir: combinar menús predeterminados y con nombre

Esta es una mejora que simplifica los menús Transformation y Substitution eliminando los conceptos predefinidos para los menús del editor con nombre (SubstituteMenu_Named) y predefinido (SubstituteMenu_Default). Los dos conceptos se han combinado en su primario (SubstituteMenu). El tipo de menú ahora se selecciona en el editor de menú. La misma refactorización se ha aplicado a los menús Transformation.

Detección de errores para editores rotos

Si el código en el aspecto editor de un lenguaje arroja una excepción, se muestra el editor predeterminado para una celda correspondiente en un modelo escrito en el lenguaje. A partir de la versión 2020.1, si se abre en el editor este tipo de celda rota, se muestra un error en la ventana de herramientas Messages. Es posible obtener la traza de pila a partir del error y acceder a la celda problemática.

Más información

Escribir sobre texto existente

Escribir sobre texto existente es una nueva funcionalidad que hace que el editor de proyección parezca un poco más un editor de texto. Al escribir en una celda de texto, si el carácter que acaba de escribir ya estaba presente en la posición del cursor, el cursor se desplazará por encima como si sobrescribiera el carácter existente. Esta funcionalidad solo se activa si la pulsación de tecla no se puede procesar fácilmente y de lo contrario se ignoraría (p. ej., en celdas constantes) o si invalidaría el contenido de la celda.

Esta funcionalidad está activada de forma predeterminada y puede desactivarla en Settings / Editor / General.

Más información

Eliminación de extensiones de lenguaje innecesarios

Ahora el generador detecta las extensiones del editor para otros lenguajes y genera un código que manifiesta la dependencia explícitamente. Esto significa que los diseñadores de lenguajes no tienen que preocuparse sobre este tipo concreto de dependencia entre lenguajes. Ya no se necesita una dependencia «extends» entre los módulos de lenguaje para activar las extensiones del editor.

Más información

Comentarios Javadoc en modelos de stub Java

Hay un nuevo mecanismo para especificar un archivo zip que contenga las fuentes de una biblioteca junto con el jar de la biblioteca. Ahora MPS es capaz de extraer el javadoc de las fuentes para presentarlo junto con información extraída de los archivos de clase.

Más información

Comentarios multilínea en BaseLanguage

La funcionalidad de SingleLineComment se ha mejorado ligeramente y se ha introducido el nuevo concepto MultiLineComment en BaseLanguage para permitir los comentarios delimitados por los símbolos /* … */ del mismo modo que en Java.

Mejoras de BaseLanguage inspiradas en el idioma Java

BaseLanguage ahora incluye try with resources, la detección de varias excepciones, la inferencia de tipo para las variables locales, y los métodos de interfaz predeterminado y privado. Para proporcionar compatibilidad con los procesos de build que requieren un nivel de lenguajes Java específico, cada solución puede configurarse para prohibir las funcionalidades de lenguaje que no son compatibles con ese nivel. Excepto por la funcionalidad local variable type inference, que requiere j.m.baseLanguage.varVariable, estas funcionalidades no requieren más importaciones de lenguaje.

Ver la guía de migración

Otras mejoras

Interfaz Commit no modal

Para mejorar el flujo de las confirmaciones, hemos desarrollado una nueva ventana de herramientas Commit para gestionar todas las tareas relacionadas con las confirmaciones. Proporciona más espacio para la lista de archivos modificados y el diff, y le permite añadir cambios a una confirmación cuando están listos, crear un mensaje de confirmación de iteración, y elegir qué cambios provisionales se envían a qué confirmación.

No está activada de forma predeterminada, por lo que si desea probarla, seleccione “Use non-modal commit interface” en Preferences/Settings | Version Control | Commit.

Modo Zen

Este nuevo modo le ayuda a centrarse en su código gracias a la combinación del modo en pantalla completa y el modo sin distracciones. Para probar el modo Zen, vaya a View | Appearance | Enter Zen Mode.

Instalar Git desde el IDE

Ya no necesita preinstalar Git manualmente. Cuando clona un repositorio de Git existente, el IDE buscará el Git ejecutable en su máquina y se ofrecerá a descargarlo y configurarlo por usted si el IDE no puede localizarlo.

Ruta de acceso a los archivos de configuración

Tenga en cuenta que en MPS 2020.1, la ruta de acceso a los archivos de configuración se ha modificado.

Más información

Fuente JetBrains Mono de forma predeterminada

MPS ahora utiliza la nueva fuente JetBrains Mono (Preferences / Settings | Editor | Font) de manera predeterminada. Consulte todos los detalles sobre nuestro tipo de letra más cómoda para los desarrolladores en nuestro sitio web.

Marketplace llega a MPS

JetBrains Plugin Marketplace is now available in MPS. Esto abre una nueva serie de oportunidades, ya que le permite comercializar sus complementos.