MPS 2019.1 最新变化

编辑器

客户赞助

自定义样式和补全项目的优先级

语言设计人员可以在补全菜单设置项目的样式和优先级。 可以 更改背景和文本颜色、粗体和斜体格式,甚至 可以隐藏项目。 请注意,此功能是实验性的,其设计可能会在未来 发生变化。 了解更多 关于它的信息。

生成器语言

支持为新的 VAR 宏引入的自动类型推断

VAR 宏现在支持生成器语言中每个宏的多个变量声明。 除非被覆盖,否则从声明查询中推导出类型。

插件支持

客户赞助

使用来自蚂蚁迁移 (migration ant) 任务的 MPS 插件

现在,如果某个插件需要迁移项目,可以在 <migrate> ant 任务中指明。 将启用相关插件及其依赖项。 我们还按照客户支持请求将此功能集成到了 2018.3.5 中。

客户赞助

“运行代码来自解决方案”生成脚本指令中的插件部署支持

“运行代码来自解决方案”指令允许您在运行 此代码的 MPS 实例中启用插件。 将包含插件的依赖项。 根据客户支持请求, 此功能也集成到 2018.3.5。

IDE改进

创建自定义 UI 主题

为每天增添色彩! IntelliJ Platform 刚刚引入了这个炫酷的功能,并且由于 MPS 基于它,现在您也可以为 IDE 自定义 UI 主题。

通过 IntelliJ IDEA 将新预定义主题导入为插件或从头创建自己的。 试试我们新的浅青色主题深紫色主题

JUnit 运行配置现在接受要部署的插件

类似于 MPS 实例运行配置,现在您可以提供将要部署到测试执行的 IntelliJ IDEA 插件列表。 JUnit 运行配置仍提供 “启动前 (before launch)” 任务、 “组装插件 (Assemble Plugins)”。 它会自动生成正在部署的插件, 并将工件复制到设置目录中。

客户赞助

在项目窗格 (ProjectPane) 中排序

我们新增 TreeNodeSortService 来管理 ChildComparatorProvider 属性,后者 让您在项目窗格树中完全控制 MPSTreeNode 子树。 用户现在可以 从其插件的应用程序或项目部件注册/取消注册提供程序。

指示传入和传出提交

IDE 现在可以指出分支 (Branches) 弹出窗口中的各分支的传入和传出提交是否可用。 只需启用新的“在分支弹出窗口中标记有传入/传出提交的分支 (Mark Branches that have incoming/outgoing commits in the Branches popup)” 选项,该选项在 偏好/设置 | 版本 控制 | Git 中。

BaseLanguage

在 baseLanguage 接口中的静态方法

MPS 现在允许您在接口中创建静态方法。

杂项

Confluence 再见,帮助中心你好!

有史以来,Confluence 一直是 MPS 文档的大本营。 现在是时候成长并且 搬到我们自己的地方了。 我们正在将所有文档迁移到我们的 帮助中心; 已经可以在那里访问用户指南和快速通道教程。 预计未来的版本中 会有更多文档改进。

存根方法签名

从在 Java 存根模式中创建的 MPS 节点 ID 删除了该方法的返回类型。 从现在开始,Java 语言规范定义的真正的方法签名用于 标识方法。 如果在新版库中更改了返回类型,则不必重新保存所有模型, 从子模型引用方法即可。 自动迁移将 重新保存所有 MPS 模型,并且更正现有所有对存根模型方法的引用。

“在 MPS 中编译 (Compile in MPS)” 复选框的新含义

如果勾选模块属性中的“在 MPS 中编译”复选框,这不再暗示 存在连接的 IntelliJ IDEA 示例以执行代码编译。 该复选框可以 理解成“要么在 MPS 中编译,要么根本不编译”。 .

MPS 自动显示聚合语言

结构方面现在通过聚合来表示它们包含的语言(即 在子角色中使用外来概念)。 不再需要将这些语言 显式导入到使用聚合语言的模型中,编辑时会自动使用这些 语言。