我目前正在与朋友创建一种语言,我想在jEdit中为它提供一个突出显示。
它的语法实际上非常简单。这些函数只能匹配这种模式:
$function_name(arguments)
请注意,我们的解析器当前正在工作,没有关闭标记,如C风格的半列,我们希望保留此功能。
我创建了我的jEdit模式,并且(几乎)成功地使用<SPAN_REGEXP>
来设置我的模式。我是这样做的:
<SPAN_REGEXP HASH_CAR="\$" TYPE="KEYWORD3" DELEGATE="ARGS">
<BEGIN>\$[A-Za_z0-9_]*\s*\(</BEGIN>
<END>)</END>
</SPAN_REGEXP>
但这还不够好。
这就是我想要的:
$func( )
ARGS
%content1%
的特殊突出显示(已在$func(%content1%)
规则集中定义)
$func
$func
(
args
)
现在没有突出显示。
我猜我需要更改我的<BEGIN>
正则表达式以接受换行符,但似乎jEdit无法匹配多行正则表达式以突出显示,尽管他完美地用于搜索和替换!
我尝试了(?s)
和(?m)
标记,[\d\D]*
解决方法,甚至是[\r\n]*
,但它永远不会有效。
所以,这是我的问题:
<SPAN_REGEXP>
中匹配多行正则表达式?答案 0 :(得分:1)
如帮助中所述,SPAN_REGEXP不支持多行正则表达式。您当然可以指定多行正则表达式,但它们仅针对各行进行检查,因此将永远不会匹配。您可以将功能请求发布到jEdit的功能请求跟踪器,但是如果它还没有。