我正在为我的dsl语言(我使用xtext开发它)开发一个新的插件。在我的插件中,我希望每个* .mydsl文件都应该查看在打开的文件中定义的变量的图形。插件开发和Xtext:扩展ViewPart并不知道如何获得活动文件的AST
为此,我需要在打开的文件中定义一些EObject。 如果我有一些EObject,我可以通过AST来获取图表所需的所有变量。
所以,我扩展ViewPart时课,我试图找到在这个代码打开当前文件:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
但是,我不知道如何从IWorkbenchPage得到一些EObject类型,可有人告诉我我该怎么做? (或者,将工作的另一种方式)
-------- UPDATE:---------
我发现很难走过去的文件的AST通过获取EObject(因为我想使用的功能如:EcoreUtil2.getContainerOfType(context,Model) ,它只能在xtext项目中使用)。 不是找到EObject,有没有办法获得文件的AST?我想要在活动文件中定义的特定类型的所有变量。 (当前选项卡中的文件) 谢谢!
IWorkbenchPage包含当前在页面上打开的所有视图和编辑器,该页面没有输入文件。您需要找到活动的编辑器,并找到一种方法从中获得您想要的内容。 –
谢谢!这是我做的'IWorkbenchPage page = PlatformUI.getWorkbench()。getActiveWorkbenchWindow()。getActivePage(); IEditorPart activeEditor = page.getActiveEditor();'我怎样才能得到文件的AST?或者特定类型的所有变量? – RoG