问题:
我想拥有一个Xtext DSL,可以在其中交叉链接到JAR中包含的Java类型。
示例:
让我们假设我们有一个简单的DSL:
Object:
'object' name=ID '{'
property=Property
'}';
Property:
'property' name=ID '{'
object=ObjectOrInclude
'}';
ObjectOrInclude:
Include | Object;
Include:
'include' include=[Object|ID];
此外,我们的类路径中有一个JAR,提供了几个实现接口
的类public interface IObject{
…
}
交叉链接所包含的不仅仅是让我们参考来自我的DSLS的eobjects,还要参考jar提供的类。我认为我必须以某种方式将我的Java界面集成到Xtext索引中,并为每个类提供ID和Resouscectionscription,以便链接器可以解决这些类。但是,我不知道如何实施索引的扩展。
问题:
如何将我的Java课程放入Xtext索引,以使交叉链接起作用?
这是通过使用XType或XBase进行的。不幸的是,您想参考eobjects和jvmtypes。您可以通过实现将对象映射到JVMTYPE的JVMMODELINFERRER来做到这一点。看看https://www.eclipse.org/xtext/documentation/104_jvmdomainmodel.html以了解如何做