...

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

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

     1<lexer>
     2  <config>
     3    <name>Nix</name>
     4    <alias>nixos</alias>
     5    <alias>nix</alias>
     6    <filename>*.nix</filename>
     7    <mime_type>text/x-nix</mime_type>
     8  </config>
     9  <rules>
    10    <state name="space">
    11      <rule pattern="[ \t\r\n]+">
    12        <token type="Text"/>
    13      </rule>
    14    </state>
    15    <state name="paren">
    16      <rule pattern="\)">
    17        <token type="Punctuation"/>
    18        <pop depth="1"/>
    19      </rule>
    20      <rule>
    21        <include state="root"/>
    22      </rule>
    23    </state>
    24    <state name="scope">
    25      <rule pattern="}:">
    26        <token type="Punctuation"/>
    27        <pop depth="1"/>
    28      </rule>
    29      <rule pattern="}">
    30        <token type="Punctuation"/>
    31        <pop depth="1"/>
    32      </rule>
    33      <rule pattern="in(?![a-zA-Z0-9_&#39;-])">
    34        <token type="Keyword"/>
    35        <pop depth="1"/>
    36      </rule>
    37      <rule pattern="\${">
    38        <token type="LiteralStringInterpol"/>
    39        <push state="interpol"/>
    40      </rule>
    41      <rule>
    42        <include state="root"/>
    43      </rule>
    44      <rule pattern="(=|\?|,)">
    45        <token type="Operator"/>
    46      </rule>
    47    </state>
    48    <state name="builtins">
    49      <rule pattern="throw(?![a-zA-Z0-9_&#39;-])">
    50        <token type="NameException"/>
    51      </rule>
    52      <rule pattern="(dependencyClosure|fetchTarball|filterSource|currentTime|removeAttrs|baseNameOf|derivation|toString|builtins|getAttr|hasAttr|getEnv|isNull|abort|dirOf|toXML|map)(?![a-zA-Z0-9_&#39;-])">
    53        <token type="NameBuiltin"/>
    54      </rule>
    55    </state>
    56    <state name="literals">
    57      <rule pattern="(false|true|null)(?![a-zA-Z0-9_&#39;-])">
    58        <token type="NameConstant"/>
    59      </rule>
    60      <rule>
    61        <include state="uri"/>
    62      </rule>
    63      <rule>
    64        <include state="path"/>
    65      </rule>
    66      <rule>
    67        <include state="int"/>
    68      </rule>
    69      <rule>
    70        <include state="float"/>
    71      </rule>
    72    </state>
    73    <state name="keywords">
    74      <rule pattern="import(?![a-zA-Z0-9_&#39;-])">
    75        <token type="KeywordNamespace"/>
    76      </rule>
    77      <rule pattern="(inherit|assert|with|then|else|rec|if)(?![a-zA-Z0-9_&#39;-])">
    78        <token type="Keyword"/>
    79      </rule>
    80    </state>
    81    <state name="list">
    82      <rule pattern="\]">
    83        <token type="Punctuation"/>
    84        <pop depth="1"/>
    85      </rule>
    86      <rule>
    87        <include state="root"/>
    88      </rule>
    89    </state>
    90    <state name="operators">
    91      <rule pattern=" [/-] ">
    92        <token type="Operator"/>
    93      </rule>
    94      <rule pattern="(\.)(\${)">
    95        <bygroups>
    96          <token type="Operator"/>
    97          <token type="LiteralStringInterpol"/>
    98        </bygroups>
    99        <push state="interpol"/>
   100      </rule>
   101      <rule pattern="(\?)(\s*)(\${)">
   102        <bygroups>
   103          <token type="Operator"/>
   104          <token type="Text"/>
   105          <token type="LiteralStringInterpol"/>
   106        </bygroups>
   107        <push state="interpol"/>
   108      </rule>
   109      <rule pattern="(&amp;&amp;|&gt;=|&lt;=|\+\+|-&gt;|!=|\|\||//|==|@|!|\+|\?|&lt;|\.|&gt;|\*)">
   110        <token type="Operator"/>
   111      </rule>
   112      <rule pattern="[;:]">
   113        <token type="Punctuation"/>
   114      </rule>
   115    </state>
   116    <state name="comment">
   117      <rule pattern="\*/">
   118        <token type="CommentMultiline"/>
   119        <pop depth="1"/>
   120      </rule>
   121      <rule pattern=".|\n">
   122        <token type="CommentMultiline"/>
   123      </rule>
   124    </state>
   125    <state name="interpol">
   126      <rule pattern="}">
   127        <token type="LiteralStringInterpol"/>
   128        <pop depth="1"/>
   129      </rule>
   130      <rule>
   131        <include state="root"/>
   132      </rule>
   133    </state>
   134    <state name="path">
   135      <rule pattern="[a-zA-Z0-9._+-]*(/[a-zA-Z0-9._+-]+)+">
   136        <token type="LiteralStringRegex"/>
   137      </rule>
   138      <rule pattern="~(/[a-zA-Z0-9._+-]+)+/?">
   139        <token type="LiteralStringRegex"/>
   140      </rule>
   141      <rule pattern="&lt;[a-zA-Z0-9._+-]+(/[a-zA-Z0-9._+-]+)*&gt;">
   142        <token type="LiteralStringRegex"/>
   143      </rule>
   144    </state>
   145    <state name="float">
   146      <rule pattern="-?(([1-9][0-9]*\.[0-9]*)|(0?\.[0-9]+))([Ee][+-]?[0-9]+)?(?![a-zA-Z0-9_&#39;-])">
   147        <token type="LiteralNumberFloat"/>
   148      </rule>
   149    </state>
   150    <state name="root">
   151      <rule>
   152        <include state="keywords"/>
   153      </rule>
   154      <rule>
   155        <include state="builtins"/>
   156      </rule>
   157      <rule>
   158        <include state="literals"/>
   159      </rule>
   160      <rule>
   161        <include state="operators"/>
   162      </rule>
   163      <rule pattern="#.*$">
   164        <token type="CommentSingle"/>
   165      </rule>
   166      <rule pattern="/\*">
   167        <token type="CommentMultiline"/>
   168        <push state="comment"/>
   169      </rule>
   170      <rule pattern="\(">
   171        <token type="Punctuation"/>
   172        <push state="paren"/>
   173      </rule>
   174      <rule pattern="\[">
   175        <token type="Punctuation"/>
   176        <push state="list"/>
   177      </rule>
   178      <rule pattern="&#34;">
   179        <token type="LiteralStringDouble"/>
   180        <push state="qstring"/>
   181      </rule>
   182      <rule pattern="&#39;&#39;">
   183        <token type="LiteralStringSingle"/>
   184        <push state="istring"/>
   185      </rule>
   186      <rule pattern="{">
   187        <token type="Punctuation"/>
   188        <push state="scope"/>
   189      </rule>
   190      <rule pattern="let(?![a-zA-Z0-9_&#39;-])">
   191        <token type="Keyword"/>
   192        <push state="scope"/>
   193      </rule>
   194      <rule>
   195        <include state="id"/>
   196      </rule>
   197      <rule>
   198        <include state="space"/>
   199      </rule>
   200    </state>
   201    <state name="int">
   202      <rule pattern="-?[0-9]+(?![a-zA-Z0-9_&#39;-])">
   203        <token type="LiteralNumberInteger"/>
   204      </rule>
   205    </state>
   206    <state name="uri">
   207      <rule pattern="[a-zA-Z][a-zA-Z0-9+.-]*:[a-zA-Z0-9%/?:@&amp;=+$,_.!~*&#39;-]+">
   208        <token type="LiteralStringDoc"/>
   209      </rule>
   210    </state>
   211    <state name="qstring">
   212      <rule pattern="&#34;">
   213        <token type="LiteralStringDouble"/>
   214        <pop depth="1"/>
   215      </rule>
   216      <rule pattern="\${">
   217        <token type="LiteralStringInterpol"/>
   218        <push state="interpol"/>
   219      </rule>
   220      <rule pattern="\\.">
   221        <token type="LiteralStringEscape"/>
   222      </rule>
   223      <rule pattern=".|\n">
   224        <token type="LiteralStringDouble"/>
   225      </rule>
   226    </state>
   227    <state name="istring">
   228      <rule pattern="&#39;&#39;\$">
   229        <token type="LiteralStringEscape"/>
   230      </rule>
   231      <rule pattern="&#39;&#39;&#39;">
   232        <token type="LiteralStringEscape"/>
   233      </rule>
   234      <rule pattern="&#39;&#39;\\.">
   235        <token type="LiteralStringEscape"/>
   236      </rule>
   237      <rule pattern="&#39;&#39;">
   238        <token type="LiteralStringSingle"/>
   239        <pop depth="1"/>
   240      </rule>
   241      <rule pattern="\${">
   242        <token type="LiteralStringInterpol"/>
   243        <push state="interpol"/>
   244      </rule>
   245      <rule pattern="\$.">
   246        <token type="LiteralStringSingle"/>
   247      </rule>
   248      <rule pattern=".|\n">
   249        <token type="LiteralStringSingle"/>
   250      </rule>
   251    </state>
   252    <state name="id">
   253      <rule pattern="[a-zA-Z_][a-zA-Z0-9_&#39;-]*">
   254        <token type="Name"/>
   255      </rule>
   256    </state>
   257  </rules>
   258</lexer>

View as plain text