我有由xtext 2.8.4生成的DSL IDE。它工作正常。由于不同的原因,我不得不为不同类型的文件实现几个编辑器。我很容易添加了带有语法着色的XML编辑器。此外,我需要为XML的大纲视图。如果我没弄错的话,我必须实现这样的东西
public class XMLOutlineTreeProvider implements IOutlineTreeStructureProvider, IOutlineTreeProvider, IOutlineTreeProvider.Cancelable {}此外,Eclipse平台本身也有XML大纲实现。我可以在xtext项目中重用这个实现吗?我确信有现成的实现可以用于此任务,但我可以找到它。下一个问题是我不知道如何在XText核心中注册我的实现
感谢您的任何建议
谢谢,亚历克斯
发布于 2015-08-19 21:51:29
我猜重用现有的大纲实现要比自己实现几个方法要费力得多。实际上,您只需为xml节点提供标签、图标路径和子节点列表。
原则上看起来是这样的(代码是Xtend):
def _createChildren(IOutlineNode parentNode, Element element) {
    element.children.forEach [
        createNode(parentNode, it);
    ]
}标签提供程序:
def text(Element ele) {
    return ele.name
}
def text(Attribute attr) {
    attr.name + '=' + attr.value 
}
def image(Element ele) {
    'element.gif'
}域模型示例或算术示例确实实现了一个简单的大纲。你可能会想要看看这些。
重用现有的东西更加麻烦,因为您必须使基于EMF的Xtext模型适应XML大纲所期望的内部模型。
https://stackoverflow.com/questions/32095782
复制相似问题