假設有這樣的代碼:如何突出ACE編輯器中每行的第一個單詞?
ab cd
ef gh
ij kl
mn
我想強調的行頭全部單詞:ab
ef
ij
(是的,我們有凹痕)mn
,怎麼寫regex:
?
我試了一下http://ace.c9.io/tool/mode_creator.html但/^\s*/
/\n/
沒有按預期工作。他們究竟是如何工作的?
假設有這樣的代碼:如何突出ACE編輯器中每行的第一個單詞?
ab cd
ef gh
ij kl
mn
我想強調的行頭全部單詞:ab
ef
ij
(是的,我們有凹痕)mn
,怎麼寫regex:
?
我試了一下http://ace.c9.io/tool/mode_creator.html但/^\s*/
/\n/
沒有按預期工作。他們究竟是如何工作的?
Ace連接組中規則中的所有正則表達式。 所以,如果你有一個像
[{token: .., regex: "regex1"}, {token: .., regex: /regex2/}, {defaultToken: ..}]
得到的正則表達式將會/(regex1)(regex2)($)/
一組(見here) 在文件的每一行重複匹配所產生的正則表達式,併爲每個匹配令牌相應的規則類型被建造。對於不匹配的文本,使用defaultToken。
由於正則表達式在規則中逐行匹配/\n/
不匹配任何內容。
至於你的第一個問題,我認爲{token : "comment", regex : "^\\s*\\w+"}
應該工作。
這是我的解決方案,我必須在之前parameter
,它的工作原理。
this.$rules = {
start: [{
token: 'support.function',
regex: /[^\(\)\"\s]+/,
next: 'line'
}],
line: [{
token: 'markup.raw',
regex: /^\s*/,
next: 'start',
}, {
token: 'variable.parameter',
regex: /[^\(\)\"\s]+/
}, {
token: 'markup.raw',
regex: /^\ */,
next: 'start',
}]
}
全部代碼在這裏: https://github.com/Cirru/ace/blob/master/lib/ace/mode/cirru_highlight_rules.js
這是偉大的,三江源。假設,這是正確的答案。 – ainu