生产厂商:JetBrains产品类别:开发工具
为什么选择MPS?
领域专用语言
直接使用领域概念和逻辑语言表达您特定领域的流程和知识。
投影编辑器
以您领域的每个人都能理解的术语进行沟通。通过投影编辑使用非文本符号,包括数学符号、图表和表单。
编辑器支持
我们的智能编辑器可以通过快速修复、单词补全和意图来帮助和指导您完成整个过程。
谁在使用MPS?
敏捷法律执行工厂 (Agile Law Execution Factory)
领域专用语言,用于实施荷兰税法并处理该法的变更。
MetaR
一组给生物医学科学家具有低计算技能的数据分析语言。
mbeddr
一组用于嵌入式软件工程的集成和可扩展语言。
功能特点
Quick Definition操作
Quick Definition与它在IntelliJ IDEA中的对应项类似。点击节点,按住 Ctrl-Shift-I,您会看到一个弹出窗口,其中包含节点的定义。在此弹出窗口中,您可以导航,选择其他节点并执行Find操作。这样,您每次想要快速查看节点时就无需打开一个新选项卡。
模型卸载
现在可以通过明确地从内存中移除所有模型来改进内存消耗。您可以点击内存指示器或通过Registry操作设置计划清理参数(以秒为单位)。目前,此功能处于实验性阶段,我们计划在未来版本中改进这一功能。
独立生成器模块和每种语言多个生成器
现在,您可为语言创建多个生成器,将它们托管在语言中(与历史版本相同)或者将它们作为常规顶级模块添加到语言旁。使用生成器计划让您能够充分利用多个生成器。为了帮助转换,对于没有显式生成计划的模块,只会调用一个语言生成器。新的生成器可以从语言上下文菜单创建,您可以使用以下对话框中的新复选框确保生成器独立。
概念和接口转换
我们添加了一个新意图,可以将概念转换为接口概念,以及进行反向转换。创建语言结构时可以使用此意图,它不会更改用法。
根据用法创建
现在可以从代码中的用法创建概念、方法和类。此意图可以在新语句上创建类,在表达式中创建方法,以及在子/引用角色和扩展/实现中创建概念与接口。
从INamedConcept生成有效的java标识符
新的生成器语句让您能够从任意INamedConcept生成有效的Java标识符。这会通过移除非法符号、大写和添加前缀(如有需要)创建独一无二的名称。
IntelliJ平台的新插件
1. 设置存储库:让您可以在IDE的不同实例之间共享设置。
2. 任务管理:让您可以利用问题跟踪器管理任务。
3. 变更提醒:预测您可能忘记根据提交历史记录修改的文件。
Find Usages:编写查找器时用于报告任意搜索结果的新语句
在之前的MPS版本中,查找器上的 add result 语句仅允许用于基于 node<> 的搜索结果。现在,使用 addraw result,语言设计师可以显示 Find Usages 视图能够可视化的任意结果。
修复内容
生成器:控制动态引用警告
MPS生成器在尝试解析动态引用但失败时会发出警告,考虑到不是所有的生成器都遵守使用标签映射的严格引用结构方法,这会导致出现很多警告。因此,我们添加了新的设置,用于控制是否出现警告。
提升了JavaStubs加载性能
我们显著改进了加载存根模型时的性能,特别是从较大且强连接的jar集加载时。我们目标项目的加载速度比在2019.2中快2-3倍(从18秒降到6秒)。此提升也向后移植到了MPS 2019.1和MPS 2019.2中。
生成语言:显式模型根
MPS过去只能将一组特定文件(即*.mps和*.mpsr)作为模型处理,不过,借助自定义模型持久性,文件名可以不同。要确保在生成模块时捆绑所有必要的模型文件,在有助于自定义文件名模式的生成脚本中,存在适用于模块的显式模型根声明。
文档:
自定义持久性示例和新生成解决方案向导文档已更新。文档页面上数学示例和断开的链接中的生成时间错误已修复。多个对话框和工具窗口也已得到更正。