从另一个 Eclipse 视图监听 XText 编辑器中的 EObject 变化

Listen to EObject changes in XText editor from another Eclipse view

我想为当前 XtextEditor 中的文档创建一个 Eclipse 视图。要创建视图,我想遍历由文档内容中的 xtext 创建的 EObject。我可以得到当前的编辑器,但我不知道如何得到 EObject 的?

我假设 DSL 的 EObject 树是可用的,因为它是 xtext 在内部使用的,我还假设它是用来填充 eclipse 大纲视图的。

我以为我可以从编辑器中获取 XtextResource,但是当我获取资源时,我只得到一个 org.eclipse.core.internal.resources.File

有人知道如何获取编辑器当前使用的 ECore 模型的引用吗?

你可以使用

XtextEditor.getDocument().readOnly(IUnitOfWork)

请注意:您不能return IUnitOfWork

中的资源或内容

另一种可能性是将资源单独加载到资源集中