1

我正在开发一个 Intellij Vala 插件。我坚持在编辑文件时使关键字突出显示工作。

当我打开文件时,所有关键字(到目前为止只是classref)都正确突出显示。但是,当我键入时class,它不会突出显示(仅在我重新打开文件后)。有趣的是,ref一切正常。

我设法调查,在输入每个字符时,我的词法分析器是在只有 4 个字符长的文本段上启动的。因此ref,比这更短的结果被突出显示,但class不是。字符串也是如此:如果它们短于 4 个字符(例如"a"),则会突出显示它们。我查看了 Intellij SDK 的源代码,每次更改文档时分析的文本长度是使用某种段计算的。我在 Intellij 架构方面经验不足,但无法理解它。有人可以帮忙吗?

我的插件的来源(到目前为止没什么特别的)在这里。我正在使用 Intellij Community build 139.225.3

4

1 回答 1

2

好的,我找到了解决方案。当我向我的lexerIdentifier添加一个标记时,突出显示开始起作用。

我猜现在有了标识符标记,词法分析器在看到字母数字字符时现在看到它正在将它们附加到某种缓冲区以构造标识符,然后当它们突然形成一个关键字时,它们会被突出显示。在此之前,我认为词法分析器在遇到不好的字符时会忘记它并继续进行。同样,这些只是我的假设。仍然不知道为什么之前分析了 4 个字符。

于 2014-12-18T06:57:35.110 回答