【问题标题】:Intellij language plugin: syntax highlighting when editing using JFlex lexerIntellij 语言插件:使用 JFlex 词法分析器进行编辑时的语法高亮显示
【发布时间】:2014-12-15 13:53:08
【问题描述】:

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

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

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

我的插件的来源(到目前为止没什么特别的)是here。 我正在使用 Intellij 社区构建 139.225.3

【问题讨论】:

    标签: syntax-highlighting vala intellij-plugin jflex


    【解决方案1】:

    好的,我找到了解决方案。当我将Identifier 标记添加到我的lexer 时,突出显示开始起作用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多