What’s New in MPS 3.1
Support for diagram editor
You can now define your language so that it will be possible to edit some of its concepts with the diagram.
- Diagrams can be used within the context of projectional editor
- Basic diagram editing support: add, remove, copy, paste diagram elements
- Code completion aid for new elements creation
- Linking diagram elements with drag and drop
- Type checking error highlighting
- Customizable shapes and support for custom shape libraries
- Automatic orthogonal edge routing
- Diagram palette for quick elements creation (experimental)
See more detailed info
at Diagramming editor overview
Generator performance and usability improvements
With in-place transformations, generator avoids copying large models between generation phases and instead applies changes directly to the original model. This makes generation faster and more memory-efficient.
Note: in-place transformations is not compatible with any code that makes an assumption that an output model exists on every generation step. You can opt-out of in-place transformations in generator preferences.
New generation trace
Generation trace was updated to only contain information about the steps where actual modifications were made for each node. This results in the huge memory saving during generation, and also produces much more usable results for the "Generation trace/Generation traceback" viewer.
Parameters in template switch
template switch now supports parameters similar to the template declarations. Use the new $SWITCH$ macro to pass parameters to the template switch, same way you do with $CALL$ macro. The old $SWITCH$ macro was deprecated, and can be migrated to the new one by the intention or the migration script.
Generator options in build language
You can now specify generator options from within the MPS build script.
Better user experience in BaseLanguage
Text-like expressions editing
MPS automatically applies side transforms for parentheses in BaseLanguage, making expressions editing very much "text-like" experience, despite projectional nature of the MPS editor.
Better formatting within comments
Thanks to improved style inheritance mechanics, MPS now properly colors and stylise keywords, and other BaseLanguage elements placed within the comments.
Automatic reference re-resolving
MPS editor now tries to automatically re-resolve broken and out-of-scope references in the background. This eliminates the need to update each broken reference manually one by one (with Ctrl-Space) after the valid reference target becomes available in the scope.
- Style priorities and selective property inheritance
(see documentation for more details)
- Support for custom style attributes
Testing framework improvements
Navigation to code
Clicking on a failed test in the error report window will now navigate directly to the failed check attribute in this test, so you can easily identify the cause of the test failure.
Constraints checking in tests editor
Tests editor now validates scope visibility rules, as well as other structural constraints.
- Using MPS DSLs from Java within IntelliJ IDEA
- Multiple editors
- Improved BaseLanguage editing experience
- Console plugin
- Darcula mode
- IntelliJ IDEA integration
- New Build Language
- Customizable scopes
- New XML language
- Dependencies analyzer
- IDE for custom languages
- Language-specific make
- Language Debugging
- Incremental generation
- Import from Java
Want to receive MPS news and updates?