我目前正在和一个朋友一起创建一种语言,我想在 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%)
- 不跟在 a 后面的括号不加亮
$func
- 授权替代多行语法,例如
$func
(
args
)
目前没有突出显示。我猜我需要更改我的<BEGIN>
正则表达式以接受换行符,但似乎 jEdit 无法匹配多行正则表达式以突出显示,尽管他在搜索和替换方面做得很好!
我尝试了(?s)
和(?m)
标志,[\d\D]*
解决方法,[\r\n]*
但它从来没有奏效。
所以,这是我的问题:
- 有谁知道如何在 jEdit 模式下匹配多行正则表达式
<SPAN_REGEXP>
? - 如果没有,有没有人知道如何做我需要的?