在另一个插件中使用 ResourceSet

Use ResourceSet within another Plugin

我在我的项目中使用 xtext 生成的 DSL。我现在想用向导生成一些文件。我目前可以通过向文件中添加一些字符串来创建这些文件。但最初我想创建 DSL 的模型对象并将新生成的文件添加到资源集中。如果没有 DSL 的 StandaloneSetup,我找不到访问它的方法。 我现在不确定在编辑器中使用 StandaloneSetup 是否是正确的方法,因为似乎应该有更好的方法来访问 xtext 框架使用的已经构建的资源集来管理已知的 files/sources.如果我使用 StandaloneSetup,不应该有 2 个注射器,这会变得非常糟糕吗?

您可以使用资源服务提供者注册表获取注入器

http://koehnlein.blogspot.de/2012/11/xtext-tip-how-do-i-get-guice-injector.html

URI fakeOrRealUri = ...;
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(fakeOrRealUri).get()