我目前正在和一位朋友創建一種語言,我想在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