Child pages
  • What's New in 2020.1
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 10 Next »

Ability to use different separators depending on position in list 

When editing nodes with cardinality (0,n) or (1,n) you have the ability to provide a custom separator between values by implementing a separator query function. This feature extends this capability by passing more arguments to the query function (namely prevNode and nextNode) so that it is now possible to provide custom separator for each pair of values.

Transform/substitute menus: merge named and default menus 

A technical debt (refactoring) enhancement that removed custom concepts for named (SubstituteMenu_Named) and default (SubstituteMenu_Default) editor menus. Both concepts were merged into their parent (SubstituteMenu). The type of the menu is then selected in the menu editor. The same refactoring was applied to Transformation menus.

Type over existing text 

Type over existing text is a new feature that makes projectional editor feel a bit more like a textual editor. When typing into a textual cell and the character you just
typed is already present at cursor position then the cursor will move right as if you just overwrote the existing character on screen. This feature is only triggered
if the keystroke cannot be gracefully processed and would otherwise be ignored (e.g. in constant cells) or make the cell content invalid.

The feature if ON by default and you can turn it OFF in Settings / Editor / General tab.

Multi-line comments in BaseLanguage

The functionality of SingleLineComment has been slightly enhanced and new MultiLineComment concept has been introduced into BaseLanguage to support comments delimited with the /* ... */ symbols like Java does.


Light patterns

Pattern language helps to define structure patterns and match nodes over them. It uses regular concept editors which make the pattern appear closely like the nodes it accepts. But for some complex editor that do not correspond exactly to concept structure it can be more comfortable to use light patterns (pattern builders) that describe required structure literally.


Error highlighting in Messages tool if editor definition throws an error

If code in editor aspect of a language throws an exception then default editor is shown for a corresponding cell in a model written on the language. Starting from 2020.1 an error is shown in Messages tool window if such broken cell is opened in the editor. It's possible to get stacktrace from the error and navigate to a problem cell.


BaseLanguage enhancements inspired by the Java language

BaseLanguage now includes such features as try with resources, catch multiple exceptions, local variable type inference, default and private interface methods. No additional language import is required to use these features since they are part of baseLanguage. To provide compatibility with build processes requiring certain java language level, each solution can be configured to prohibit language feature not compatible with required language level.


  • No labels