MPS 2020.2 brings a new look for the VCS, tests for quick fixes, enhancements to Generation Plans, and a variety of other improvements.
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.
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.
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.
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.
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:
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!
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.
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.
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.
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.
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.
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.
We’ve switched GitHub authorization from the password-based system, which is deprecated and will stop working soon, to OAuth.