Есть ли какие-либо улучшения, которые могут быть сделаны к этому?
От ArtFunkel на SourceForge:
http://sourceforge.net/p/notepad-plus/discussion/482781/thread/515001cd/#31ae
<parser id="py_function" displayName="Python class" commentExpr="(#.*?$|'''.*?('''|\Z))">
<classRange mainExpr="(?<=^class ).*?(?=\n\S|\Z)">
<className>
<nameExpr expr="\w+(?=[\(|:])"/>
</className>
<function mainExpr="(?<=def ).+?(?=:)">
<functionName>
<funcNameExpr expr=".*"/>
</functionName>
</function>
</classRange>
<function mainExpr="(?<=def ).+?(?=:)">
<functionName>
<funcNameExpr expr=".*"/>
</functionName>
</function>
</parser>
Список функций не делает вложенные классы, но в противном случае парсер выше должен подцепить все! Вставьте элемент в% appdata%\Notepad++\functionList.xml, затем добавьте эту строку в associationMap для регистрации ассоциации:
<association langID="22" id="py_function"/>