This is our last version of the Early Access Program for 2018.3, which means feature development is put on hold and we’re focusing only on proper integration of the new features and fixing bugs.
This version introduces new actions to find deprecated code, improved conflict resolution, customization of tips and tricks, and custom packages for BaseLanguage classes.
Improved conflict resolution
Previously, it was impossible to apply changes from both local and remote sides, as applying from one side simply rejected the changes from the other.
For children in multiple roles, it is not convenient if both changes are applied. This why now, after you apply changes from one side of the conflict, the other conflicting changes are converted into an addition at the end of the changed group. You can apply or ignore them separately.
After applying the left version of the conflict, you still can apply or ignore the line from the right side:
New actions to find deprecated code
Find Usages of Deprecated can find all usages of deprecated elements. Now, the report of the found usages groups the entries by the expected version of code removal, so it’s easier to recognize their severity and prioritize their elimination. In addition, we’ve reviewed our own deprecations in MPS code and added some additional migrations to help you minimize the amount of deprecated code in projects using MPS.
Custom packages for BaseLanguage Classes
For a long time, the only way to manage Java packages of generated classes was through the name of a containing model:
In the previous screenshot, we’ve got 3 BaseLanguage roots in a jetbrains.mps.samples.files.blpack model. The generated code used to end up in a package with the same name.
However, with the new Classifier property ‘packageName’, you can manage the Java package of a generated class. The property is available for root classifiers:
The generated code for the model now uses the property:
with files arranged appropriately:
Tips & Tricks
The default Tips & Tricks for MPS can now be customized. This can be done with the new tips & tricks concept in the build script:
Tips can be reused from the general MPS distribution, or imported from a directory or solution:
- The first option, “from MPS,” just adds all MPS tips to the final distribution. This is the default option for the build script generated with the wizard.
- The second option, “from directory,” requires you to manually create a folder with the correct structure of the tips and an IdeTipsAndTricks.xml file. The correct structure can be obtained from mps-tips.jar.
- The last option, “from solution,” lets you use the jetbrains.mps.build.tips and jetbrains.mps.core.xml languages to quickly create basic tips in MPS itself.
Finally, tips must be packaged into a build script layout in the /lib folder. In the build script generated with the wizard, MPS tips & tricks are packaged in the /lib folder by default:
Tips & Tricks language
To import tips & tricks from a solution, create a solution with a model and add the languages jetbrains.mps.build.tips and jetbrains.mps.core.xml to model the used languages. Then you can create an instance of the MPSTipsAndTricks concept, where multiple tips can be created.
Each tip is HTML-formatted text and may include up to one image:
A solution with the MPSTipsAndTricks concept will generate a special xml (in the /source_gen folder) which knows how to package tips & tricks in the distribution:
Have a nice day!
Your JetBrains MPS Team
The Drive to Develop