将IFile转换为XtextResource

时间:2017-05-23 18:07:18

标签: java eclipse eclipse-plugin xtext workbench

我有一个带有Xtext文件的eclipse项目。我需要找到eclipse项目中的所有文件XtextResource,以便找到有关它们的指标。到目前为止,我尝试了以下几点:

1.迭代项目中的所有文件列表,并将其作为IFile。但我无法将IFile转换为XtextResource

2.我成功XtextResource来自IWorkBenchPage中的仅活动页面,因此,如果我能找到项目中的所有页面,而不仅仅是活动页面{in { {1}})或者可能将项目中的所有页面设置为活动状态,我认为它可以正常工作。

如果我有IworkBenchPage

,这是我所做的示例代码

我不是日食中所有这些关系的专家,希望有人可以救我这里。 谢谢!

1 个答案:

答案 0 :(得分:0)

以下内容应该有效(假设您通过guice感知扩展工厂创建了使用它的地方......

@Inject
IResourceSetProvider resourceSetProvider;

...
IProject project = file.getProject();
URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
ResourceSet rs = resourceSetProvider.get(project);
Resource r = rs.getResource(uri, true);
r.load(null)

如果你没有在你的地方使用

ResourceSet rs = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri).get(IResourceSetProvider.class).get(project);