Custom Language Aspects
MPS 3.3 aims at allowing language designers to implement and use their own language aspects, such as custom editors or type-system.
Several new features make it already possible to define new language aspects:
- runtime class instantiation in the language descriptor (generated Language.class)
- customizable icons for the aspect models
- adjustment of the "new root" menu
- integration of a few minor features
It still has to be implemented:Planned:
- a better DSL for describing the language aspects
- support in the smodel language in order to work with language aspects, languages and modules programatically
Typesystem: Overriding default type node
Allows to substitute another node to represent the type instead of the node originally used as a type.
- Substitute Type Rule applied to original type nodes, returns alternative type representation;
- the same rule applied to an attribute of the original type node enables aspect-oriented way of altering the default type representation.
More in the Typesystem documentation.
No Used Languages in modules
The need for importing languages twice - both to model, where the language is used, and to the model's module, is gone. Modules now derive used languages from the models that the module owns. It is no longer possible to add/remove languages in the 'Used Languages' tab in module properties.