Eclipse 如何在xtext生成的插件中使用外部资源?

Eclipse 如何在xtext生成的插件中使用外部资源?,eclipse,xtext,xtend,Eclipse,Xtext,Xtend,我是Xtext和Xtend的新手,需要建议如何最好地解决以下问题 我正在尝试使用以下代码创建自定义的自动完成提供程序: class DomainmodelProposalProvider extends AbstractDomainmodelProposalProvider { def override completePath_ContentPath(EObject model, Assignment assignment, ContentAssist

我是Xtext和Xtend的新手,需要建议如何最好地解决以下问题

我正在尝试使用以下代码创建自定义的自动完成提供程序:

class DomainmodelProposalProvider extends AbstractDomainmodelProposalProvider {
    def override completePath_ContentPath(EObject model,
        Assignment assignment, 
        ContentAssistContext context, 
        ICompletionProposalAcceptor acceptor) {
            acceptor.accept(createCompletionProposal("/Root/hello/world", context))
            acceptor.accept(createCompletionProposal("/Root/hello/xtext", context))
            ....
            ....
    }
}
其中
contentPath
可以来自类似xpath的字符串列表,并且列表可以很大。更重要的是,我想进行渐进式自动完成,即如果用户输入
/Root/h
,它将同时提供
Root/hello/world
/Root/hello/xtext
。但是如果他输入
/Root/hello/x
,它将只提供
/Root/hello/xtext

作战计划如下:

  • 以某种方式从文件中读取允许的字符串列表
  • 在上面的
    域ModelProposalProvider
    中,获取对允许列表列表的引用
  • 从xtext获取当前ContentPath值
  • 然后使用#3对从#1获得的列表进行过滤
  • 返回结果列表 但是我被困在第一步。在xtext项目中读取外部文件的代码放在哪里(我正在使用eclipse)?它应该作为一个单例,只做一次读取,如果我想在Xtend中编程,我如何实现一个单例


    任何帮助都将不胜感激

    将其绑定到YourLanguageRuntimeModule.java中进行注入,然后@Inject将其注入到提案提供者中。Guice在默认情况下只创建一个,所以不必担心将其作为一个单例实现