MPS 2021.2 incorpora un mecanismo de corrección ortográfica, una ventana emergente de finalización automática, mejoras de VCS y mucho más.
La finalización del código, que se suele invocar pulsando Ctrl/Cmd + Espacio, ahora aparece de forma automática después de que deja de escribir, con un retraso de medio segundo de forma predeterminada. Todavía se puede abrir manualmente si es necesario. Más información.
Los cambios de envoltura ahora son mucho más flexibles. Es posible tener cambios internos independientes dentro de los cambios de envoltura y desenvoltura. Además, es posible tener varios cambios de envoltura y desenvoltura uno al lado del otro. Los movimientos internos ahora se detectan dentro de los nodos con IDs modificadas.
Anteriormente, las celdas del editor para los atributos no se resaltaban correctamente en el cuadro de diálogo Diff. Por lo general, se resaltaba todo el nodo con el atributo si se añadía o eliminaba un atributo, en lugar de solo el atributo en cuestión.
La funcionalidad MPS que emplea un mecanismo de corrección ortográfica de IntelliJ IDEA para revisar los comentarios y los literales de cadena en busca de errores tipográficos y ortográficos se ha ampliado para que funcione con cualquier texto que pueda aparecer en una celda de etiqueta. Para indicar que el texto de una celda debe verificarse en un diccionario (como está configurado en las preferencias), solo tiene que añadir el estilo spellcheck
a la celda en la declaración del editor.
Para las plataformas de cliente enriquecido (RCP), no olvide incluir el complemento jetbrains.mps.editor.spellcheck
en la distribución.
Hemos resuelto el escenario en el que un desarrollador con una versión anterior de MPS accedía a un proyecto que se había migrado a una versión más reciente de MPS. El subsistema Migration ahora detecta la versión de la plataforma MPS al aplicar migraciones, y le advierte si un proyecto que intenta abrir se ha migrado a una versión más reciente. Esto permite evitar la corrupción involuntaria de modelos.
Existe un mecanismo para compartir elementos del alcance evaluados durante una lectura de modelo único. Se han introducido nuevas expresiones en j.m.lang.constraints
para compartir ámbitos: for model [ factory, key]
, visible roots [concept]
y visible nodes [concept]
como reemplazo de new ModelPlusImportedScope(model, rootsOnly, concept)
. Las nuevas expresiones se utilizan para guardar el ámbito de un modelo en la memoria caché, lo que significa que solo debe registrarse y calcularse una vez.
Los autores de extensiones tienen que seleccionar qué tipo de acceso otorgar cuando escriben código que funciona con modelos MPS. Para las operaciones SNode (p. ej., setProperty(), addChild(), etc.), solo era posible otorgar acceso a comandos, incluso sin interacción con la interfaz de usuario. Se ha eliminado esta limitación y cualquier código que tenga acceso de escritura para el modelo ahora puede modificar los nodos.
La funcionalidad Descripciones emergentes ahora tiene una función llamada radar que muestra qué celdas tienen descripciones emergentes. El radar de descripciones emergentes se puede activar manteniendo pulsada la tecla Ctrl.
En baseLanguage, ahora es posible usar el operador diamante de Java en constructores para inferir parámetros genéricos del contexto. El operador diamante se habilitará de forma predeterminada para el código nuevo que se escriba. Para habilitarlo en sus constructores existentes, elimine sus parámetros de tipo existentes y defina infer type parameters como true en el inspector, o escriba <>
de nuevo y elimine el parámetro vacío.
En baseLanguage, las propiedades ahora se tienen en cuenta correctamente en la comprobación de tipos. No se generará ningún error para un método no implementado cuando una propiedad herede la interfaz o métodos abstractos. Al definir una propiedad con un tipo genérico, se utiliza el tipo correcto para acceder a la propiedad en una instancia.
Tenga en cuenta que el setter expuesto para una propiedad de tipo T
devolverá un objeto de tipo T
, en lugar de void
.
MPS ahora muestra la diferencia entre los archivos iniciales y las versiones modificadas en la pestaña del editor. Independientemente de cómo invoque la acción Show Diff, el IDE abrirá el diff en el editor de forma predeterminada.
Si le resulta más práctico realizar un seguimiento de los cambios en una ventana independiente, puede arrastrar el archivo deseado desde el editor. Si lo hace, el IDE lo recordará y abrirá los diffs futuros en una ventana independiente.
Hay nuevas flechas ubicadas en la esquina superior derecha de la ventana en Preferences/Settings para ayudarle a navegar por las secciones. Le permiten saltar entre las secciones.
Ahora es más fácil arrastrar y soltar una ventana de herramientas para moverla dentro de la ventana principal del IDE o para convertirla en una ventana independiente. Puede arrastrar una ventana de herramientas haciendo clic y manteniendo la barra con su nombre, y puede soltarla en cualquier zona resaltada.
Existen nuevas opciones para modificar la forma del cursor en el terminal integrado. Además, el terminal también es compatible con accesos directos usando Opción (⌥) como tecla Meta. Por ejemplo, puede utilizar los siguientes accesos directos: