我目前正在和一位朋友创建一种语言,我想在jEdit中为它提供一个突出显示。它的语法其实很简单。这些函数只能匹配这种模式: $function_name(arguments)
jEdit自定义模式下的多行正则表达式
请注意,我们的解析器目前正在工作,没有像C样式的半列那样关闭标签,我们希望保留此功能。
我创建了我的jEdit模式,并且(几乎)成功地用<SPAN_REGEXP>
高亮我的模式。以下是我做的:
<SPAN_REGEXP HASH_CAR="\$" TYPE="KEYWORD3" DELEGATE="ARGS">
<BEGIN>\$[A-Za_z0-9_]*\s*\(</BEGIN>
<END>)</END>
</SPAN_REGEXP>
,但还不够好。
这是我想什么:
- 整个功能骨架相同颜色:
$func( )
- 特别突出的
$func(%content1%)
- 没有高亮为
%content1%
(设置ARGS
规则中已定义)括号不遵循$func
- 授权替代多行语法,如
$func
(
args
)
这是现在不突出。 我猜我需要改变我的<BEGIN>
正则表达式来接受换行符,但似乎jEdit无法匹配多行正则表达式突出显示,尽管他完成搜索&取代!
我试过(?s)
和(?m)
标志,[\d\D]*
解决办法,甚至[\r\n]*
但它永远不会奏效。
所以,这里是我的问题:
- 没有人知道如何使用jEdit模式
<SPAN_REGEXP>
匹配多正则表达式? - 如果没有,有没有人有任何想法如何做我需要的?
冒着明显的风险,你有没有看过'modes'目录下jedit的其他编辑模式?我希望你在'span_regexp'上最好。我被那个构造所夺去,失去了,所以我不能对你有所帮助。 Sry基因。 –
感谢您的回答!是的,我做到了。没有发现有趣的事情: – Romain360