2.0 M3

Make and Rebuild

Since this release there'll be no more "Generate" and "Regenerate" actions in the UI. They have been replaced by "Make" and "Rebuild". See below for details.

The main "Build" menu has been re-worked completely. Here's what changed:

  • New actions "Make Project" and "Rebuild Project"
  • "Generate" is now called "Make"
  • "Regenerate" is now called "Rebuild"
  • What was previously called "Make" and "Rebuild" are now "Compile" and "Recompile"

  • The old "Generate" options are still available

  • There is a new button on the main toolbar, replacing three obsolete ones

    The obsolete feature "generate used languages that require generation" is removed. It is superseded with the new make action.

  • Menus for solutions and models have been updated too

Generated Text Preview

A new action "Preview Generated Text" opens preview in an multi-tab editor. Each tab corresponds to a single file.

The action is available on a model and is also bound to a shortcut ctrl+alt+shift+F9 (MacOS cmd+alt+shift+F9).

New Breakpoints and Watches in Java Debugger

New Breakpoints Features

Low-Level Watches

Watches API and low-level watches for java debugger are implemented. "Low-level" means that user can write expressions using variables, available on the stack. To edit a watch, a so-called "context"(used variables, static context type and this type) must be specified. If the stack frame is available at the moment, context is filled automatically.

Watches can be viewed in "Watches" tree in "Debug" tool window. Watches could be created, edited and removed via context menu or toolbar buttons.

Trace information generation is done via textGen language

Trace information generation is done now via textGen language. Concepts that require trace information generation should implement one of the three interface concepts: TraceableConcept, ScopeConcept and UnitConcept. Use script "Upgrade Trace Info Generation" from plugin language to upgrade.

See more infomation in Debugger documentation page

Tables support in editor

Specified TableModel instance used to create and edit table grid. Each table child cell contains common MPS editor specified for given child node. TableModel interface as well as a number of it's reusable implementations are defined in jetbrains.mps.lang.editor.table.runtime solution.

On this screenshot rows is a name of child role keeping Row concept instances and cells is a name of child role defined within Row concept keeping DataCell concept which will be displayed within table grid. In addition optional headerRowlinkDeclaration - multiple child reference keeping nodes representing table header row - can be specified there.

New Tabbed Editors

The tabbed editors part of plugin language was slightly improved. Now new aspects can be added for a concept from any language, which will allow to "extend" tabbed editors, in contrast with old TabbedEditor allowing to define the set of aspects only once.

The editors themselves changed their appearance - now there is no 3rd level of tabs. Instead, an editor has a toolbar showing all aspects available for the main node and allowing to create a new ones.m

Plugin framework improvements

Now it's possible to create a non-language plugin for MPS. This will allow to create "standalone" plugins, which will not require the presence of plugin's module for the plugin to work (e.g. a VCS plugin).
Note: Icons in actions don't work properly in non-language plugins for now.

In addition, plugin components are no more created via reflection. This will improve reloading performance of large plugins.