我正在尝试扩展gtksourceview-3.0中的C语言定义,完整的原始文件可以在 here 找到。 。我只想使用正则表达式制定一些语法规则,这样我就可以在 gedit 中对函数、类成员等内容进行语法高亮显示。函数很简单,我只是用正则表达式为它们添加了我自己的上下文:
<context id="myfunc" style-ref="myfunc">
<match>\w+(?=\()</match>
</context>
即。然后我可以通过对 myfunc
应用样式规则来为 function()
等任何内容着色。我发现做成员变量比较困难,例如我想为 foo.bar
中的 bar
着色。通常我会使用像
<match>(?<=\.)\w+</match>
但它似乎不起作用(并且它打破了其他语法突出显示规则!)。此时我陷入了困境,因为我不知道这里使用的是哪种正则表达式风格,显然它不支持后向查找,而且我对 XML 知之甚少。有什么建议么?
最佳答案
gedit 邮件列表中的某人回答了我,显然 XML 不喜欢 <
字符,需要替换:
(?<=...)
然后就可以了。正则表达式风格是 PCRE。
关于xml - gtksourceview 语言文件正则表达式 - 向后看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24413531/