MPS中的自定义编辑器

时间:2019-11-17 15:34:36

标签: dsl mps

我在Jetbrains MPS中有一个概念,我想为其创建自定义编辑器。

这个概念有很多孩子。

对于每个孩子,我想显示孩子自己的编辑器,但在其前面带有“-”。

我不确定我是否正在尝试以正确的方式解决此问题。

但是我的第一个尝试是在子节点上循环自定义单元。

我的问题是我不知道如何找到子节点的编辑器单元:

我的细胞提供者:

return new AbstractCellProvider(node) {
@Override
public EditorCell createEditorCell(EditorContext ctx) {
  EditorCell_Collection cells = EditorCell_Collection.createVertical(ctx, node);
  foreach n in node.elements {  
    EditorCell_Collection a = EditorCell_Collection.createHorizontal(ctx, node);
    EditorCell_Label label = new EditorCell_Constant(ctx, node, "-");
    a.addEditorCell(label);
    cells.addEditorCell(a);

       how to add the child node's editor here? 

   }
return cells;
}

1 个答案:

答案 0 :(得分:1)

您真正要实现的目标是什么?一个例子可能会在这里有所帮助... 没有更多的上下文(因此我可能会误解您的问题),我认为您可以对原始编辑器使用EditorComponent(https://www.jetbrains.com/help/mps/editor.html#editorcomponentsandeditorcomponentcells),然后使用“-”常量和后跟EditorComponent的编辑器来实现所需的效果。