MPS 2025.3 最新变化

MPS 2025.3 引入了 JavaDoc 语言的重大革新,对生成器方案进行了显著更改,并对反射式编辑器进行了重大更新。 此版本还支持在 Logical(逻辑)视图中进行键盘操作,并允许 TextIcon 为浅色和深色主题提供视觉差异化显示样式。

以下是更改的完整列表。

JavaDoc 语言革新

JavaDoc 语言已完全迁移,可以使用 jetbrains.mps.lang.text 语言进行文本表示和编辑。 这项变动预计不会对整体用户体验造成显著影响, 但解决了多个问题:

  • 编辑体验现在与其他使用 jetbrains.mps.lang.text 的 MPS 语言(如 BaseLanguage 注释或结构语言文档)一致 。 有关编辑文本的详细信息,请参阅文档 facet 页面。
  • 可以在 JavaDoc、BaseLanguage 注释、语言文档注释和其他使用 jetbrains.mps.lang.text 的位置之间复制粘贴文本。 还可以复制粘贴纯文本。
  • 文本现在可以包含样式,如粗体或斜体。 此样式在得到的 Java 源文件中以 HTML 标记的形式生成。

借助此次革新,多个与 JavaDoc 语言相关的问题得到了解决:

  • 块标记描述已改为使用 jetbrains.mps.lang.text,而非字符串属性,因此块标记内也提供相同的编辑/复制/粘贴/样式功能。
  • 块标记现在支持多行描述。
  • 块标记内联标记现在均可从 Java 源代码正确解析。
  • 按照 Java 语言规范的要求添加了新的内联标记 {@literal ...}
  • CodeSnippet 内的代码可以正确解析局部变量。
  • NodeWrapper 可以正确地为包含的节点生成文本。

BaseLanguage 中支持 Paste as JavaDoc(粘贴为 JavaDoc)操作

除了现有的 Paste as Java Statement(粘贴为 Java 语句)和 Paste as Class Content(粘贴为类内容)操作外,重新设计的 JavaDoc 语言还支持一项新操作,它可以轻松地将文本 JavaDoc 代码粘贴到 BaseLanguage 中。 最重要的是,这项新操作可以确保您的 JavaDoc 代码被正确解析为 JavaDoc 文本行、块标记和内联标记,包括可能用到的引用解析(例如对 @param{@link } 标记的解析)。

这项新增的 Paste as JavaDoc(粘贴为 JavaDoc)操作会解析剪贴板中的文本,并将其粘贴到 JavaDoc 注释中的当前光标位置处。 如果光标不在现有的 JavaDoc 注释内,此操作会将已解析的 JavaDoc 元素附加到后续字段/方法/类定义的 JavaDoc,根据需要为其创建新的 JavaDoc 文件。

对生成器方案的贡献

我们对生成器方案进行了多项重大改进,旨在提升用户处理复杂模型转换的体验。 全新的 PlanContribution 概念取代并完全替换了我们在 2024.1 版本中引入的实验性 fork as 功能。

此外,我们还新增了一项机制,可以通过额外的模型特性来表示分支的模型(适用于所有来自方案或方案贡献的分支)。 这种机制的一个潜在用例为,语言/方案设计者希望添加自定义模型特性来标识特定分支的结果,以便进行进一步处理。 MPS 自身所使用的特性之一是 targetFacet(请参见 jetbrains.mps.generator.extensions.common 模型),该特性会告知 <mps.make> 在为模型确定合适的输出位置时应参考的 GenerationTargetFacet/ModuleFacet

生成器方案的条件复刻

生成器方案中的 fork 步骤和 PlanContribution 均支持条件激活。 现在,可以仅在符合某些条件的情况下激活方案的某些分支。 目前,MPS 提供条件语句来校验指定 plan parameters 的值。 我们计划最终将这类语句扩展为支持逻辑运算 (and/or) 以及其他可能会进行的运算,同时保持对生成器方案的严格解析(即方案中不允许出现 BaseLanguage 代码)。

语言设计者可以提供自定义的 ParameterDeclaration 类。 这些形参的值可以使用 PlanParameterContributor 扩展点来提供。 MPS 提供了几个开箱即用的预定义形参 – 请参见 jetbrains.mps.generator.extensions.common 模型了解这些形参的完整详细信息。

浅色和深色 TextIcon 选项

现在,可以将 TextIcon 的层配置为应用于浅色和深色主题,也可以配置为同时应用于这两种颜色主题。 此外,TextIcon 定义中的颜色字面量可为浅色和深色颜色主题提供不同的值。

反射式编辑器革新

反射式(默认)编辑器采用全新外观和风格。 只读默认编辑器已与反射式编辑器合并,二者之间不会再混淆。

Project(项目)视图中使用键盘快捷键

使用键盘快捷键在 Project(项目)视图的 Logical(逻辑)窗格中创建新元素的过程得到显著改进。 现在,无需使用鼠标即可引入新模块、模型和节点。

高亮显示不可见的用法

高亮显示文本光标处节点的用法这一功能现在仅适用于编辑器中实际可见的引用。 对于那些未由节点编辑器实际显示的节点中的用法,则不会高亮显示。

大量 bug 修正

MPS 2025.3 包含大量 bug 修正。 有关已解决问题的完整列表,请参阅此处

平台更新

默认使用 Islands 主题

Islands 主题已捆绑到 MPS 2025.3 并默认启用。

迁移指南

对于每一个主要版本,我们都会准备从旧版本 MPS 迁移的说明,以确保一切顺利。 请仔细阅读更新的迁移指南