Xtext中的范围和导入

时间:2012-02-23 12:58:01

标签: java xtext

我有以下Xtext语法:

Model:
    'model' name = ID imports += Import* items += Item* rules += Rule*;

Import:
    'import' importURI = STRING;

Rule:
    'rule' name = ID '(' items += [Item]* ')';

Item:
    'item' name = ID;

打开编辑器时,Item中的所有Rule引用都是正确的,如果它们在同一个文件中,我可以使用F3跳转到声明。但是,如果我尝试从其他文件导入它们,则不起作用。例如:

档案first.mydsl

model first
import "second.mydsl"
rule myRule (second) 

档案second.mydsl

model second
item second

假设这两个文件位于同一文件夹中,它仍然无法从导入的文件中找到“第二个”引用。如果我包含导入文件的文件扩展名或完整路径,它也不起作用。 如何让Xtext识别导入的文件?

(已转发至http://www.eclipse.org/forums/index.php/m/805182/#msg_805182

1 个答案:

答案 0 :(得分:0)

请确保按以下方式配置工作流程

        // scoping and exporting API
        fragment = scoping.ImportURIScopingFragment {}
        fragment = exporting.SimpleNamesFragment {}

        // scoping and exporting API
        // fragment = scoping.ImportNamespacesScopingFragment {}
        // fragment = exporting.QualifiedNamesFragment {}
        // fragment = builder.BuilderIntegrationFragment {}
        ....
        // fragment = types.TypesGeneratorFragment {}