【问题标题】:xtext manuel multi-file compilationxtext manuel 多文件编译
【发布时间】:2014-11-15 04:20:29
【问题描述】:

我正在使用 xtext 语法,我正在引用这样的工件: A: 'A' name=ID; B: 'B' name = ID ':' ref=[A]; 因此,在使用插件启动 eclipse 运行时后,我可以创建具有适当扩展名的文件,其中包含: A a B b : a 现在我也想引用其他文件中的工件,它开箱即用: 如果 A a 在 a.file 中声明,B b : a 在 b.file 中声明,则编辑器不会显示错误。 自动编译也能正常工作。

但是,如果我像这样自己生成代码: generator.doGenerate(new ResourceSetImpl().getResource(URI.createURI(path), true), fsa); 引用未解析。

我必须一次编译所有文件吗?我怎么能这样做?

【问题讨论】:

    标签: java xtext


    【解决方案1】:

    这些文件通常在您保存后立即通过增量 Xtext 构建在后台进行编译。如果要手动触发构建,则必须确保使用正确初始化的资源集。它可以从 Eclipse 上下文中的IResourceSetProvider 获得。在独立模式下,您可以注入 Provider<XtextResourceSet> 以获取已配置的实例。

    【讨论】:

    • 我不确定您是否意识到,我想自己编译 dsl 文件(使用我提供的代码)。如上所述,使用 eclipse 插件,一切正常。但是当我开始手动编译文件时,它不会解析对其他 dsl 文件的引用。我要解决的问题:仅从源代码编译没有完整“xtext-plugin-workflow”的dsl文件。
    • 我是这样注入的,但是如果我这样做,我的资源集是空的: val injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration(); val resourceSetProvider = injector.getInstance(Key.get(new TypeLiteral>() {}));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2018-04-22
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多