我有一个符合以下标准的文件:
# comment
<section> # comment
{variant1,variant2,...}
a="bar"
b="b\\a\"r"
[array]
[+]
elem="foo"
[+]
elem="bar"
[/]
c=."42"
d=."xDebb1eD0e5Da11a5"
e=."%101010"
f=@"xaa bb cc dd"
{/}
</>
我已经定义了一种新的语言&#39;在Notepad ++中,我的语法突出显示效果很好:
Comment Line Style -> Open: # (red)
Operator Style -> Operators 1: = (yellow)
Operator Style -> Delimiter 1 -> Open : < (yellow)
-> Close : >
Delimiter 2 -> Open : [+ (blue)
-> Close : ]
Delimiter 3 -> Open : { (orange)
-> Close : }
Delimiter 4 -> Open : " (cyan)
-> Escape: \
-> Close : "
Delimiter 5 -> Open : ." (lime)
-> Close : "
Delimiter 6 -> Open : @" (green)
-> Close : "
Delimiter 7 -> Open : [ (purple)
-> Close : ]
...但经过多次搜索和阅读后,我无法弄清楚如何让Notepad ++ / Scintilla折叠[array],{variant}和&lt; section&gt;文件的块(运行到几千行)。
我注意到如果我将文件突出显示为HTML,那么任何标记(html,body,foo,wibble等)都会按预期折叠 - 我将在此处将其视为&lt; section&gt;,{variant}和[数组]名称是任意的。
我已经知道如果一个角色被定义为分隔符,折叠者将拒绝折叠任何以该角色开头的字符串。
我的问题:关于这种文件格式,如何根据这些规则将Notepad ++折叠起来:
Rule 1 -> Starts with: <*>
Ends with: </>
Rule 2 -> Starts with: {*}
Ends with: {/}
Rule 3 -> Starts with: [*] but not [+]
Ends with: [/]