Как добавить в Notepad++ парсер для Function List
Для начала нужно установить Notepad++ БЕЗ инсталлятора (из архива).
Если Notepad++ поставить при помощи инсталлятора, то все, что описано ниже, работать НЕ будет.
В файле functionList.xml в папке Notepad++ в секцию <associationMap> добавить строку
<association id= «lua_function» langID=»23″ />
ВАЖНО: если изменить строку «lua_function» на что-либо другое (например, на «lua_parse»), то работать НЕ будет.
В конец секции <parsers> добавить парсер, взятый отсюда (первая выдача в гугле по запросу «notepad++ lua function list»):
<!-- Basic lua parser for functionList.xml in Notepad++ 6.5.3 -->
<!-- See http://notepad-plus-plus.org/features/function-list.html -->
<parser id="lua_function" displayName="Lua" commentExpr="--.*?$">
<!-- Basic lua table view, nested lua table not supported -->
<classRange
mainExpr="[.\w]+[\s]*=[\s]*\{"
openSymbole="\{"
closeSymbole="\}"
displayMode="node">
<className>
<nameExpr expr="[.\w]+"/>
</className>
<function
mainExpr="[.\w]+[\s]*=[\s]*['"]?[\w]+['"]?">
<functionName>
<funcNameExpr expr=".*"/>
</functionName>
</function>
</classRange>
<!-- Basic lua functions support -->
<function
mainExpr="(function[\s]+[.\w]+(:[\w]+)?)|([.\w]+[\s]*=[\s]*function)"
displayMode="$className->$functionName">
<functionName>
<nameExpr expr="((?<=function)[\s]+[.:\w]+)|(([.\w]+)(?=([\s]*=[\s]*function)))"/>
</functionName>
<className>
<nameExpr expr="[.\w]+(?=:)"/>
</className>
</function>
</parser>
Профит!
leave a comment