我正在尝试扩展gtksourceview-3.0中的C语言定义,可以找到完整的原始文件here。我只是想制作一些语法规则使用正则表达式,所以我可以语法突出显示函数,gedit中的类成员。函数很容易,我只是用正则表达式为它们添加了我自己的上下文:
<context id="myfunc" style-ref="myfunc">
<match>\w+(?=\()</match>
</context>
即。然后我可以通过将样式规则应用到function()
来为myfunc
之类的颜色添加颜色。我发现做成员变量比较困难,例如我想为bar
中的foo.bar
着色。通常我会使用像
<match>(?<=\.)\w+</match>
但它似乎不起作用(它打破了其他语法突出显示规则!)。此时我被卡住了,因为我不知道这里使用了哪种正则表达式,显然它不支持后视,我对XML知之甚少。有什么建议?
答案 0 :(得分:0)
gedit邮件列表中有人回答我,显然XML不喜欢<
字符,需要替换它:
(?<=...)
然后它起作用。正则表达的味道是PCRE。