MPS 2018.1 最新变化

SModel 语言增强

在某些情况下,您必须处理原始指针,例如 SNodeReference 或 SModelReference。 处理这些指针可能很令人困惑,因为很难创建和操作它们。 为了便于处理指针,我们在 SModel 语言中引入了新类型和操作。

节点指针

我们引入了新类型“node-ptr<>”,使处理指针更加轻松。 可以通过“resolve”操作将这些指针解析为实际节点。 “node-ptr/ ... /”表达式代替以前的“nodePointer/ ... /”结构,后者已被弃用。 创建了迁移脚本来处理表达式的转换。

使用指针设置引用

将目标设置为引用链接时,无需访问目标节点。 指向目标的一个指针就足够了。 “set ptr”操作适用于将引用目标设置为指定指针的引用链接访问表达式。 要检查某个节点是否是节点指针指定的节点,应使用新操作“is”。

SModel 类型的严格输入规则

SModel 类型的输入规则变得更加严格。 SNodeReference 接口方法不再适用于“node-ptr”值。 应当使用向下转换运算符来明确获得 SNodeReference。 此外,节点实例上的“pointer”操作现在返回“node-ptr”,而不是常规的 SNodeReference。

引用宏中的 Node-ptr 表达式

修改了引用宏以接受 node-ptr 表达式。 我们根据引用的类型来验证从引用宏返回的指针类型。

使用节点 Id 指定指针

现在,您可以使用模型名称和节点 ID 来指定指向非命名概念实例的指针,或将引用硬编码为字符串。

模型指针

“model-reference”类型已重构到“model-ptr<>”中。 可以通过“resolve”操作将此指针解析为实际模型。

新迁移脚本

我们引入了几个迁移脚本,可以帮助您迁移旧的 SModel 语言结构,例如 node/.../` 表达式、不良的引用或向下转换。 要运行它们,请转到 Tools -> Scripts -> Enhancements...,然后选择“SModel Language Enhancements (node-ptr<> and model-ptr)”。 另外,在同一个窗口中有一个“Use node pointers in reference macro queries”选项,用于处理生成器宏中的旧结构。

改进了 SModel 查询的范围

Smodel 查询的操作范围现在更直观。 如果将范围声明为特定查询的参数,则查询将在整个范围内执行,包括任何只读模型,而不像以前一样只是可编辑模型。

编辑器

为子树显示反射编辑器

现在,您可以为整个子树显示反射编辑器。 选择节点并按 Cmd/Ctrl+Shift+[ 或从上下文菜单中选择“Show reflective editor for subtree”。 如果要返回常规的编辑器,请按 Cmd/Ctrl+]、Cmd/Ctrl+Shift+] 或右键点击选项“Show regular editor for the Subtree”。 仍可仅为当前节点显示反射编辑器,只需按 Cmd/Ctrl+[ 或从上下文菜单中选择。

属性和引用单元格的转换菜单

一直在增强转换菜单语言,以支持属性和引用单元格。 属性和引用转换菜单部分允许您自定义属性和引用单元格的菜单,效果超过以前使用的“内联菜单”。

两大关键优势是:

  • 它们可以附加到任何单元格;而不只是属性和引用单元格。
  • 它们可以应用于补全以及其他位置 – 上下文助手、上下文菜单和侧面转换。