...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/elm.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>Elm</name>
     4    <alias>elm</alias>
     5    <filename>*.elm</filename>
     6    <mime_type>text/x-elm</mime_type>
     7  </config>
     8  <rules>
     9    <state name="shader">
    10      <rule pattern="\|(?!\])">
    11        <token type="NameEntity"/>
    12      </rule>
    13      <rule pattern="\|\]">
    14        <token type="NameEntity"/>
    15        <pop depth="1"/>
    16      </rule>
    17      <rule pattern=".*\n">
    18        <token type="NameEntity"/>
    19      </rule>
    20    </state>
    21    <state name="root">
    22      <rule pattern="\{-">
    23        <token type="CommentMultiline"/>
    24        <push state="comment"/>
    25      </rule>
    26      <rule pattern="--.*">
    27        <token type="CommentSingle"/>
    28      </rule>
    29      <rule pattern="\s+">
    30        <token type="Text"/>
    31      </rule>
    32      <rule pattern="&#34;">
    33        <token type="LiteralString"/>
    34        <push state="doublequote"/>
    35      </rule>
    36      <rule pattern="^\s*module\s*">
    37        <token type="KeywordNamespace"/>
    38        <push state="imports"/>
    39      </rule>
    40      <rule pattern="^\s*import\s*">
    41        <token type="KeywordNamespace"/>
    42        <push state="imports"/>
    43      </rule>
    44      <rule pattern="\[glsl\|.*">
    45        <token type="NameEntity"/>
    46        <push state="shader"/>
    47      </rule>
    48      <rule pattern="(import|module|alias|where|port|else|type|case|then|let|as|of|if|in)\b">
    49        <token type="KeywordReserved"/>
    50      </rule>
    51      <rule pattern="[A-Z]\w*">
    52        <token type="KeywordType"/>
    53      </rule>
    54      <rule pattern="^main ">
    55        <token type="KeywordReserved"/>
    56      </rule>
    57      <rule pattern="\((&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)\)">
    58        <token type="NameFunction"/>
    59      </rule>
    60      <rule pattern="(&lt;-|\|\||\|&gt;|&amp;&amp;|\+\+|-&gt;|\.\.|//|&gt;&gt;|&gt;=|/=|==|::|&lt;~|&lt;\||&lt;=|&lt;&lt;|~|&lt;|=|:|&gt;|&#39;|/|\\|\.|\^|-|`|\+|\*|\||%)">
    61        <token type="NameFunction"/>
    62      </rule>
    63      <rule>
    64        <include state="numbers"/>
    65      </rule>
    66      <rule pattern="[a-z_][a-zA-Z_\&#39;]*">
    67        <token type="NameVariable"/>
    68      </rule>
    69      <rule pattern="[,()\[\]{}]">
    70        <token type="Punctuation"/>
    71      </rule>
    72    </state>
    73    <state name="comment">
    74      <rule pattern="-(?!\})">
    75        <token type="CommentMultiline"/>
    76      </rule>
    77      <rule pattern="\{-">
    78        <token type="CommentMultiline"/>
    79        <push state="comment"/>
    80      </rule>
    81      <rule pattern="[^-}]">
    82        <token type="CommentMultiline"/>
    83      </rule>
    84      <rule pattern="-\}">
    85        <token type="CommentMultiline"/>
    86        <pop depth="1"/>
    87      </rule>
    88    </state>
    89    <state name="doublequote">
    90      <rule pattern="\\u[0-9a-fA-F]{4}">
    91        <token type="LiteralStringEscape"/>
    92      </rule>
    93      <rule pattern="\\[nrfvb\\&#34;]">
    94        <token type="LiteralStringEscape"/>
    95      </rule>
    96      <rule pattern="[^&#34;]">
    97        <token type="LiteralString"/>
    98      </rule>
    99      <rule pattern="&#34;">
   100        <token type="LiteralString"/>
   101        <pop depth="1"/>
   102      </rule>
   103    </state>
   104    <state name="imports">
   105      <rule pattern="\w+(\.\w+)*">
   106        <token type="NameClass"/>
   107        <pop depth="1"/>
   108      </rule>
   109    </state>
   110    <state name="numbers">
   111      <rule pattern="_?\d+\.(?=\d+)">
   112        <token type="LiteralNumberFloat"/>
   113      </rule>
   114      <rule pattern="_?\d+">
   115        <token type="LiteralNumberInteger"/>
   116      </rule>
   117    </state>
   118  </rules>
   119</lexer>

View as plain text