MPS 2019.2的新功能

枚举数据类型

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

客户赞助

定制错误信息

一段时间以来,有人要求自定义一些MPS错误消息。多亏了一位付费客户的要求,我们才能够将此功能设置为最高优先级。现在,可以修改错误报告的所有约束。我们计划在下一版本中将此报告自定义设置用于其他类型的错误。

名为“反馈”的新方面可用于自定义错误文本。学到更多

基于规则的约束语言

创建基于规则的约束语言是为了将来从常规MPS约束语言中替换当前可用的canBe *约束。我们将基于规则的约束语言视为实验性功能,因此我们希望它在下一个发行版中有重大发展。了解更多

根历史

Git菜单附带一项新操作,以显示VCS更改到特定根目录的历史记录。该操作可从编辑器的上下文菜单中获得。学到更多

全文搜索

属性值中的全文搜索已准备就绪。编辑->查找->在项目操作中查找文本( Ctrl + Alt + Shift + F )可让您查找具有与指定文本匹配的属性值的节点。

特定错误检查

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

检查为模式定义的规则

在为概念定义检查规则时 ,然后为作为概念实例的每个节点调用该规则。

现在,无需覆盖任何从超概念继承的规则,而是可以显式指定要覆盖的规则列表。强烈建议您检查所有使用替代功能的检查规则,并确定应覆盖哪些规则。学到更多

类型检查Facade API

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

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

不推荐使用的API(旧版本):现在不推荐使用jetbrains.mps.typesystem。*软件包的层次结构。不鼓励在此层次结构中直接使用类,除非从“类型系统”方面的内容自动生成的代码除外。

以下版本中即将进行的更改

以下是有关类型系统支持的暂定更改计划。负责实现类型系统和该方面所使用的语言的方面将成为传统。随着时间的流逝,语言和运行时支持将迁移到单独的插件。

要引入的新方面将基本上替代类型系统方面的“非类型系统”部分。将提供迁移以从传统类型系统方面提取检查规则。

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

在后台制作

使后台进程正常运行。我们一直在努力改善后台制作过程中的UI响应速度。要恢复以前的版本,有一个新的UI设置可以控制所有这些,首选项->项目设置->在后台执行。

Java 11作为运行时

MPS现在将在JDK 11下运行。这将影响加载存根模型的机制。除了JDK 11中重新打包的某些类和字段的极少使用之外,大多数项目都不需要迁移。

在IntelliJ IDEA插件中,具有MPS构面的模块现在应与JDK版本11关联。否则,代码生成将失败。

基本语言

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

新样品

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

BL注释中的拼写检查

我们对单行注释,Javadoc文本和字符串文字进行拼写检查。

本地git配置

我们已经将合并驱动程序设置从全局更改为本地(每个git存储库),因此现在可以有与MPS安装一样多的合并驱动程序。