Possibility to test Quick fixes in an editor test case

Editor test language has been extended by the ApplyQuickFix concept. Use it in the code section of your test case as if testing an intention. You can either choose to run the (only one) quick fix that is available on the selected node or you state a concrete quick fix to run explicitly. Examples of both usages can be found by searching for QuickFix_* root nodes in MPS project.

https://youtrack.jetbrains.com/issue/MPS-29441

Select next sibling on pressing Shift + Left/Right 

Using Shift + Left/Right key combination it is now possible to select multiple sibling nodes. Examples include: method parameters, array literal values or statement siblings. You can then copy and paste this list into other suitable places that would accept copied nodes.

https://youtrack.jetbrains.com/issue/MPS-23097

UI improvements in Diff/Merge dialog windows in VCS

The width of the editor areas is not fixed anymore, one can move the splitter in both directions. Highlighting of changes has been improved. Triangles and trapezia we had before in the spliiter area have been replaced by smooth polygons  Tooltips for the changes are displayed both in the editor area and in the splitter area.

 

Improved history for a root + history for a node in VCS

Existing "Show Root History" action in VCS did not always display correct results. Sometimes a revision in a history list did not correspond to any real change. In the new approach the models are compared rather than the source files providing always meaningful output. Besides, now it is possible to display history for any node, not just the root nodes.

https://youtrack.jetbrains.com/issue/MPS-32376

 

New change type in VCS

A change of a node ID is not really important for the nodes which cannot be a target for the reference. Therefore, a special handling has been added for such non-functional ID changes in VCS. Changes of the new type can be hidden in Diff dialog with a help of the new toolbar button. Besides, during a merge process changes in two branches are considered as non-conflicting if they differ only by the IDs of the nodes which cannot be a target for the reference.

 

'Show Generation Plan` action gives more details

When a model has a plan that controls its transformation, 'Show Generation Plan' action offers a handy way to understand exact steps the transformation would go through. In this EAP, the action got few improvements. Now, in addition to transformation steps, the action tells where it derived generation plan from (e.g. through a custom module facet or a devkit), gives name and a link to generation plan node (MPS-31935). Besides, transformation steps bear name of the generator module when template model name is not qualified (MPS-31354), which helps to distinguish similarly named model (MPS used to create template model named 'main' in all new generators. Having few such generators in the plan make it quite confusing). Another common complaint was that the languages excluded from a model transformation due to restrictions of a generation plan are not easily discoverable, which has been addressed as well. Languages used in the model but not covered by the associated plan are reported by 'Show Generation Plan' action now. In addition, 'Used Languages' tab in model properties warns about such languages, too (MPS-29720).

 

Color Schemes switcher and Font settings

There is now a possibility to switch editor color scheme separately from IDE Theme. New settings can be found in Settings -> Editor -> Color Scheme.

Font settings now moved from Settings -> Editor -> General to Settings -> Editor -> Font (similar to all other JetBrains IDEs). Even more - under Settings -> Editor -> Color Scheme there are two additional sub-settings: Color Scheme Font and Console Font to configure font in editor and terminal (MPS console is considered editor for now). And yes, ligatures are finally here for MPS editor!

Some additional check boxes that can be missed from Settings -> Editor -> General are still here:

And final thing to note - switching IDE Theme and Color Scheme is nor longer require IDE restart to update editor colors!

Improvements in Build language

Possibility to use macros for version parts in idea branding (BuildMps_Branding). Macros ${version.major}, ${version.minor}, ${version.bugfixNr} and ${version.eap} were added to MPS build script. The old format of version still works but deprecated. To switch to the new version in your build script use intention "Convert deprecated branding version to the new format".

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. Pre-commit check results are displayed at the bottom of the window (I wasn't able to get this pre-commit check working in MPS). 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

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 included some missing options. We’ve also added --rebase and --no-verify to the Pull and Merge dialogs, respectively.

Improved result display for the Compare Branches action

When you compare two branches in MPS 2020.2, the IDE shows their commits 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.

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.

Authorization

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