以下将突出显示第二行的“超时”,但不会再次突出显示。 gtksourceview 是否支持对“子模式”的某种反向引用以匹配整个文件中的所有实例?
/usr/share/gtksourceview-2.0/language-specs/c.lang
<context id="struct" style-ref="struct">
<match>\bstruct\b\s\w+\s(\w+)</match>
<include>
<context sub-pattern="1" style-ref="structname"/>
</include>
</context>
int ns;
struct timeval timeout;
timeout.tv_sec = 1;
timeout.tv_usec = 0;
setsockopt(ns, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof(timeout));
setsockopt(ns, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
最佳答案
我认为你只能在 GtkSourceView 中进行无状态高亮显示。也许你可以用递归上下文做点什么?捕获 struct
上下文中第二行之后的所有内容,然后突出显示您的结构名称,并递归调用主上下文。不过,我不确定这是否可行。
关于c - Gedit 语法高亮显示与 gtksourceview 反向引用子模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9592805/