在我的语言中,我包含了可以包含另一个文件的相对路径或绝对路径的语句。我需要能够引用此其他文件中定义的对象。我尝试使用importURI,但它不起作用。我试过的只是添加这条规则:
Include:
'INCLUDE' '=' importURI=STRING ';'
;
现在我对环境变量有疑问。由于这个语法是先前开发的,并且有许多基于这种语法的测试文件,我需要使我的xtext解析器支持我们以前的所有。其中之一是能够使用路径中的环境变量导入另一个文件。
我尝试为项目定义环境变量,然后根据这些变量链接文件,但问题是importURI字符串没有得到环境变量。
假设我在项目中定义了文件1,其中包含指向文件的链接:
INCLUDE =“$ {VAR1} /file2.foo”;
定义了VAR1,并且file2基于VAR1链接到项目。
不幸的是,这不起作用,你知道我怎么能解决这个问题吗?
答案 0 :(得分:0)
我通过覆盖ImportUriGlobalScopeProvider.getImportUris
方法解决了这个问题。
问题是importURI
正在处理链接到工作区或项目的文件。因此,在我的情况下,我将文件自动链接到getimportUris
方法中的虚拟项目。