Child pages
  • What's new in MPS 2.0 M3
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

2.0 M3

Make and Rebuild

Important change

Icon

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 menu "Build" 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

    Removed feature

    Icon

    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

  • Debugger API improvements:
    • support for different kinds of breakpoints;
    • breakpoint properties panel;
    • create breakpoint button in Breakpoints View.
  • Java breakpoints:
    • field watchpoints;
    • exception breakpoints;
    • suspend policy for java breakpoints;
    • relevant breakpoint data (like thrown exception or changed field value) is displayed in variables tree.

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.

Tables support in editor

  • New language jetbrains.mps.lang.editor.table was added to MPS distribution. This language should be imported into the editor model to enable table support. For now this language supports two different kinds of table: table and hierachycal table:

  • table cell model was intended for generic table support in editor. An instance of TableModel interface mast be returned from model function in Table cell section within inspector of this cell model:

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.

  • hierarchycal table cell model was created to cover rather frequent use case of table-based child nodes editing then a concept, represented by table, has multiple child reference to another concept Row keeping table cells as it's children:

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.

  • jetbrains.mps.editor.tableTest language with exemplary table editors were added to MPS distribution. This language contains possible table-based concept editor definitions. Some table editing tricks are:
    • new table row can be added by pressing Enter on a cell located outside table grid either before- or after- current row
    • new table column can be added by pressing Enter in the beggining/end of any existing cell in a column
    • common MPS editor with completion can be used to edit child nodes

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 theirselves changed their appearance - now there is no 3rd level of tabs. Instead of it, an editor has a toolbar showing all aspects available for the main node and allowing to create a new ones.

Plugin framework improvements

Now it's possible to generate plugin for platform from any model, so that it's possible to create a non-language plugin for MPS.
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 can improve reloading performance of large plugins.

  • No labels