What’s New in MPS 2020.2

MPS 2020.2 brings a new look for the VCS, tests for quick fixes, enhancements to Generation Plans, and a variety of other improvements.

UI improvements to the VCS

UI improvements to the VCS

We’ve improved the look and feel of the Version Control System. The width of the editor area is no longer fixed, so the splitter can now be moved in both directions. The way changes are highlighted has also been improved. Tooltips for the changes are displayed both in the editor area and in the splitter area. Additionally, we have replaced the triangles and trapezoids in the splitter area with smooth polygons.

Improved root and node histories in VCS

Improved root and node histories in VCS

The existing "Show Root History" action in VCS did not always display results that were correct. With this fix, the models are compared instead of the source files, which results in the output always being meaningful. Furthermore, it is now possible to display the history for any node, not just root nodes.

New change type in VCS

New change type in VCS

MPS is now able to structurally diff/merge non-referenceable parts of BaseLanguage models. For any instances of BaseLanguage concepts that are not supposed to be reference targets (e.g. BlockStatement or ForStatement), the MPS diff/merge algorithm will ignore the ID of the node and compare the actual node structure instead. This will prevent MPS users from struggling with structurally identical changes leading to merging errors.

Learn more

Select next sibling

It is now possible to use Shift+Left/Right arrow keys to select multiple sibling nodes. This shortcut can be used for method parameters, array literal values, or statement siblings.

Test quick-fixes in an editor test case

The editor test language has been extended with the ApplyQuickFix concept. Use it in the code section of your test case as if you were testing an intention. You can choose either to run the quick-fix that is available on the selected node or you can choose a concrete quick-fix to run explicitly.

Specific Fix

The fix that is available on the selected node:

Color scheme switcher and font settings

Color scheme switcher and font settings

You now have the option to switch the editor’s color scheme without changing the IDE theme. Furthermore, switching the theme or the color scheme of the IDE no longer requires restarting the IDE for the changes to take effect!

Learn more

Enhancements to Generation Plans

Enhancements to Generation Plans

The 'Show Generation Plan' action offers a handy resource for understanding the exact steps involved in the transformation of a model. Now, in addition to transformation steps, the action also identifies where the generation plan comes from (e.g. from a custom module facet or a devkit), and gives its name along with a link to the generation plan node.

Learn more

Improvements to the Build language

Improvements to the Build language

There’s now an option to use macros for version parts in idea branding (BuildMps_Branding). The ${version.major}, ${version.minor}, ${version.bugfixNr} and ${version.eap} macros have been added to the MPS build script. The old version format still works, but it is deprecated. To switch to the new version in your build script, use the "Convert deprecated branding version to the new format" intention.

Other improvements

Full GitHub pull request support

Full GitHub pull request support

The details of open pull requests are now one click away in a separate vertical tool window. The main editor window shows the conversation, and you can add comments directly. If you have permission to manage pull requests, you can now browse, assign, manage, and merge them, view and submit comments, and accept changes right from inside the IDE.

Improved Git Actions dialogs

Improved Git Actions dialogs

For this release, we’ve revised the visual consistency for merge, pull, and rebase dialogs. We’ve also improved the dialogs so that they clearly identify what Git commands will be executed, and we’ve included some missing options. We’ve also added --rebase and --no-verify to the pull and merge dialogs, respectively.

Squash and drop local commits from the log

Squash and drop local commits from the log

You can now select multiple commits from a local branch and squash them. In the Git tool window, open the Log tab, select local commits, and choose Squash Commits. If you decide to change the commit message, all the changes in those commits will be put into one single commit together with the updated message. In addition, you can now drop commits from the Git log.

Improved result display for the Compare Branches action

When you compare two branches in MPS 2020.2, the IDE shows their commits all in one view by opening their logs in the editor. In contrast to the VCS tool window, this view has enough space for a full report on what commits are in each branch and which files are affected.

Authorization

We’ve switched GitHub authorization from the password-based system, which is deprecated and will stop working soon, to OAuth.