MPS ( Meta Programming System)

DSL Development Environment.

Language aspect definition

The set of language definition languages available in MPS can be extended through a custom language aspect model declared inside the plugin model of a language.

Language aspect usage

Language developers will then have an option to create an additional language aspect model in their languages, which holds aspect-specific information about their concepts expressed using the aspect's main language.

Using DSLs with custom aspects defined

DSL users will see in the IDE the additional functionality provided by language aspects developers. Custom language aspects can be used, for example, to generate documentation tied closely to the code, or to provide additional DSL verification or interpretation capabilities.

Reflective editor

Reflective editor is a new capability of MPS to show the exact structure of the nodes under caret and to let you edit it directly. Simply right click on any node and choose "Show Reflective Editor" from the pop-up menu. You'll get a generic editable visualization of the current node and so bypass the standard editor when it is getting in the way.

Anchors in weavings rules

In order to weave a node at an exact location in the children list, weaving rules now offer an additional anchor query, which may provide the desired anchor node, in front of which the weaved node gets inserted.

Using "console" commands in migrations and other code

The Console query expressions, such as #instances or #models, are now conveniently available anywhere in code to simplify smodel expressions. This is in particular handy for node queries when writing language migrations.

For more details download the sheet - Download