51 lines
2.4 KiB
XML
51 lines
2.4 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!-- ==========================================================================\
|
|
|
|
|
| To learn how to make your own language parser, please check the following
|
|
| link:
|
|
| https://npp-user-manual.org/docs/function-list/
|
|
|
|
|
\=========================================================================== -->
|
|
<NotepadPlus>
|
|
<functionList>
|
|
<!--
|
|
| Based on:
|
|
| https://notepad-plus-plus.org/community/topic/12972/trouble-with-defining-a-function-list-entry/7
|
|
|
|
|
| By convention, the style of comment is indicated by the file extension,
|
|
| with ".hs" indicating a "usual" Haskell file
|
|
| and ".lhs" indicating a literate Haskell file.
|
|
\-->
|
|
<parser
|
|
displayName="Haskell"
|
|
id ="haskell_function"
|
|
commentExpr="(?x) # free-spacing (see `RegEx - Pattern Modifiers`)
|
|
(?s: # Multi Line Comment (nesting allowed)
|
|
\{- # - start-of-comment indicator
|
|
(?> # - followed by zero or more characters...
|
|
[^{-] # ...not part of the start indicator,
|
|
| \{(?!-) # ...not being a start-of-comment indicator,
|
|
| -(?!\}) # ...not being an end-of-comment indicator and
|
|
| (?R) # ...balancing through recursion (nesting)
|
|
)*
|
|
-\} # - end-of-comment indicator
|
|
)
|
|
| (?m-s:-{2}.*?$) # Single Line Comment
|
|
"
|
|
>
|
|
<function
|
|
mainExpr="(?x) # free-spacing (see `RegEx - Pattern Modifiers`)
|
|
(?m-s) # ^ and $ match at line breaks, dot does not
|
|
^ # NO leading whitespace at start-of-line
|
|
[A-Za-z][\w\x27]* # valid character combination for identifiers
|
|
\x20+::\x20
|
|
.*?$ # whatever, until end-of-line
|
|
"
|
|
>
|
|
<functionName>
|
|
<nameExpr expr="[A-Za-z][\w\x27]*" />
|
|
</functionName>
|
|
</function>
|
|
</parser>
|
|
</functionList>
|
|
</NotepadPlus> |