问题:
我想有一个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和ResourceDescription,以便链接器可以解析这些类。但是,我不知道如何实现索引的这种扩展。
问题:
如何将我的Java类放入xtext索引以便交叉链接工作?
答案 0 :(得分:1)
这通常是通过使用Xtype或Xbase完成的。不幸的是,你想要引用EObjects和JvmTypes。你可以通过实现一个将你的对象映射到JvmTypes的jvmmodelinferrer来做到这一点。看看https://www.eclipse.org/Xtext/documentation/104_jvmdomainmodel.html,了解如何做到这一点