JetBrains MPS roadmap (draft)
Q3 2016 - 3.4 (Context Asistant, Context Actions Tool, Menu Transform Language, Generator plans)
Q1 2017 - 3.5 (Planning...)
Q3 2017 - 4.0 (Improved projectional editor with partial parsing support. New, simplified languages for DSL design)
Transform Menu Language
The way the editor behavior, such as side-transformations and substitute actions are defined, will be changed. The definitions will be moved to the Editor aspect, they will be applied to individual editor projections and it will be made straightforward to specify the cells, on which the menus should take effect.
In-editor visual menu should visualize to the DSL users the most relevant actions in the given context and allow them to trigger them either with mouse or from the keyboard.
Context Actions Tool
A tool window that lists all actions applicable in the given context should be made available. Language designers will specify the contents of the window for various contexts of the editor and the DSL users will pick the desired options with mouse.
Organizing generators with priorities may become cumbersome even for modestly complex scenarios. A generic way to orchestrate the generator process will become available in this version.
We're currently planning this release, so expect the news to appear here soon.
New languages for language definition
The language-definition languages will get a face-lift to reflect the feedback we've received from the users and the progress we’ve made over time in terms of usability and intuitiveness.
- new query language that will not depend on Base Language
- new generator language
- new editor definition language (a higher-level than now, based on the new query language)
Improving Tables support in the editor
MPS already introduced table notations in the editor. Now we will provide a higher-level API for specifying tabular notations, and will provide editing usability improvements for tables.
It is currently not possible to project nodes into the editor when not owned by the current context node. This will become possible in 4.0: A concept will be able to declare "transient nodes", i.e. children that are computed based on DSL definition, which will be able to be projected as part of an editor definition.
Other editor improvements
- editor extension points to allow easier editor reuse in derived languages
- Introduce view-specific (or editor-specific) data into MPS so concept editors can save view-specific information
Wiki language (doc language)
Sometimes, plain text, which feels like plain text is useful, for example with documentation or requirements. However, we all want to be able to "inject" nodes into this plain text, perhaps as a way of embedding references to other nodes. This will be possible with the Wiki Language.
Collections Language improvements
- performance improvements
- potential Collections Language re-implementation using extensions methods to make it more light-weight
- Integration with Java profiler
- Detailed exception reporting that includes information about which language caused the problem
- Profiling particular DSL definition aspects like the editor creation process, completion menu and other
Refactorings described as a part of language definition
MPS refactorings will be improved in order to not only define custom refactorings for a particular language, but to contribute participants to existing refactorings from other languages. We will be able to record refactorings in order to replay them later on different set of sources.
The MPS generator can be used for transforming one model to another one
- expand set of target languages supported by MPS to Java Script/Objective C/...
- create public repository of MPS languages that would host IntelliJ IDEA language plugins
- implement new Base Language, which can be reduced into different target languages
- will better track cross-model dependencies better?
- will use “gps” builder to generate in the background during the editing
- will allow loading of XML schema/language grammar into MPS and generate custom persistence code for this language working in accordance with grammar/schema
Debug java sources
Attach sources to Java libraries in MPS and navigate to the appropriate place in the Java source code with MPS debugger.
Eliminate the need for MPS models at runtime, so all you need to be able to work with your languages is Java source code.
VCS features per root
Show history for single model root node (currently it's possible to see the history for whole model files only).