我有以下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)
答案 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 {}