2012-02-23 64 views
1
進口

我有以下的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; 

當打開編輯器,在Rule一切都Item引用正確加亮後,如果他們是在同一個文件,我可以跳使用F3進行聲明。但是,如果我嘗試從其他文件導入它們,則這不起作用。例如:

文件first.mydsl

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

文件second.mydsl

model second 
item second 

假定這兩個文件都在同一個文件夾中,它仍然不會找到導入文件「第二」參考。如果我包含導入文件的文件擴展名或完整路徑,它也不起作用。 如何獲得Xtext識別導入的文件?

(crossposted到http://www.eclipse.org/forums/index.php/m/805182/#msg_805182

回答

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 {} 
+0

我改變了我的配置如你所說。現在拋出'java.lang.IllegalStateException:無法重寫最終綁定'final org.eclipse.xtext.naming.IQualifiedNameProvider - > org.eclipse.xtext.naming.SimpleNameProvider(org.eclipse.xtext.generator.exporting.SimpleNamesFragment )「'每當我產生的文物。 – Jorn 2012-08-27 11:23:24

+0

您是否在工作流程中添加了其他內容?你可以發佈完整的堆棧跟蹤嗎? – 2012-09-04 19:30:46