...

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

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

     1<lexer>
     2  <config>
     3    <name>C#</name>
     4    <alias>csharp</alias>
     5    <alias>c#</alias>
     6    <filename>*.cs</filename>
     7    <mime_type>text/x-csharp</mime_type>
     8    <dot_all>true</dot_all>
     9    <ensure_nl>true</ensure_nl>
    10  </config>
    11  <rules>
    12    <state name="root">
    13      <rule pattern="^\s*\[.*?\]">
    14        <token type="NameAttribute"/>
    15      </rule>
    16      <rule pattern="[^\S\n]+">
    17        <token type="Text"/>
    18      </rule>
    19      <rule pattern="\\\n">
    20        <token type="Text"/>
    21      </rule>
    22      <rule pattern="///[^\n\r]+">
    23        <token type="CommentSpecial"/>
    24      </rule>
    25      <rule pattern="//[^\n\r]+">
    26        <token type="CommentSingle"/>
    27      </rule>
    28      <rule pattern="/[*].*?[*]/">
    29        <token type="CommentMultiline"/>
    30      </rule>
    31      <rule pattern="\n">
    32        <token type="Text"/>
    33      </rule>
    34      <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;/?-]">
    35        <token type="Punctuation"/>
    36      </rule>
    37      <rule pattern="[{}]">
    38        <token type="Punctuation"/>
    39      </rule>
    40      <rule pattern="@&#34;(&#34;&#34;|[^&#34;])*&#34;">
    41        <token type="LiteralString"/>
    42      </rule>
    43      <rule pattern="\$@?&#34;(&#34;&#34;|[^&#34;])*&#34;">
    44        <token type="LiteralString"/>
    45      </rule>
    46      <rule pattern="&#34;(\\\\|\\&#34;|[^&#34;\n])*[&#34;\n]">
    47        <token type="LiteralString"/>
    48      </rule>
    49      <rule pattern="&#39;\\.&#39;|&#39;[^\\]&#39;">
    50        <token type="LiteralStringChar"/>
    51      </rule>
    52      <rule pattern="0[xX][0-9a-fA-F]+[Ll]?|\d[_\d]*(\.\d*)?([eE][+-]?\d+)?[flFLdD]?">
    53        <token type="LiteralNumber"/>
    54      </rule>
    55      <rule pattern="#[ \t]*(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma|nullable)\b[^\n\r]+">
    56        <token type="CommentPreproc"/>
    57      </rule>
    58      <rule pattern="\b(extern)(\s+)(alias)\b">
    59        <bygroups>
    60          <token type="Keyword"/>
    61          <token type="Text"/>
    62          <token type="Keyword"/>
    63        </bygroups>
    64      </rule>
    65      <rule pattern="(abstract|as|async|await|base|break|by|case|catch|checked|const|continue|default|delegate|do|else|enum|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|init|internal|is|let|lock|new|null|on|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unchecked|unsafe|virtual|void|while|get|set|new|partial|yield|add|remove|value|alias|ascending|descending|from|group|into|orderby|select|thenby|where|join|equals)\b">
    66        <token type="Keyword"/>
    67      </rule>
    68      <rule pattern="(global)(::)">
    69        <bygroups>
    70          <token type="Keyword"/>
    71          <token type="Punctuation"/>
    72        </bygroups>
    73      </rule>
    74      <rule pattern="(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??">
    75        <token type="KeywordType"/>
    76      </rule>
    77      <rule pattern="(class|struct|record|interface)(\s+)">
    78        <bygroups>
    79          <token type="Keyword"/>
    80          <token type="Text"/>
    81        </bygroups>
    82        <push state="class"/>
    83      </rule>
    84      <rule pattern="(namespace|using)(\s+)">
    85        <bygroups>
    86          <token type="Keyword"/>
    87          <token type="Text"/>
    88        </bygroups>
    89        <push state="namespace"/>
    90      </rule>
    91      <rule pattern="@?[_a-zA-Z]\w*">
    92        <token type="Name"/>
    93      </rule>
    94    </state>
    95    <state name="class">
    96      <rule pattern="@?[_a-zA-Z]\w*">
    97        <token type="NameClass"/>
    98        <pop depth="1"/>
    99      </rule>
   100      <rule>
   101        <pop depth="1"/>
   102      </rule>
   103    </state>
   104    <state name="namespace">
   105      <rule pattern="(?=\()">
   106        <token type="Text"/>
   107        <pop depth="1"/>
   108      </rule>
   109      <rule pattern="(@?[_a-zA-Z]\w*|\.)+">
   110        <token type="NameNamespace"/>
   111        <pop depth="1"/>
   112      </rule>
   113    </state>
   114  </rules>
   115</lexer>

View as plain text