我正在尝试在NPP的functionList.xml中定义解析器。我的文件被拆分为:
------------------
{{header}}
------------------ {
[subheader]
random text
}
我假装标题是类,副标题是函数,这样它们就会显示在函数列表中的一个很好的层次结构中,如下所示:
header 1
subheader 1
subheader 2
header 2
subheader 1
XML:
<classRange mainExpr="^\{\{([a-zA-Z]+\s?)+\}\}" displayMode="node">
<className>
<nameExpr expr="([a-zA-Z]+\s?)+"/>
</className>
<function
mainExpr="^\[([a-zA-Z0-9\\]+\s?){1, 4}\]"
displayMode="$functionName">
<functionName>
<nameExpr expr="([a-zA-Z0-9\\]+\s?){1, 4}"/>
</functionName>
</function>
</classRange>
为了正确搜索标题,需要对classRange mainExpr
(或问题所在的其他地方)进行哪些更改?
答案 0 :(得分:1)
逗号之后你不应该有空格:
"^\[([a-zA-Z0-9\\]+\s?){1,4}\]"
将这些空间转换为“预期的”&#39;范围为文字字符串,因此它将匹配^\[([a-zA-Z0-9\\]+\s?)
,然后是字面{1, 4}
,然后是\]
。
答案 1 :(得分:0)
如果有人遇到类似问题,则修复显然只是在funcNameExpr
代码中使用nameExpr
代替functionName
。