MPS 2025.3 introduces a major overhaul of the JavaDoc language, significant changes to generator plans, and a major update to the reflective editor. It also enables keyboard actions in the Logical view and allows TextIcon to offer visually distinct variants for light and dark themes.
Explore the full list of changes below.
The JavaDoc language has been completely migrated to use the
jetbrains.mps.lang.text language for text representation and editing.
This change is expected to have minimal impact on the overall user experience.
However, it fixes numerous problems:
jetbrains.mps.lang.text, such as BaseLanguage comments or structure
language documentation. For more information on editing text, refer to the
documentation facet page.
jetbrains.mps.lang.text
is used. You can also copy and paste plain text.
Along the way, several problems associated with the JavaDoc language have been resolved:
jetbrains.mps.lang.text instead of string properties, so the same edit/copy/paste/style functionality is available inside block tags.
{@literal ...} inline tag was added as mandated by the Java
language specification.
CodeSnippet correctly resolves local variables.
NodeWrapper correctly textgens the contained nodes.
In addition to the existing Paste as Java Statement and
Paste as Class Content actions, the redesigned JavaDoc language supports a
new action that enables easy pasting of textual JavaDoc code into BaseLanguage.
Most importantly, this new action ensures that your JavaDoc code is
properly parsed into JavaDoc text lines, block tags, and inline tags,
including potential reference resolutions (e.g. for the @param or
{@link } tags).
This new Paste as JavaDoc action parses the text from the clipboard and pastes it into a JavaDoc comment at the current position of the cursor. If the cursor is not positioned within an existing JavaDoc comment, the action attaches the parsed JavaDoc elements to the following field/method/class definition’s JavaDoc, creating a new JavaDoc file for them, if needed.
We’ve made some major improvements to generator plans, enhancing the user’s experience
with complex model transformations. A new notion of PlanContribution
supersedes and completely replaces the experimental fork as functionality
that we introduced back in 2024.1.
In addition, we’ve also added a mechanism to denote a model of a branch (for any
branch originating from a plan or plan contribution) with additional model attributes.
A potential use case for this might be when the language/plan designer wants to add
custom model attributes to identify the
outcome of a particular branch for further processing. One of the attributes employed
by MPS itself is targetFacet (see
jetbrains.mps.generator.extensions.common model), which tells
<mps.make> which GenerationTargetFacet/ModuleFacet
to consult when determining an appropriate output location for a model.
Both the fork step and a PlanContribution in a generator
plan support conditional activation. It’s now possible to activate certain branches
of a plan only when certain criteria are met. At the moment, MPS comes with a
conditional statement that checks the values of specified plan parameters.
We intend to eventually extend statements to support logical operations
(and/or), as well as other potential operations, while
maintaining a strict interpretation of generator plans (i.e. no BaseLanguage code
in plans).
A language designer can provide custom ParameterDeclaration classes.
Values for these parameters can be contributed using a
PlanParameterContributor extension point. MPS comes with a few predefined
parameters that are usable straight out of the box – see the
jetbrains.mps.generator.extensions.common model for full details of these.
TextIcon’s layers can now be configured to apply to the light and dark, or both color themes. Additionally, the color literals in TextIcon’s definition can provide different values for the light and dark color themes.
The reflective (default) editor has a new look and feel. The read-only default editor has been merged with the reflective editor, so there’s no longer confusion between the two.
The process of creating new elements in the Logical pane of the Project view using keyboard shortcuts has been significantly improved. New modules, models, and nodes can now be introduced without the use of a mouse.
Usage highlighting of the node at the caret is now restricted to only references that are actually visible in the editor. Usages in nodes that are not actually displayed by the node’s editor are not highlighted.
MPS 2025.3 includes a wide range of bug fixes. The complete list of resolved issues can be found here.
The new Islands themes are bundled in MPS 2025.3, and they are switched on by default.
For every major release, we prepare instructions on how to migrate from older MPS versions to ensure everything goes smoothly. Please review them carefully in the updated migration guide.