1

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

<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

并且,使用上面的代码,“Value=”被突出显示,但我想省略“=”被着色。我已经尝试(?!\=)过最后一行,之后's*,加上一些组合,但是......什么都没有。

以更详细的方式:

  • 参数由强制的第一个定义.param.params(已解决)
  • 他们不能有空格或任何像这样的字符 - [^\s><&(){};,=/+-*\^] - 在他们的命名中(已解决)
  • 它们必须至少有一个空格才能与前面的字符“混合”(已解决)
  • 上述条件有“(”和“{”例外(已解决)
  • 它们和“=”之间可以有空格(已解决)

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

4

1 回答 1

0

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

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

需要改为

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

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

于 2014-04-22T19:25:15.980 回答