...

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

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

     1<lexer>
     2  <config>
     3    <name>Twig</name>
     4    <alias>twig</alias>
     5    <mime_type>application/x-twig</mime_type>
     6    <dot_all>true</dot_all>
     7  </config>
     8  <rules>
     9    <state name="var">
    10      <rule pattern="\s+">
    11        <token type="Text"/>
    12      </rule>
    13      <rule pattern="(-?)(\}\})">
    14        <bygroups>
    15          <token type="Text"/>
    16          <token type="CommentPreproc"/>
    17        </bygroups>
    18        <pop depth="1"/>
    19      </rule>
    20      <rule>
    21        <include state="varnames"/>
    22      </rule>
    23    </state>
    24    <state name="tag">
    25      <rule pattern="\s+">
    26        <token type="Text"/>
    27      </rule>
    28      <rule pattern="(-?)(%\})">
    29        <bygroups>
    30          <token type="Text"/>
    31          <token type="CommentPreproc"/>
    32        </bygroups>
    33        <pop depth="1"/>
    34      </rule>
    35      <rule>
    36        <include state="varnames"/>
    37      </rule>
    38      <rule pattern=".">
    39        <token type="Punctuation"/>
    40      </rule>
    41    </state>
    42    <state name="root">
    43      <rule pattern="[^{]+">
    44        <token type="Other"/>
    45      </rule>
    46      <rule pattern="\{\{">
    47        <token type="CommentPreproc"/>
    48        <push state="var"/>
    49      </rule>
    50      <rule pattern="\{\#.*?\#\}">
    51        <token type="Comment"/>
    52      </rule>
    53      <rule pattern="(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})">
    54        <bygroups>
    55          <token type="CommentPreproc"/>
    56          <token type="Text"/>
    57          <token type="Keyword"/>
    58          <token type="Text"/>
    59          <token type="CommentPreproc"/>
    60          <token type="Other"/>
    61          <token type="CommentPreproc"/>
    62          <token type="Text"/>
    63          <token type="Keyword"/>
    64          <token type="Text"/>
    65          <token type="CommentPreproc"/>
    66        </bygroups>
    67      </rule>
    68      <rule pattern="(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})">
    69        <bygroups>
    70          <token type="CommentPreproc"/>
    71          <token type="Text"/>
    72          <token type="Keyword"/>
    73          <token type="Text"/>
    74          <token type="CommentPreproc"/>
    75          <token type="Other"/>
    76          <token type="CommentPreproc"/>
    77          <token type="Text"/>
    78          <token type="Keyword"/>
    79          <token type="Text"/>
    80          <token type="CommentPreproc"/>
    81        </bygroups>
    82      </rule>
    83      <rule pattern="(\{%)(-?\s*)(filter)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
    84        <bygroups>
    85          <token type="CommentPreproc"/>
    86          <token type="Text"/>
    87          <token type="Keyword"/>
    88          <token type="Text"/>
    89          <token type="NameFunction"/>
    90        </bygroups>
    91        <push state="tag"/>
    92      </rule>
    93      <rule pattern="(\{%)(-?\s*)([a-zA-Z_]\w*)">
    94        <bygroups>
    95          <token type="CommentPreproc"/>
    96          <token type="Text"/>
    97          <token type="Keyword"/>
    98        </bygroups>
    99        <push state="tag"/>
   100      </rule>
   101      <rule pattern="\{">
   102        <token type="Other"/>
   103      </rule>
   104    </state>
   105    <state name="varnames">
   106      <rule pattern="(\|)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
   107        <bygroups>
   108          <token type="Operator"/>
   109          <token type="Text"/>
   110          <token type="NameFunction"/>
   111        </bygroups>
   112      </rule>
   113      <rule pattern="(is)(\s+)(not)?(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)">
   114        <bygroups>
   115          <token type="Keyword"/>
   116          <token type="Text"/>
   117          <token type="Keyword"/>
   118          <token type="Text"/>
   119          <token type="NameFunction"/>
   120        </bygroups>
   121      </rule>
   122      <rule pattern="(?i)(true|false|none|null)\b">
   123        <token type="KeywordPseudo"/>
   124      </rule>
   125      <rule pattern="(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\b">
   126        <token type="Keyword"/>
   127      </rule>
   128      <rule pattern="(loop|block|parent)\b">
   129        <token type="NameBuiltin"/>
   130      </rule>
   131      <rule pattern="(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
   132        <token type="NameVariable"/>
   133      </rule>
   134      <rule pattern="\.(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*">
   135        <token type="NameVariable"/>
   136      </rule>
   137      <rule pattern="\.[0-9]+">
   138        <token type="LiteralNumber"/>
   139      </rule>
   140      <rule pattern=":?&#34;(\\\\|\\&#34;|[^&#34;])*&#34;">
   141        <token type="LiteralStringDouble"/>
   142      </rule>
   143      <rule pattern=":?&#39;(\\\\|\\&#39;|[^&#39;])*&#39;">
   144        <token type="LiteralStringSingle"/>
   145      </rule>
   146      <rule pattern="([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[&gt;&lt;=]=?)">
   147        <token type="Operator"/>
   148      </rule>
   149      <rule pattern="[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?">
   150        <token type="LiteralNumber"/>
   151      </rule>
   152    </state>
   153  </rules>
   154</lexer>

View as plain text