I'm currently working on MPS projects where the goal is to make MPS editors more usable, e. g. by adding GUI-like features. Since many of the elements are reusable, I decided to put them into a separate language and publish it into a project called "MPS Toolbox"
Currently, it contains the following features:
- Localization support for aliases: Allows you to use the editor component "LocalizeableAlias" instead of the alias property in the editor. This component will look up the correct alias from the "translation" element in the model, which can be conveniently edited with a tabular editor:
- "Collapse/expand" button as an editor component and "IToggleableEditor" interface: Adds collapse/expand functionality that can also be controlled from within the code
- "Delete" button as an editor component. Available for languages that implement the "IHasDeleteButton" interface. The delete button is in a separate child concept in order to allow you to use it within a table cell (see 1st screenshot).
- Class "FSS" (Font Size Scaler): provides an easy, centralized way of changing the font size in styles, based on the current editor settings:
I'm still fairly new to MPS, so the implementation might not be optimal yet. If you have any suggestions for improvement, please let me know (or implement them yourselves and create a pull request). I'll gradually be adding any other reusable features I may end up developing.