使用gtksourceview为后向引用子模式进行Gedit语法高亮显示?

时间:2012-03-06 22:16:53

标签: c syntax-highlighting gnome gedit gtksourceview

以下内容将突出显示第二行的“超时”,但不会再次突出显示。 gtksourceview是否支持对“子模式”的某种反向引用,它将匹配整个文件中的所有实例?

gtksourceview website manual

/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));

2 个答案:

答案 0 :(得分:0)

我认为你只能在GtkSourceView中进行无状态突出显示。也许你可以用递归上下文做点什么?捕获struct上下文中第二行之后的所有内容,然后突出显示您的结构名称,并递归调用主上下文。我不确定这是否会奏效。

答案 1 :(得分:0)