What’s New in MPS 2023.3

MPS 2023.3 brings a modern new UI, offers the option to document the structure of your languages, and introduces improvements to version control management, build infrastructure, and several areas of the user interface. Check out the detailed list of enhancements below.

New UI

Support for the new UI

MPS has followed the other JetBrains IDEs and adopted a new, modern, and more intuitive user interface. It comes with a cleaner layout, an updated design, new color schemes, and re-designed visual elements, such as icons and tool windows.

The traditional UI remains the default for the time being, but we encourage you to give the new one a try. Not only is it more pleasing to the eye, but we believe it offers a more efficient workflow, as it follows the principles of productive human-to-computer interaction.

To motivate you to make the shift, we recommend checking out the New UI page, which summarizes its key benefits.

Since this is a fairly new addition to MPS, you may discover some rough edges here and there. Please report any UI-related issues so we can fix them without delay.

For your standalone IDEs that are built with MPS, the traditional UI is the default option at the moment. If language designers decide to enable the new UI in their IDEs, they should follow the instructions provided in the documentation.

Doc Facet

Documentation facet

There’s a new Documentation facet for writing and generating documentation for concepts in the structure aspect. It allows you to:

  • Write documentation as text using a dedicated language embedded into the structure language.
  • Perform a quick preview of the documentation in an in-editor tooltip.
  • Generate HTML documentation.

Read more about this new feature in the documentation.

Updated dialog design for tooltips

We’ve reimplemented the popup message that displays tooltips. It can now show additional information, such as the documentation specified through the new Documentation facet. In the lower right-hand corner of the popup, the message offers additional actions, including the option to open the displayed piece of documentation in the Documentation tool window.

Inspector

Inspector tool window position change

If you have tried the new UI in an earlier version of MPS, you might have noticed that the Inspector tool window button was located in the bottom left-hand corner of the screen. Although we have now moved it to the bottom-right, your settings may still contain the original bottom-left position if you choose to copy them from previous MPS installations.

In such cases, we recommend manually moving the Inspector tool window to the bottom-right part of the tool window bar, as this is where we think it fits best. Just drag it there with your mouse. You are of course free to place it anywhere you like, though.

Convert Concept

Ability to convert concepts into interface concepts

An updated intention action is now available to help language designers quickly and painlessly convert concept declarations into interface concepts, and vice versa. This is typically needed in the early stages of development, when the fundamental ideas are still to be discovered and so the structure of your new language is rather fluid and requires frequent changes.

Unlike in earlier versions, the intention action now helps ensure that all of the concept’s aspects, as well as references from models, are preserved.

Make Dependencies Settings

Improved dependency detection during the make process

When a user model is made or rebuilt, the Make subsystem now considers the model’s dependencies and makes the required ones automatically. This makes the whole process more robust.

This option can be turned on and off in Settings | Advanced Settings | Make/Rebuild to balance the correctness of the make process with its performance.

History

Show History action for modules in the Logical View tool window

The popup menu that appears when you right-click on a module in the Logical View tool window now includes an option to show the Git history for that module. It will show the history of all files in the module directory as well as its subdirectories.

Local GIT

VCS: Git menu for root nodes in the Logical View tool window

The Git menu is now available on root nodes displayed in the Logical View tool window. This brings all the actions you frequently need, like Show Node History and many others, much closer to your fingertips.

Group Extension

Group file changes by extension

The dialogs that display VCS changes may end up showing a lot of files that have changed. To make organizing these lists of files easier, we’ve made it possible to sort them by file extension in addition to the previously available option to sort by directory. This applies to lists in dialogs and windows like the Diff and Changes tool windows, the Git tool window, or the context menu of the Pull Requests tool window.

Miscellaneous

  • When writing unit tests, MPS now recognizes the JUnit 5 @ParameterizedTest annotation in test classes.
  • When building language plugins and standalone IDEs, the icons assigned to language concepts now get correctly copied over by the build scripts.
  • The generator’s root mapping rules no longer complain about using a template declaration and therefore behave the same as conditional root rules in this respect.
  • The generator VARs can be directly referenced everywhere, not just inside queries.
  • An intention action is now available to help users turn on background updates for individual action groups.
  • The module descriptor no longer tries to shorten persisted paths with the most suitable of the available path variables, instead keeping the original path intact. This applies to all path values that MPS stores (for example Java sources and libraries, model roots, and output locations).

Platform updates

Presentation assistant

Presentation Assistant

When the presentation assistant is enabled in View | Appearance | Presentation Assistant, the editor will show the name and shortcuts of any action you invoke. This is in particular useful when presenting or teaching with MPS.

Speed Search available via shortcut

The Speed Search functionality, which allows you to quickly navigate within tool windows and dialogs, is now available via a shortcut. Once the focus is placed on a tree or list, you can easily invoke the search from the tool window’s Options menu. Alternatively, you can use the shortcut Ctrl+F, or simply start typing your query. You can assign a custom shortcut for the Speed Search feature in Settings / Preferences | Keymap.

Default tool window layout option

Default tool window layout option

MPS 2023.3 further improves the ability to save multiple tool window layouts and switch between them. The new Default layout option provides a quick way to revert your workspace’s appearance to its default state. This layout is not customizable and can be accessed through Window | Layouts.

Migration Guide

For every major release, we prepare instructions on how to migrate from older MPS versions to ensure everything goes smoothly. Please review them carefully.