约束规则语言的作用是解决约束语言的缺陷。 在这个版本中,约束规则在提高语言的实用性方面向前迈进了一步。
从试验语言的沙盒到改变 MPS 或 IntelliJ IDEA 平台行为的有效插件代码,MPS 模块具有多种用途。 在 MPS 2022.3 中,我们将这些都归到一处。 解决方案模块的 Java Facet 页面经过重做,存放所有相关设置并能识别通用场景,帮助语言设计者和用户轻松确定模块的预期用途。 IDEA Plugin Module Facet 已被完全弃用。 我们只公开了解决方案模块的设置 – 语言和生成器模块都采用相同的方式,但设置为隐式配置。 了解详情
MPS 的活跃社区一直在为生态系统创造价值,我们也始终鼓励用户使用外部库来丰富产品功能。 Third-party libraries, such as MPS Extensions, have been key to improving the user experience for products built with MPS. 这为社区带来了很多好处,但也有一个显著缺点 – 用户需要等待第三方库的迁移才能更新 MPS 版本。 我们一直在与我们的官方合作伙伴和主要 MPS 扩展程序维护者 itemis 合作,同步我们的版本,使迁移到产品最新版本的过程更加顺利。
语言设计者现在可以将重复代码提取到定义根节点内的帮助程序方法来减少重复代码的数量。 这些额外方法可以在以下位置定义:
意图还允许使用额外字段保留在 isApplicable 方法中计算的值,以在 execute 方法中使用。
现在,可以从已编译的 Kotlin/JVM 库导入存根,此前只能导入 Kotlin/Common 库。 借助这项改进,可以通过模块选项中的 Kotlin JVM 模型根使用编译为 JVM(Java、Kotlin 或混合)的库。 了解详情
新版本的 MPS 捆绑了多项小幅更改和改进:
this
表达式现在可以正确引用标签(例如 this@SomeClass
)。 $kotlinc_home
宏,而不是先前硬编码的位置。 现在,可以输入左圆括号,然后使用右转换为给定调用创建构造函数调用。 这适用于支持此操作的任何 Kotlin 类型(这对于用户类型可扩展),并且可以更好地为给定类型创建默认表达式,例如从函数式接口类型创建 lambda 时。
作用域中的扩展函数已更改为不排除作用域中的兼容方法。 代价是,由于当前类型系统实现的性能,作用域内的一些条目不适用。
函数引用的自动解析可以在选择不适用的函数时修正引用。
新增意图更新了 MPSStartupScript 节点,并将虚拟机选项和类路径值设为当前 MPS 值。 MPS 虚拟机选项和类路径值随每个新版本而变化。 此前,用户必须为独立 IDE 手动更新构建项目。
对于每一个主要版本,我们都会准备从旧版本 MPS 进行迁移的说明,以确保一切顺利。 请仔细查阅。