GtkSourceView语法高亮 - 突出显示直到" =",

时间:2014-04-08 12:05:19

标签: syntax-highlighting gtksourceview

我有一个自定义的SPICE(电子)语法突出显示gEdit,它正在工作,但我想修改变量的突出显示(我不知道如何)。我现在拥有的是:

<context id="variables" style-ref="string">
  <match extended="true">
    (\s[^\s&gt;&lt;&amp;(){};,=/+\-*\^]+|
    (?![({])\s*[^\s&gt;&lt;&amp;(){};,=/+\-*\^]+)
    \s*(\=)(?!(\s*\=))
  </match>
</context>

参数(变量)定义如下:

.param Value=3.14

并且,使用上面的代码,&#34; Value =&#34;突出显示,但我想省略&#34; =&#34;从被着色。我在(?!\=)之后的最后一行尝试's*,加上一些组合,但......没有。

以更详细的方式:

  • 参数由强制性的.param.params定义(已解决)
  • 他们不能有空格或任何这样的字符 - [^ \ s&gt;&lt;&amp;(){};,= / + - * \ ^] - 在他们的名字里面(已解决)
  • 他们之前必须至少有一个空格才能不会混合#34;与前面的字符(已解决)
  • 以上条件有&#34;(&#34;和&#34; {&#34;例外(已解决)
  • 他们之间可以有空格和&#34; =&#34; (解决)

请记住,我对PCRE知之甚少,这可能看起来很幼稚,但只要它有效,我就不介意。我现在拥有的是太多的试验和错误。

1 个答案:

答案 0 :(得分:0)

与此同时,我在irc.gimp.org的#gedit的jessevdk的帮助下解决了这个问题。这条线

\s*(\=)(?!(\s*\=))

需要更改为

(?=(\s*\=(?!(\s*\=))))

现在我可以更新https://bugzilla.gnome.org/show_bug.cgi?id=692822上的文件,等待更多人接受......