Mps logo


Language workbench to create Domain-Specific Languages

Early Access Program Features

MPS 2021.1 EAP3 is now ready for you to try

We are getting ready for the major release of MPS 2021.1, and the Early Access Program (EAP) is our way of sharing with you the new functionality that we have been working on in recent months. Here are the new features we’ve implemented in this version.

Model viewer in diff dialog

The MPS model viewer is enabled for merged commits in Git log. The viewer displays three panels – the center panel for the merged model and, the left and right panels for the models of the two merged branches.

Revisions graph used for root annotation and root/node history

The root annotation and root/node history algorithms were based on the ordered list of file revisions, calculating the changes for the root between two adjacent revisions. It was possible, however, for these revisions to be from two different branches, in which case the obtained changes made no sense. Merge revisions also were not handled correctly. The changes from the older rounds of revision could be erroneously displayed as changes from the newer merge revision. Now the algorithm considers the revisions graph when it calculates the change history.

Method signature refactoring improvements

The Method Signature refactoring dialog now includes a way to specify default values for new arguments or arguments whose types have changed. When a parameter is removed but is still used in the method, a new local variable is introduced so the reference is not lost. In addition, vararg type parameters are now handled.

When the call of a method does not match its signature, an intention action allows you to change the method signature according to the call. This intention action has been improved. It now maps the existing parameters more intelligently, so the maximum number of existing parameters are reused and their references are kept.

New options in BaseLanguage comments

The lang.text language has been enhanced with several new capabilities, which directly enhances single and multi-line comments in BaseLanguage.

  1. Text selection now allows you to select only parts of lines when selecting up and down.
  2. Actions such as bold, italicize, and underline work on selection.
  3. Copy/paste from and into plain text has been implemented.
  4. Bullet and numbered lists are now supported.

Improved expressions in lang.smodel

The expressions model.roots(), model.rootsIncludingImported() and model.nodesIncludingImported() now support #expression for specifying concepts, just as model.nodes() does.

Compiled generators

Generator Preferences in the IDE contains an option called “Warn when child cannot be placed into role”, which checks whether the nodes template that is produced fits into the proper role of a parent node. The option is available through build project settings as well. The generator may issue a warning, which usually indicates there’s some inconsistency in the templates, such as an improperly placed Template Fragment or COPY-SRC annotation.

Compiled templates, however, didn’t perform the check. With MPS 2021.1, compiled templates now go the extra mile and check whether children are properly placed into parent nodes if the option is active.

Apple Silicon Support

You can now use MPS on Macs that have an M1 chip. To get started, download the installer for JetBrains MPS for Apple Silicon directly from our website or get it from the Toolbox App.

Space is here

The Space plugin is now bundled with MPS 2021.1.

Auto-import settings

With MPS 2021.1, the Import Settings dialog that appears every time you install a new version of MPS will only be shown when the user doesn’t have the appropriate settings and configurations.


And last but not least, we’ve fixed a long list of bugs from our issue tracker. Please continue to report any errors you encounter and share your feedback with us.

Have a great day!

Your JetBrains MPS team

The Drive to Develop


image description