【问题标题】:How to parse a highlight syntax for complex file in intellij plugin?如何在 intellij 插件中解析复杂文件的高亮语法?
【发布时间】:2023-03-29 08:49:01
【问题描述】:

我有这样的自定义文件:

<root>
    <element>
        <script type="groovy">
            import com.example.SampleClass;

            return new SampleClass().returnSomeValue() &amp;&amp; Math.random() > 0.5;
        </script>
    </element>
</root>

我怎样才能为这个文件的不同部分实现正确的语法高亮? 是否可以分别对 xml 和 groovy 进行语法检查并显示正确的错误? 如何将&amp;amp“显示”为&amp;

是否需要自定义语言实现,或者我可以重复使用com.intellij.lang.xml.XMLLanguageGroovyLanugage

你能给我指出一些方向吗?我读过 PSI,尝试过一些现有的插件,但我不知道如何正确实现它。

一些文章、示例、文档或其他东西会很棒。

【问题讨论】:

    标签: java xml intellij-idea


    【解决方案1】:

    如果您将代码保存到 .xml 文件中,则 xml 突出显示应该会自动出现。也可以使用 Preferences | Editor | File Types 将其他文件扩展名映射到 xml 文件类型。

    您可能想研究语言注入。在 Groovy 代码上按 Alt+Enter 并调用 Inject language or reference。现在选择 Groovy(键入第一个字母以进行快速搜索)。此时,您应该暂时突出显示 Groovy 代码。这可以通过再次按 Alt+Enter 并调用 Language Injection Settings 来永久化。例如,您可以在此处指定像 //script[@type="groovy"] 这样的 XPath 表达式,以始终突出显示 Groovy 代码等 xml 内容。

    【讨论】:

      猜你喜欢
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      相关资源
      最近更新 更多