...

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

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

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

View as plain text