如何在intellij插件中解析复杂文件的高亮语法?

时间:2018-04-14 21:07:45

标签: java xml intellij-idea

我有这样的自定义文件:

model.compile( loss = ... )

如何为此文件的不同部分实现正确的语法高亮显示? 是否可以单独对xml和groovy进行语法检查并显示正确的错误? 如何&#34;显示&#34; select o.orgId, min(o.name) as orgName, max(e.salary) as maxSalary from Org o inner join EmployeeOrg eo on eo.orgId = o.orgId inner join Employee e on e.employeeId = eo.employeeId group by o.orgId order by orgName; select e.name as empName, o.name as orgName from Employee e left outer join Org o on o.managerId = e.employeeId order by empName, orgName; <root> <element> <script type="groovy"> import com.example.SampleClass; return new SampleClass().returnSomeValue() &amp;&amp; Math.random() > 0.5; </script> </element> </root>

是否需要自定义语言实现,还是可以重用&amp&

你能指点我指点吗?我已经阅读了有关PSI的内容,试图浏览一些现有的插件,但我不知道如何正确实现它。

有些文章,示例,文档或其他内容会非常棒。

1 个答案:

答案 0 :(得分:0)

如果将代码保存为.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表达式,以便始终将此类xml内容突出显示为Groovy代码。