The JetBrains Blog

MPS 2026.1 Has Been Released!

8.5内容质量
MPS 2026.1 Has Been Released!

TL;DR · AI 摘要

MPS 2026.1 引入 Projectional Agent Toolkit,使 AI 编码代理可直接操作 MPS 模型,提升 DSL 开发效率。

核心要点

  • MPS 2026.1 集成 JDK 25 和 Kotlin 2.3,增强语言工作台能力。
  • Projectional Agent Toolkit 支持 AI 代理通过 MCP 协议操作 MPS 项目结构。
  • 内置技能包帮助 AI 代理快速掌握 MPS 语言组织方式和编辑规则。

结构提纲

按章节快速跳转。

  1. MPS 2026.1 升级至 IntelliJ Platform 2026.1 和 JDK 25。

  2. 新插件使 AI 代理可通过 MCP 协议直接操作 MPS 模型。

  3. 包含项目管理、语言概念、节点操作等 12 个工具集。

  4. 预置模型感知的技能包加速 AI 代理的 MPS 开发学习过程。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • MPS 2026.1 新特性
    • Projectional Agent Toolkit
      • MCP 协议支持
      • 12 个工具集
      • 技能包系统
    • 技术升级
      • IntelliJ Platform 2026.1
      • JDK 25
      • Kotlin 2.3

金句 / Highlights

值得收藏与分享的关键句。

#MPS#JetBrains#AI编码代理#DSL开发
打开原文

MPS 2026.1 已发布!- JetBrains 博客

MPS

用于创建领域特定语言的语言工作台

关注

  • 关注:
  • X X
  • RSS 订阅

下载

版本发布

MPS 2026.1 已发布!

Vaclav Pech

MPS 现在使用 IntelliJ 平台 2026.1、JDK 25 和 Kotlin 2.3。Build Language 支持传递依赖,迁移过程更加可重复,Java 存根获得了显著的质量提升。内嵌的投影代理工具包插件使 AI 编码代理能够读写 MPS 模型,为 MPS 开发者和语言作者开启了多项前沿开发理念。

下载 MPS 2026.1

新功能

以下是最重要的新特性。

投影代理工具包 – AI 编码代理现在可以直接操作 MPS 模型

MPS 内置了投影代理工具包插件,通过模型上下文协议向 AI 编码代理暴露 MPS 投影、模型和语言工作台。Claude CodeOpenAI CodexJetBrains Junie 等支持 MCP 协议的客户端可以连接运行中的 MPS 实例,像开发者一样操作 – 导航模块和模型,通过投影编辑器读写节点,解析引用,检查概念层次结构,生成代码,运行配置。它们不再需要将 .mps 文件视为不透明的 XML。投影代理工具包提供了涵盖 MPS 项目全功能的十余个工具集:

  • 项目、模块和模型 – 使代理能够枚举解决方案、语言和开发工具包;打开/创建模型;解析依赖关系。
  • 语言和概念 – 使代理能够检查概念层次结构、属性、子节点、引用和继承关系,以及从 JSON 蓝图实现结构概念。
  • 根节点和节点 – 通过符合概念约束的节点感知操作,实现节点的读取、创建、更新、移动和删除。
  • 引用和作用域 – 使代理能够查询引用链接的可分配目标,确保代理首次选择有效引用。
  • 运行配置 – 使代理能够列出并执行项目运行配置,实现端到端验证。

为帮助代理快速上手,工具包还内置了一套技能 – 专注于模型感知的 playbook。它们教会代理 MPS 语言的组织方式、如何实现结构概念、如何使用编辑器、如何以 JSON AST 形式编写 BaseLanguage,以及如何记录 DSL 特定的记忆供后续会话使用。技能通过相同的 MCP 通道可被发现,因此新连接的代理可以在开始编辑前询问 MPS 应该了解哪些内容。

基于 IntelliJ 的 IDE 中与各种 AI 助手协作的体验现在自然延伸到语言和 DSL 开发:代理可以实现新概念,连接其编辑器和约束,添加行为方法,创建 DSL 代码,重新生成代码,并测试运行结果 – 所有操作都在 MPS 语义模型内完成。对语言设计者而言,这将 AI 协助从代码补全便利性转变为理解投影的协作伙伴。

投影式代理工具包是一项实验性功能,未来可能会发生API变更。该工具包默认包含并已启用。只需启动内置的MCP服务器,并将具备MCP功能的代理指向MPS实例,工具集和技能将自动出现。

请阅读投影式代理工具包文档以获取完整详细信息。

迁移到IntelliJ平台2026.1、JDK 25和Kotlin 2.3

MPS 2026.1完成了向当前一代IntelliJ平台的迁移。运行时环境为JDK 25,内置的Kotlin版本为2.3.0。此外,MPS现在会从Kotlin仓库中构建并打包与2.3.0标签匹配的kotlinx-metadata-klib/kotlin-metadata-jvm构件,恢复了之前公共版本kotlinx-metadata-klib:0.0.6无法提供的基于KLib的Kotlin存根支持。

针对特定自然语言验证ICheckedNamePolicy的能力

MPS现在使用IntelliJ平台的自然语言支持(由Grazie提供)。这意味着您可以检查ICheckedNamePolicy实例(如意图、操作或工具)中的字符串值是否符合特定自然语言的大小写规则。现在您可以将首选语言的自然语言支持安装到MPS中,IDE将自动检测字符串中使用的语言并验证单词的大小写是否正确。您也可以绕过语言检测机制,显式指定所需语言。

除了默认的标题大小写规则外,MPS还提供以下三种选项:

  • 句首大小写(Sentence-case),遵循IntelliJ平台的规则。
  • 继承自最近的祖先ICheckedNamePolicy的大小写规则。
  • 不使用任何大小写规则。

新增布尔编辑器样式:只读检查器

新的只读检查器样式会在检查器中的所有编辑器单元格上应用只读属性。当此样式应用于主编辑器中的某个单元格时,当选中该单元格时,检查器将针对被检查节点变为只读状态。该样式具有以下特性:

  • 默认处于禁用状态。
  • 与只读样式一样,该样式可继承且可被覆盖。
  • 对主编辑器单元格无任何影响。
  • 通过此机制设置的只读样式可在检查器的编辑器单元格树中更深层的任何单元格中被覆盖。

构建语言中的传递依赖

构建语言不再要求列出所有可传递到达的构建脚本。这意味着如果构建脚本BuildA依赖于BuildB,现在可以通过BuildB访问BuildC(前提是BuildB依赖于BuildC),而无需显式列出BuildC。生成器会为这些情况生成${artifacts.BuildC} Ant属性,这些属性可以从外部构建工具(如Gradle或Maven)中提供。

这使您可以将大型构建拆分为更小的构建,而无需强制所有用户更新依赖列表。例如,单个平台构建脚本可以封装跨子项目使用的不断增长的外部库集合。

通过记录依赖实现更可靠的迁移

迁移代码之前是根据实际模块依赖关系和迁移时收集的使用语言来决定应用哪些迁移,但会从模块描述符中记录的依赖快照中读取版本信息。这种不匹配可能导致迁移使用与模块最后一次修改时不同的世界视图。

在2026.1版本中,迁移机制始终使用模块描述符中记录的最后一次修改时的依赖关系和使用语言,而不是当前可观测的状态。迁移检查器相应地进行了重构。现在它会重用迁移过程中已收集的信息,而不是按需重新计算。

现代化项目生命周期

随着MPSProject从遗留的IntelliJ IDEA ProjectComponent迁移到项目服务,需要一种可靠的方式通知MPS感知功能有关MPSProject可用和不可用的情况。

此版本引入了专门用于管理MPSProject启动和关闭活动的机制,使MPS能够控制这些活动的序列、分组、顺序和线程。这是平台的ProjectActivity和MPSProjectActivity无法提供的功能。

工作原理:实现者通过MPSCore.xml中声明的jetbrains.mps.project.lifecycleListener扩展点,使用带有listenerClass和可选整数优先级的ProjectLifecycleListener.Bean进行注册。MPSProject内部的LifecycleEventDispatch.java可以触发以下事件:

  • projectReady – 非阻塞
  • projectDiscarded – 阻塞
  • asyncProjectClosed – 非阻塞

更多新功能...

请查看What's New页面了解所有新功能。

新UI

此版本中经典UI插件默认处于禁用状态,未来更新将不再支持该插件。如果正在使用该插件,建议迁移到新UI。

完整的已修复问题列表请参见此处。

尝试新功能并告诉我们您的想法。

JetBrains MPS团队

发布

  • 分享
  • Facebook
  • Twitter
  • LinkedIn

上一篇

MPS 2026.1发布候选版到达