Xtext:将quickfix覆盖为Reference

时间:2015-03-23 21:23:28

标签: antlr xtext

我试图检测赋值的右侧是否是可能的十六进制值而不是另一个变量引用。所以例如

myvariable = 2

a = 4
/* the c reference does not exist therefore the user may mean hex C
add in a quickfix to change to 0xc
*/
b = c
/* The user most probably means a hex number therefore add in a quickfix for
converting it to 0xc1234 */
d = c1234

因此,右侧可以是(a-f)或(a-z)(a-z | 0-9 | _)+,实际上是ID。当变量不存在时,有一个quickfix,它表示“更改为存在的任何其他变量”。有没有办法覆盖它并添加一个额外的选项?

编辑: 我已从此向前移动并进行了自己的自定义验证,该验证在while循环中检查是否存在如下引用:

try{
    while(variable != null) {
        variable = variable.reference
    }
catch(Exception e) {
   error("No such reference exists",
         ....
   )
}

当访问variable.reference时抛出异常,因为变量为null。但是我无法在右侧获得参考文献的名称。 例如:

c = 1
a = x

然后当访问引用x时,我得到一个null,我不知道如何得到名称'x'。似乎xtext已经找出并解决了引用,我找不到获取引用名称的方法(不是在解析时)

有没有办法让引用变量名称(在解析之前)?

1 个答案:

答案 0 :(得分:0)

查看org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider.getResolutionsForLinkingIssue(Issue)