XML List Functions For Notepad++
XML List Functions For Notepad++
>
<!-| To learn how to make your own language parser, please check the following li
nk:
|
http://notepad-plus-plus.org/features/function-list.html
\-->
<NotepadPlus>
<functionList>
<associationMap>
<!-langID:
Don't use L_JS (19) use L_JAVASCRIPT (58) instead!
L_ADA
= 31
L_ASCII
L_SEARCHRESULT = 47
L_ASM
L_SMALLTALK
= 37
L_ASP
L_SQL
= 17
L_AU3
L_TCL
= 29
L_BASH
L_TEX
= 24
L_BATCH
L_TEXT
= 0
L_C
L_USER
= 15
L_CAML
L_VB
= 18
L_CMAKE
L_VERILOG
= 43
L_COBOL
L_VHDL
= 38
L_COFFEESCRIPT
L_XML
= 9
L_CPP
L_YAML
= 49
L_CS
= 42 | L_DIFF
= 33 | L_LISP
= 14 | L_EXTERNAL
= 60 | L_LUA
= 32 | L_FLASH
= 27 | L_MAKEFILE
= 16 | L_FORTRAN
= 25 | L_MATLAB
= 40 | L_FORTRAN_77
= 59 | L_NSIS
= 26 | L_GUI4CLI
= 51 | L_OBJC
= 12 | L_HASKELL
= 45 | L_PASCAL
= 2 | L_HTML
= 8 | L_PERL
= 41 | L_INI
= 13 | L_PHP
= 48 | L_INNO
= 46 | L_POWERSHELL
= 50 | L_JAVA
= 6 | L_PROPS
= 56 | L_JAVASCRIPT
= 58 | L_PS
= 3 | L_JS
= 19 | L_PYTHON
= 4 | L_JSON
= 57 | L_R
L_CSS
= 20 | L_JSP
= 55 | L_RC
L_D
= 52 | L_KIX
= 39 | L_RUBY
= 30 | L_SCHEME
= 23 |
= 10 |
= 44 |
= 28 |
= 5 |
= 11 |
= 21 |
= 1 |
= 53 |
= 34 |
= 35 |
= 22 |
= 54 |
= 7 |
= 36 |
0 = L_TEXT
| 16 = L_ASP
| 32 = L_ASM
1 = L_PHP
| 17 = L_SQL
| 33 = L_DIFF
2 = L_C
| 18 = L_VB
| 34 = L_PROPS
3 = L_CPP
| 19 = L_JS
| 35 = L_PS
4 = L_CS
| 20 = L_CSS
| 36 = L_RUBY
| 21 = L_PERL
| 37 = L_SMALL
| 22 = L_PYTHON
| 38 = L_VHDL
| 48 = L_CMAKE
| 49 = L_YAML
| 50 = L_COBOL
| 51 = L_GUI4CLI
| 52 = L_D
TALK
5 = L_OBJC
| 53 = L_POWERSHELL
6 = L_JAVA
| 54 = L_R
7 = L_RC
| 23 = L_LUA
| 39 = L_KIX
| 24 = L_TEX
| 40 = L_AU3
| 25 = L_FORTRAN
| 41 = L_CAML
| 26 = L_BASH
| 42 = L_ADA
| 27 = L_FLASH
| 43 = L_VERIL
| 28 = L_NSIS
| 44 = L_MATLA
| 29 = L_TCL
| 45 = L_HASKE
| 30 = L_LISP
| 46 = L_INNO
| 31 = L_SCHEME
| 47 = L_SEARC
| 55 = L_JSP
8 = L_HTML
| 56 = L_COFFEESCRIPT
9 = L_XML
| 57 = L_JSON
10 = L_MAKEFILE
| 58 = L_JAVASCRIPT
11 = L_PASCAL
OG
| 59 = L_FORTRAN_77
12 = L_BATCH
B
| 60 = L_EXTERNAL
13 = L_INI
LL
|
14 = L_ASCII
|
15 = L_USER
HRESULT |
langID= "1"
langID= "2"
langID= "3"
langID= "4"
langID= "6"
langID= "9"
langID="12"
langID="13"
langID="21"
langID="22"
langID="26"
langID="28"
langID="36"
langID="58"
id="php_function" />
id="c_function" />
id="cpp_function" />
id="cs_function" />
id="java" />
id="xml_node" />
id="batch_label" />
id="ini_section" />
id="perl_function" />
id="python_function" />
id="bash_function" />
id="nsis_syntax" />
id="ruby_function" />
id="javascript_function" />
</associationMap>
<parsers>
<parser
id
="php_function"
displayName="PHP"
commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
>
<classRange
mainExpr
="^\s*(class|abstract\s+clas
s|final\s+class)[\t\x20]+[A-Za-z_\x7f-\xff][\w\x7f-\xff]*(\s*|\s*(extends|implem
ents|(extends\s+(\\|[A-Za-z_\x7f-\xff][\w\x7f-\xff]*)+\s+implements))\s+(\,\s*|(
\\|[A-Za-z_\x7f-\xff][\w\x7f-\xff]*))+\s*)?\{"
openSymbole ="\{"
closeSymbole="\}"
>
<className>
<nameExpr expr="(class|abstract\
s+class|final\s+class)\s+\w+" />
<nameExpr expr="\s+\w+\Z" />
<nameExpr expr="\w+\Z" />
</className>
<function
mainExpr="^\s*((static|public|pr
otected|private|final)*(\s+(static|public|protected|private|final))+\s+)?(functi
on\s+)+(\w+(\s+\w+)?(\s+|\*\s+|\s+\*|\s+\*\s+))?(\w+\s*::)?(?!(if|while|for|swit
ch))[\w~]+\s*\([^\{]*\{"
>
<functionName>
<funcNameExpr expr="(?!(
if|while|for|switch))\w+\s*\([^\{]*" />
<!-- comment out the fol
lowing node to display the method with parameters -->
<funcNameExpr expr="(?!(
if|while|for|switch))\w+" />
</functionName>
</function>
</classRange>
<function
mainExpr="^\s*function\s+\w+\("
>
<functionName>
<nameExpr expr="(?!(if|while|for
))\w+\s*\(" />
<nameExpr expr="(?!(if|while|for
))\w+" />
</functionName>
<className>
<nameExpr expr="\w+(?=\s*::)" />
</className>
</function>
</parser>
<parser
id
="c_function"
displayName="C source"
commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
>
<function
mainExpr="^[\t\x20]*((static|const|virtu
al)\s+)?[\w:]+(\s+\w+)?(\s+|(\*|\*\*)\s+|\s+(\*|\*\*)|\s+(\*|\*\*)\s+)(\w+\s*::)
?(?!(if|while|for))\w+\s*\([^\)\(]*\)(\s*const\s*)?[\n\s]*\{"
>
<functionName>
<nameExpr expr="(?!(if|while|for
))[\w~]+\s*\(" />
<nameExpr expr="(?!(if|while|for
))[\w~]+" />
</functionName>
</function>
</parser>
<parser
id
="cpp_function"
displayName="C++ Class"
commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
>
<classRange
mainExpr
="^[\t\x20]*(class|struct)[\
t\x20]+\w+\s*(final)?\s*(:\s*(public|protected|private)\s+\w+\s*)?\{"
openSymbole ="\{"
closeSymbole="\}"
>
<className>
<nameExpr expr="(class|struct)[\
t\x20]+\w+" />
<nameExpr expr="[\t\x20]+\w+" />
<nameExpr expr="\w+" />
</className>
<function
mainExpr="^[\t\x20]*((static|con
st|virtual)\s+)?(\w+(\s+\w+)?(\s+|(\*|\*\*|&)\s+|\s+(\*|\*\*|&)|\s+(\*|\
*\*|&)\s+))?(\w+\s*::)?(?!(if|while|for|switch))[\w~]+\s*\([^\)\(]*\)(\s*con
st\s*)?(\s*(final|override|final\s*override|override\s*final)\s*)?[\n\s]*\{"
>
<functionName>
<funcNameExpr expr="(?!(
if|while|for|switch))[\w~]+\s*\(" />
<funcNameExpr expr="(?!(
if|while|for|switch))[\w~]+" />
</functionName>
</function>
</classRange>
<function
mainExpr="^[\t\x20]*((static|const|virtu
al)\s+)?\w+(\s+\w+)?(\s+|(\*|\*\*|&)\s+|\s+(\*|\*\*|&)|\s+(\*|\*\*|&
)\s+)(\w+\s*::)?(?!(if|while|for))\w+\s*\([^\)\(]*\)(\s*const\s*)?[\n\s]*\{"
>
<functionName>
<nameExpr expr="(?!(if|while|for
))\w+\s*\(" />
<nameExpr expr="(?!(if|while|for
))\w+" />
</functionName>
<className>
<nameExpr expr="\w+(?=\s*::)" />
</className>
</function>
</parser>
<parser
id
="cs_function"
displayName="C# Class"
commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
>
<classRange
mainExpr
="^[\t\x20]*((public|protect
ed|private|internal)\s+)?(\w+\s*)?(class|struct|interface)[\t\x20]+[^\{]+\{"
openSymbole ="\{"
closeSymbole="\}"
>
<className>
<nameExpr expr="(class|struct|in
terface)[\t\x20]+\w+" />
<parser
id
="xml_node"
displayName="XML Node"
commentExpr="<!--([^-]|-(?!->))*-->"
>
<!-- Only match nodes with at least one attribut
e -->
<function
mainExpr="<[\w\?]+[\t\x20]+\w+[\t\x20
]*=[\t\x20]*"[^"]+""
>
<functionName>
<nameExpr expr="[^<]*" />
</functionName>
</function>
</parser>
<parser
id
="batch_label"
displayName="BAT Label"
commentExpr="(?m-s)(::.*?$)|(REM.*?$)"
>
<function
mainExpr="^[\t\x20]*:\w+"
>
<functionName>
<nameExpr expr="[^\t\x20:]*" />
</functionName>
</function>
</parser>
<parser
id
="ini_section"
displayName="INI Section"
commentExpr="(?m-s:[#;].*?$)"
>
<function
mainExpr="^[\t\x20]*[\["][\w.;\x20\
(\)-]+[\]"]"
>
<functionName>
<nameExpr expr="[^\[\]"]*"
/>
</functionName>
</function>
</parser>
<parser
id
="perl_function"
displayName="Perl"
>
<function
mainExpr="^\s*(?<!#)\s*sub\s+\w+\s*\(
?[^\)\(]*?\)?[\n\s]*\{"
>
<functionName>
<nameExpr expr="(sub\s+)?\K\w+"
/>
</functionName>
<className>
<nameExpr expr="\w+(?=\s*::)" />
</className>
</function>
</parser>
<parser
id
="python_function"
displayName="Python class"
commentExpr="(?s:'''.*?''')|(?m-s:#.*?$)"
>
<classRange
mainExpr
="(?<=^class\x20).*?(?=\n
\S|\Z)"
>
<className>
<nameExpr expr="\w+(?=[\(|:])" /
>
</className>
<function
mainExpr="(?<=def\x20).+?(?=:
)"
>
<functionName>
<funcNameExpr expr=".*"
/>
</functionName>
</function>
</classRange>
<function
mainExpr="(?<=def\x20).+?(?=:)"
>
<functionName>
<nameExpr expr=".*" />
</functionName>
</function>
</parser>
<parser
id
="bash_function"
displayName="Shell"
commentExpr="(?m-s:#.*?$)"
>
<function
mainExpr="^[\t\x20]*(function[\t\r\n\x20
]*)?(\w)+[\t\r\n\x20]*(\([^\)]*\))?[\t\r\n\x20]*(\{)[^(\})\r\n\t\x20]*"
>
<functionName>
<nameExpr expr="[^{]*" />
</functionName>
</function>
</parser>
<parser
id
="nsis_syntax"
displayName="NSIS Syntax"
commentExpr="(?s:/\*.*?\*/)|(?m-s:[#;].*?$)"
>
<function
mainExpr="^[\t\x20]*(!macro|Function|Sec
tion|SectionGroup)[\t\x20]+[^\r\n]*$"
>
<functionName>
<nameExpr expr="(?(?=[\t\x20]*!m
acro)[\t\x20]*!macro[\t\x20]+[^\s]+|[^\r\n]*)" />
</functionName>
</function>
</parser>
<parser
id
="ruby_function"
displayName="Ruby"
>
<!-- within a class-->
<classRange
mainExpr
="(?<=^class\x20).*?(?=\n
\S|\Z)"
>
<className>
<nameExpr expr="\w+" />
</className>
<function
mainExpr="^\s*def\s+\w+"
>
<functionName>
<funcNameExpr expr="(?&l
t;=def\s)\w+" />
</functionName>
</function>
</classRange>
<!-- without class-->
<function
mainExpr="^\s*def\s+\w+"
>
<functionName>
<nameExpr expr="(?<=def\s)\w+
" />
</functionName>
</function>
</parser>
<parser
id
="javascript_function"
displayName="Javascript"
commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
>
<function
mainExpr="((^|\s+|[;\}\.])([A-Za-z_]\w*\
.)*[A-Za-z_]\w*\s*[=:]|^|[\s;\}]+)\s*function(\s+[A-Za-z_]?\w*\([^\)\(]*\)|\([^\
)\(]*\))[\n\s]*\{"
>
<functionName>
<nameExpr expr="[A-Za-z_]\w*\s*[
=:]|[A-Za-z_]?\w*\s*\(" />
<nameExpr expr="[A-Za-z_]?\w*" /
>
</functionName>
<className>
<nameExpr expr="([A-Za-z_]\w*\.)
*[A-Za-z_]\w*\." />
<nameExpr expr="([A-Za-z_]\w*\.)
*[A-Za-z_]\w*" />
</className>
</function>
</parser>
</parsers>
</functionList>
</NotepadPlus>