I'm developing a DSL using Eclipse's Xtext framework.
For the content assist/code completion, I have an expensive process which generates me a list of strings.
How do I cache the result of that process?
Long story: My DSL interfaces with Groovy scripts. The scripts provide methods which I offer in certain places in my DSL. This is pretty slow, even when I use a regexp to parse the methods of the scripts. So I'd like to cache the results of the script analysis.
From my analysis, the analysis code is called during validation (so I don't always have an editor) and when the user opens a DSL file.
There is no way to tell when the validation is over (the code is in a private method and the Xtext developers refuse to change that). But I figure that this must be a common problem when writing editors/compilers for Eclipse. How do other people solve this problem? Is there some caching service in the Eclipse framework?