MPS 2019.2 最新变化

枚举数据类型

枚举数据类型

新枚举数据类型声明提供了一种声明选项列表的简明方法:每个选项都使用命名的枚举成员表示。 或者,可以改变某些成员的编辑器表示,并选择在属性中未显式设置成员时应使用的默认成员。

了解详情

自定义错误消息

自定义错误消息 客户赞助

曾有人要求可以自定义一些 MPS 错误消息。 应我们的某个付费客户要求,我们为这项功能设置了最高优先级状态。 现在,错误报告的所有约束都可以修改。 我们计划在下一版中实现其他类型错误的自定义。

名为“反馈”的新特征可自定义错误文本。

了解详情

基于规则的约束语言

基于规则的约束语言

创建基于规则的约束语言是为了将来从常规 MPS 约束语言中替换当前的 canBe* 约束。 我们将基于规则的约束语言视为实验性功能,希望此功能在下一版中能有显著改进。

了解详情

根历史记录

根历史记录

Git 菜单附带一个新操作,用于显示特定根的 VCS 更改历史。 可以从编辑器的上下文菜单调用此操作。

了解详情

全文搜索

全文搜索

可以在属性值中进行全文搜索。 项目操作中的 Edit–>Find–>Find Text (Ctrl+Alt+Shift+F) 可以查找属性值与指定文本匹配的节点。

特定错误检查

特定错误检查

测试语言的一个常见用例是检查节点有无错误消息或警告。 MPS 的测试子系统有时无法区分出现在同一节点上的不同错误。 这可能引发误导行为:即使用户在相关测试注释中指定了预期错误,关于此节点的任何其他错误和警告也不会报告为测试违规。

了解详情

检查定义的模式规则

检查定义的模式规则

为概念定义检查规则时,作为概念实例的每个节点随后都会调用此规则。

现在,可以显式指定要覆盖的规则列表,而不是覆盖从父概念继承的任何规则。 我们强烈建议您查看使用覆盖功能的所有检查规则,并确定应覆盖哪些规则。

了解详情

Typechecking Facade API

从此版本开始,新的 facade API 是运行类型检查查询的唯一受支持方法。

新 API:请参阅 jetbrains.mps.typechecking.TypecheckingFacade 和相关类。

弃用的 API(旧):jetbrains.mps.typesystem.* 包的层次结构现已弃用。 除了从“typesystem”特征的内容自动生成的代码外,不鼓励在此层次结构中直接使用类。

后续版本中即将出现的变化

以下是与 typesystem 支持变化相关的暂定计划。 负责实现 typesystem 的特征和此特征中使用的语言将成为遗产。 随着时间的推移,语言和运行时支持将迁移到单独的插件。

即将引入的一个新特征将基本取代 typesystem 特征的“非 typesystem”部分。 将提供迁移,从遗留 typesystem 特征中提取检查规则。

将引入新的类型检查框架和运行时支持,意味着完全重写旧引擎。

在后台运行

让进程在后台正确运行。 我们一直在努力提高后台运行过程中的 UI 响应能力。 要恢复以前的版本,可以使用一个新 UI 设置来控制所有操作, Preferences–>Project Settings–>Perform in background

以 Java 11 运行

MPS 现在可以在 JDK 11 下运行。 这将影响加载存根模型的机制。 除了在 JDK 11 中重新封装的一些类和字段的罕见用法外,项目的大部分内容都不需要迁移。

在 IntelliJ IDEA 插件中,带 MPS facet 的模块现在应与 JDK 11 相关联。 否则,代码生成将失败。

BaseLanguage

BaseLanguage 改进是此版本的主要目标之一。 我们修复了许多与 BaseLanguages 相关的问题,从错误到易用性问题。

新示例

根据社区反馈,我们为 XML 生成添加了一个新的示例项目。

BL 注释的拼写检查

我们为单行注释、Javadoc 文本和字符串文字提供拼写检查。

本地 git 配置

我们已将合并驱动程序设置从全局更改为本地(按 git 仓库),现在,合并驱动程序的数量可以和 MPS 安装的数量一样多。