单个Xtext语言服务器,用于两个扩展

时间:2017-03-16 07:09:42

标签: xtext

我有两个Eclipse插件Xtext(2.11)项目。(称为项目A和B)项目B语法文件依赖于Project A语法文件。项目A的语法文件扩展名为a,项目B为b。 我能够为项目B生成语言服务器。我想为两个项目生成单语言服务器。(目前,在项目B中它包含项目A.) 依赖于扩展类型,它需要调用相应的Xtext语法功能。

在上面的场景中,我有以下问题:

  1. Xtext能否无缝地处理这种情况?我是否还需要为项目A生成语言服务器并需要在项目B中添加?这样做的最佳方式是什么?
  2. 需要进行哪种Xtext更改?
  3. 客户端需要进行哪些更改?喜欢在Visual code / Che?

1 个答案:

答案 0 :(得分:2)

  1. Xtext LS可与多种Xtext语言一起使用。它使用java服务加载来查找语言设置:https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/resource/ResourceServiceProviderServiceLoader.xtend#L25。在您的语言的ide项目中,您应该能够找到META-INF/services/org.ecalipse.xtext.ISetup文件,其中说明了应该为ISetup接口使用哪些实现。
  2. 在类路径上为ide项目设置jar应该就足够了。无需更改。
  3. VS代码和Che不关心Xtext LS的实现细节,但是两种语言都应该为它们注册