MPS 2020.1 增强了编辑器、Light 模式语言、存根模型的 Javadocs,BaseLanguage 的改进以及添加了许多新功能!
在编辑基数为 (0,n) 或 (1,n) 的节点时,您可以通过实现分隔符查询函数在值之间提供自定义分隔符。 此功能通过将更多参数传递给查询函数(即 prevNode 和 nextNode)扩展了该功能,从而能够为每对值提供自定义分隔符。 在下面的截屏中,“and”和“,”是分隔符。
模式语言有助于定义结构模式并将节点与它们匹配。 它使用常规的概念编辑器,这使该模式看起来与其接受的节点类似。 但是,对于某些与概念结构不完全对应的复杂编辑器,使用按字面描述所需结构的 light patterns(模式构建器)会更舒适。
The editor extension of the Tooltips from mbeddr platform has been added to MPS. 此外,还将为 mbeddr 语言提供迁移。
如果语言的编辑器方面的代码引发异常,将为使用该语言编写的模型中的相应单元格显示默认编辑器。 从 2020.1 开始,如果在编辑器中打开这种损坏的单元格,Messages 工具窗口中将显示错误。 可以从错误中获取堆栈跟踪并导航至问题单元格。
改写现有文本是一项新功能,可使投影编辑器更像文本编辑器。 在文本单元格中输入内容时,如果您刚刚输入的字符已经存在于光标位置,则光标将挪开,就好像您刚刚覆盖了现有字符一样。 只有无法妥善处理按键操作时才会触发此功能,否则此功能将被忽略(例如在常量单元格中)或使单元格内容无效。
此功能默认开启,您可以在 Settings / Editor / General
中将其关闭。
现在,生成器可以检测其他语言的编辑器扩展,并生成显式表示依赖关系的代码。 这意味着,语言设计人员无需担心不同语言之间的这种特殊依赖关系。 激活编辑器扩展时,不再需要语言模块之间的 'extends' 依赖关系。
有一种新的机制可以指定一个包含库的源以及库 jar 的 zip。 现在,MPS 能够从源中提取 javadoc 并将其与从类文件中提取的信息一起呈现。
SingleLineComment 的功能已得到小幅增强,并且新的 MultiLineComment 概念已引入 BaseLanguage 中,以便使用与 Java 相同的方式为以 /* … */
符号分隔的注释提供支持。
BaseLanguage 现在包括 try-with-resources,可以捕获多个异常、局部变量类型推断以及默认和私有接口方法。 为了与需要特定 Java 语言级别的构建过程兼容,可以将每个解决方案配置为禁止与该级别不兼容的语言功能。 局部变量类型推断功能需要 j.m.baseLanguage.varVariable
,除此功能外,这些功能都不需要任何其他语言导入。
为了简化提交流程,我们开发了一个新的提交工具窗口,用于处理所有与提交相关的任务。 这为修改的文件和差异的列表提供了更多空间,支持将就绪的更改添加到提交,以迭代方式编写提交消息,以及选择暂存更改对应的提交。
默认情况下未启用,如果您想尝试一下,请在 Preferences/Settings | Version Control | Commit
中选择 “Use non-modal commit interface” 。
通过结合"全屏模式"和"免打扰模式",此新模式可帮助您专注于代码。 要试用 Zen 模式,请转到 View | Appearance | Enter Zen Mode
。
您无需再手动预装 Git。 在您克隆现有的 Git 仓库时,IDE 将在计算机中查找 Git 可执行文件。如果无法找到,IDE 将自动下载并设置该文件。
MPS 现在默认使用全新的 JetBrains Mono 字体 (Preferences / Settings | Editor | Font
)。 在我们的网站上查看这款对开发者友好的新字样的所有详细信息。
JetBrains Plugin Marketplace is now available in MPS. 这将带来一系列新机会,您可以将自己的插件商业化。