...

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

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

     1<lexer>
     2  <config>
     3    <name>Go HTML Template</name>
     4    <alias>go-html-template</alias>
     5  </config>
     6  <rules>
     7    <state name="template">
     8      <rule pattern="[-]?}}">
     9        <token type="CommentPreproc"/>
    10        <pop depth="1"/>
    11      </rule>
    12      <rule pattern="(?=}})">
    13        <token type="CommentPreproc"/>
    14        <pop depth="1"/>
    15      </rule>
    16      <rule pattern="\(">
    17        <token type="Operator"/>
    18        <push state="subexpression"/>
    19      </rule>
    20      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    21        <token type="LiteralString"/>
    22      </rule>
    23      <rule>
    24        <include state="expression"/>
    25      </rule>
    26    </state>
    27    <state name="subexpression">
    28      <rule pattern="\)">
    29        <token type="Operator"/>
    30        <pop depth="1"/>
    31      </rule>
    32      <rule>
    33        <include state="expression"/>
    34      </rule>
    35    </state>
    36    <state name="expression">
    37      <rule pattern="\s+">
    38        <token type="TextWhitespace"/>
    39      </rule>
    40      <rule pattern="\(">
    41        <token type="Operator"/>
    42        <push state="subexpression"/>
    43      </rule>
    44      <rule pattern="(range|if|else|while|with|template|end|true|false|nil|and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge|block|break|continue|define|slice)\b">
    45        <token type="Keyword"/>
    46      </rule>
    47      <rule pattern="\||:?=|,">
    48        <token type="Operator"/>
    49      </rule>
    50      <rule pattern="[$]?[^\W\d]\w*">
    51        <token type="NameOther"/>
    52      </rule>
    53      <rule pattern="\$|[$]?\.(?:[^\W\d]\w*)?">
    54        <token type="NameAttribute"/>
    55      </rule>
    56      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
    57        <token type="LiteralString"/>
    58      </rule>
    59      <rule pattern="-?\d+i">
    60        <token type="LiteralNumber"/>
    61      </rule>
    62      <rule pattern="-?\d+\.\d*([Ee][-+]\d+)?i">
    63        <token type="LiteralNumber"/>
    64      </rule>
    65      <rule pattern="\.\d+([Ee][-+]\d+)?i">
    66        <token type="LiteralNumber"/>
    67      </rule>
    68      <rule pattern="-?\d+[Ee][-+]\d+i">
    69        <token type="LiteralNumber"/>
    70      </rule>
    71      <rule pattern="-?\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
    72        <token type="LiteralNumberFloat"/>
    73      </rule>
    74      <rule pattern="-?\.\d+([eE][+\-]?\d+)?">
    75        <token type="LiteralNumberFloat"/>
    76      </rule>
    77      <rule pattern="-?0[0-7]+">
    78        <token type="LiteralNumberOct"/>
    79      </rule>
    80      <rule pattern="-?0[xX][0-9a-fA-F]+">
    81        <token type="LiteralNumberHex"/>
    82      </rule>
    83      <rule pattern="-?0b[01_]+">
    84        <token type="LiteralNumberBin"/>
    85      </rule>
    86      <rule pattern="-?(0|[1-9][0-9]*)">
    87        <token type="LiteralNumberInteger"/>
    88      </rule>
    89      <rule pattern="&#39;(\\[&#39;&#34;\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])&#39;">
    90        <token type="LiteralStringChar"/>
    91      </rule>
    92      <rule pattern="`[^`]*`">
    93        <token type="LiteralString"/>
    94      </rule>
    95    </state>
    96    <state name="root">
    97      <rule pattern="{{(- )?/\*(.|\n)*?\*/( -)?}}">
    98        <token type="CommentMultiline"/>
    99      </rule>
   100      <rule pattern="{{[-]?">
   101        <token type="CommentPreproc"/>
   102        <push state="template"/>
   103      </rule>
   104      <rule pattern="[^{]+">
   105        <token type="Other"/>
   106      </rule>
   107      <rule pattern="{">
   108        <token type="Other"/>
   109      </rule>
   110    </state>
   111  </rules>
   112</lexer>

View as plain text