Feature Freeze for MPS 2021.1
Today we’re rolling out the last build in the Early Access Program for MPS 2021.1, and these are the last few features that will be included in the release. Try them out.
Zoom in and Zoom out
The font size can be quickly adjusted in the currently open editor window by holding Control/Command and rolling the mouse wheel. Font size is not persistent, so when you reopen the file, the text size will be reset to the default value. You can enable/disable the feature in settings in the Editor -> General section: Change font size with Ctrl/Cmd+Mouse Wheel.
Improved performance on indent layout
The indent layout implementation has been made incremental in some core cases, which will reduce the rendering time for big models in languages that mainly use the indent layout (such as BaseLanguage). This feature can be disabled with the VM option mps.indent_layout.disable_incremental.
Root annotation improvements
Version Control System support adds improvements to the Root annotation. A new algorithm for calculating revision changes with movement tracking is now used for root annotation (MPS-33188). The colors for annotated lines/cells are calculated using only those revisions where the root was changed (MPS-33186). The annotated cells now have the special context menu group. You can copy the Revision Number, Show Diff, and perform other actions for each annotated cell (MPS-33157).
Java Compiler for MPS modules with Java facet
A lot has changed in our approach to Java compilation of MPS modules. We started this change to address one of our top-voted issues, Annotation Processing support (MPS-27653). We switched the MPS Java Compiler infrastructure to utilize javax.tools.JavaCompiler set of APIs, so MPS can now use any compiler that implements this standard API. As of MPS 2021.1 we run with the default compiler configured for the API, with an option to use the Eclipse Compiler for Java (ECJ), if present. When ECJ libraries are in the classpath, you may switch MPS to use ECJ with mps.compiler.java=ecj‘ as the system property (e.g. by editing mps.vmpoptions). Note that if you experience unrecoverable issues using the new compiler infrastructure, there’s also an option to switch back to the legacy mechanism of direct ECJ API by changing the configuration for mps.compiler.java=ecjlegacy as the system property.
Furthermore, now we run the compiler with the -release option, with the version specified in project preferences (Preferences -> Java Compiler). This option is stricter than the combination of -source/-target options on which MPS relied in the previous releases, as it controls uses of library APIs that were available in certain releases. You may need to update the Java version in your project if you encounter compilation issues due to using APIs not available in certain releases.
Updated Transform statement in GenPlan declaration
To evolve the Generation Plan extensibility story, there’s a new mechanism to include languages/generators that are unknown to the plan designer. Now, with the transform statement, the language designer may include a language that targets or extends a given one. When we say Language B ‘targets’ Language A, we mean that Language B’s generator produces constructs of Language A.
- There is now a visual indication that the intention of the Call-Site macro is executed. (MPS-32928)
- Changes to the new model dialog. (MPS-30787)
We’ve stopped developing new features and are now focusing on stabilizing the new functionality in MPS 2021.1. Please report any problems you encounter so we can fix them before the release.
Have a great day!
Your JetBrains MPS team
The Drive to Develop
Subscribe to Blog updates
Thanks, we've got you!
The Early Access Program for MPS 2021.3 is open
Our release of MPS 2021.3 will be delayed until next year. That said, we can’t finish the year without giving you a glimpse of what you can look forward to. DOWNLOAD MPS 2021.3 EAP Experimental Kotlin language support An experimental Kotlin implementation is now bundled with MPS. While it supports m…
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 view…
Early Access Program of MPS 2021.1 is open
The Early Access Program is an important part of our product development process for identifying critical issues with the new release features. If you encounter any problems, please report them to our issue tracker. Check out the new functionality that we have prepared for you. Improved access to $L…
MPS 2020.3 is now available
Over the past few months we have been working to make MPS more usable, and we’ve been fixing issues reported by users. In this blog post, we describe this version's new functionality, and you can also watch our screencast with the main features. DOWNLOAD MPS 2021.1 New generator macro There's a…