【发布时间】:2014-04-23 03:25:15
【问题描述】:
我有一个用于 gEdit 的自定义 SPICE(电子)语法突出显示,它正在工作,但我想修改变量的突出显示(我不知道如何)。我现在拥有的是这样的:
<context id="variables" style-ref="string">
<match extended="true">
(\s[^\s><&(){};,=/+\-*\^]+|
(?![({])\s*[^\s><&(){};,=/+\-*\^]+)
\s*(\=)(?!(\s*\=))
</match>
</context>
参数(变量)定义如下:
.param Value=3.14
并且,使用上面的代码,“Value=”被突出显示,但我想省略“=”被着色。我在最后一行尝试了(?!\=),在's* 之后,再加上一些组合,但是……什么都没有。
以更详细的方式:
- 参数由强制第一个
.param或.params定义(已解决) - 它们的命名中不能有空格或任何类似的字符 -- [^\s>
- 它们必须至少有一个空格才能不与前面的字符“混合”(已解决)
- 上述条件存在“(”和“{”异常(已解决)
- 它们和“=”之间可以有空格(已解决)
请记住,我对 PCRE 知之甚少,这可能看起来很幼稚,但只要它有效,我不介意。我现在所做的事情是通过太多的尝试和错误来完成的。
【问题讨论】:
-
再补充一个条件:变量后面不能有两个等号,因为这样就不再是要定义的变量了。等号之前/之间/之后可以有空格,但是,无论如何,这个条件也解决了。
标签: syntax-highlighting gtksourceview