我正在使用Xtext 2.10.0,並且似乎在交叉引用中存在一些問題。簡體中文,我的語法(與org.eclipse.xtext.common.Terminals)如下:Xtext中的交叉引用問題
Model:
package=Package
dtos+=DTO*;
Package:
'package' name=FQN;
FQN:
ID ('.' ID)*;
DTO:
'dto' name=ID ('extends' extendedDTO=[DTO|FQN])? '{' '}';
爲了爲DTO的提供正確的合格的名字,我實現了一個自己的DefaultDeclarativeQualifiedNameProvider,其裝配合格的名稱基於包的名稱和DTO的名稱。
現在我在一個文件中 「base.dto」 開創DTO:
package base
dto BaseDTO {}
在第二個文件 「mydto.dto」 我創建第二個DTO:
package mydto
dto MyDTO extends base.BaseDTO {}
的一部分「base.BaseDTO」甚至由自動完成機制提出。但是,Eclipse將這部分標記爲錯誤,並且說「無法解析對DTO的引用base.BaseDTO'」。爲了解決這個問題,我需要改變什麼?
可以請你分享你的名字提供者impl –
我認爲這是正確的提示。最初,我用這個:「QualifiedName.create(packageName,dtoName)」。但是,軟件包名稱由多個元素組成。我將軟件包名稱拆分爲段(點),並將所有段放入QualifiedName中。這工作。非常感謝你! – user3575404