如何将一些缓存信息附加到Eclipse编辑器或资源?

如何将一些缓存信息附加到Eclipse编辑器或资源?,eclipse,caching,editor,code-completion,xtext,Eclipse,Caching,Editor,Code Completion,Xtext,我正在使用Eclipse的Xtext框架开发DSL 对于内容辅助/代码完成,我有一个昂贵的过程,生成一个字符串列表 如何缓存该过程的结果 说来话长:我的DSL与Groovy脚本接口。脚本提供了我在DSL的某些地方提供的方法。这相当慢,即使在我使用regexp解析脚本的方法时也是如此。所以我想缓存脚本分析的结果 根据我的分析,在验证期间(因此我并不总是有编辑器)和用户打开DSL文件时调用分析代码 无法判断验证何时结束(代码位于私有方法中,Xtext开发人员拒绝更改该方法)。但我认为,在为Eclip

我正在使用Eclipse的Xtext框架开发DSL

对于内容辅助/代码完成,我有一个昂贵的过程,生成一个字符串列表

如何缓存该过程的结果

说来话长:我的DSL与Groovy脚本接口。脚本提供了我在DSL的某些地方提供的方法。这相当慢,即使在我使用regexp解析脚本的方法时也是如此。所以我想缓存脚本分析的结果

根据我的分析,在验证期间(因此我并不总是有编辑器)和用户打开DSL文件时调用分析代码


无法判断验证何时结束(代码位于私有方法中,Xtext开发人员拒绝更改该方法)。但我认为,在为Eclipse编写编辑器/编译器时,这一定是一个常见问题。其他人如何解决这个问题?Eclipse框架中是否有缓存服务?

我不确定,但我认为您可以在这种情况下重用。

您可以使用Xtext提供的JVM模型。只要安装了groovy插件,它的类型和方法就应该可以通过它使用

缓存:

在资源上有一个缓存,如果缓存中有更改,它会自动退出

((XtextResource)x.eResource()).getCache().get(myKey, x.eResource(), 
    new Provider<List<String>>(){
        public List<String> get() {
            return computeGroovyMethodNames();
        }
    })
@Inject
private IResourceScopeCache cache