交叉链接Java类来自Xtext



问题

我想拥有一个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以了解如何做

最新更新