Mps logo

MPS

Language workbench to create Domain-Specific Languages

News

The Feature Freeze for 2019.2 is available

The last early access for the 2019.2 comes with new features. For this version, you can expect new error messaging customization, VCS history of changes to a specific root, a new way to run typechecking queries, and the important announcement that MPS 2019.2 will run in JDK 11. 

 

DOWNLOAD MPS 2019.2 EAP5

Customization of error messages

For some time, there were requests for the possibility to customize some MPS error messages. Thanks to a request from one of our paying clients, we were able to give the highest priority state to this feature. All constraint checker error messages can be customised now.

We are planning to make this reporting customization available for other kinds of errors in for the next releases.

New language aspect named ‘feedback’ was added in this version. This aspect can be used for customising the text of error messages reported by structure validation, property and scoping constraints.

errormessage1

The feedback ‘ShowMessage’ defines the text displayed in the tooltip when you move the mouse cursor over the problem node.

errormessage2

Note that you can define your own custom feedback by extending the given set of feedback languages, for instance, you might describe feedback which highlights the edges or vertices in the diagram editor.

 errormessage3

Rules constraints language

Rules constraints language was created in order to replace currently available canBe* constraint from the regular MPS constraints language in the future. We consider Rules constraints language as experimental functionality, so we expect it to evolve significantly in next releases.

constraint1 

For now, we keep precedence of old-style constraints, so old canBe* constraints should be completely removed in order to let rule-base constraints step in. New constraints definition language is more declarative, it forces the language designer to specify a set of isolated constraints instead of the single conditional block and it allows to customise error messages for each constraint separately.

constraint2

 

 

Root History

The Git menu comes with a new action to show the history of VCS changes to a specific root. The action is available from the editor’s context menu:

roothistory1

Note, collecting root history, as with almost any other VCS history action, is time-consuming. There’s a progress indicator in status bar that helps you bear with this.

The dialog is similar to Selection History dialog of IntelliJ IDEA:

roothistory2

A list of revisions in the dialog shows revisions of a model file when the respective root has been changed.

 

Typechecking Facade API

As of this release, the new facade API is the only supported way to run typechecking queries. 

New API: See jetbrains.mps.typechecking.TypecheckingFacade and related classes.

Deprecated API (legacy): The hierarchy of the packages jetbrains.mps.typesystem.* is now deprecated. Any direct usage of classes within this hierarchy is discouraged, except for code that is automatically generated from the contents of a “typesystem” aspect. 

 

Java 11 as runtime

MPS will now run under JDK 11. This will affect the mechanism of loading stub models. Most of the project won’t need migration, but be aware that it’s possible that some JDK classes and fields will be moved with the new version. 

In Idea plugin, the modules with MPS facet should now have at least JDK 11. Otherwise, it will not generate.

 

Not only that, we have solved a large number of other minor and not so minor issues, see the complete list here. Use our issue tracker to report any problems that you find.

 

Have a nice day!

Your JetBrains MPS Team

The Drive to Develop

MPS 2018.1

image description