...

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

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

     1<lexer>
     2  <config>
     3    <name>Fish</name>
     4    <alias>fish</alias>
     5    <alias>fishshell</alias>
     6    <filename>*.fish</filename>
     7    <filename>*.load</filename>
     8    <mime_type>application/x-fish</mime_type>
     9  </config>
    10  <rules>
    11    <state name="paren">
    12      <rule pattern="\)">
    13        <token type="Keyword"/>
    14        <pop depth="1"/>
    15      </rule>
    16      <rule>
    17        <include state="root"/>
    18      </rule>
    19    </state>
    20    <state name="math">
    21      <rule pattern="\)\)">
    22        <token type="Keyword"/>
    23        <pop depth="1"/>
    24      </rule>
    25      <rule pattern="[-+*/%^|&amp;]|\*\*|\|\|">
    26        <token type="Operator"/>
    27      </rule>
    28      <rule pattern="\d+#\d+">
    29        <token type="LiteralNumber"/>
    30      </rule>
    31      <rule pattern="\d+#(?! )">
    32        <token type="LiteralNumber"/>
    33      </rule>
    34      <rule pattern="\d+">
    35        <token type="LiteralNumber"/>
    36      </rule>
    37      <rule>
    38        <include state="root"/>
    39      </rule>
    40    </state>
    41    <state name="root">
    42      <rule>
    43        <include state="basic"/>
    44      </rule>
    45      <rule>
    46        <include state="interp"/>
    47      </rule>
    48      <rule>
    49        <include state="data"/>
    50      </rule>
    51    </state>
    52    <state name="interp">
    53      <rule pattern="\$\(\(">
    54        <token type="Keyword"/>
    55        <push state="math"/>
    56      </rule>
    57      <rule pattern="\(">
    58        <token type="Keyword"/>
    59        <push state="paren"/>
    60      </rule>
    61      <rule pattern="\$#?(\w+|.)">
    62        <token type="NameVariable"/>
    63      </rule>
    64    </state>
    65    <state name="basic">
    66      <rule pattern="(?&lt;=(?:^|\A|;|&amp;&amp;|\|\||\||\b(continue|function|return|switch|begin|while|break|count|false|block|echo|case|true|else|exit|test|set|cdh|and|pwd|for|end|not|if|cd|or)\b)\s*)(continue|function|return|switch|begin|while|break|count|false|block|test|case|true|echo|exit|else|set|cdh|and|pwd|for|end|not|if|cd|or)(?=;?\b)">
    67        <token type="Keyword"/>
    68      </rule>
    69      <rule pattern="(?&lt;=for\s+\S+\s+)in\b">
    70        <token type="Keyword"/>
    71      </rule>
    72      <rule pattern="\b(fish_update_completions|fish_command_not_found|fish_breakpoint_prompt|fish_status_to_signal|fish_right_prompt|fish_is_root_user|fish_mode_prompt|fish_vcs_prompt|fish_key_reader|fish_svn_prompt|fish_git_prompt|fish_hg_prompt|fish_greeting|fish_add_path|commandline|fish_prompt|fish_indent|fish_config|fish_pager|breakpoint|fish_title|prompt_pwd|functions|set_color|realpath|funcsave|contains|complete|argparse|fish_opt|history|builtin|getopts|suspend|command|mimedb|printf|ulimit|disown|string|source|funced|status|random|isatty|fishd|prevd|vared|umask|nextd|alias|pushd|emit|jobs|popd|help|psub|wait|fish|read|time|exec|eval|math|trap|type|dirs|dirh|abbr|kill|bind|hash|open|fc|bg|fg)\s*\b(?!\.)">
    73        <token type="NameBuiltin"/>
    74      </rule>
    75      <rule pattern="#!.*\n">
    76        <token type="CommentHashbang"/>
    77      </rule>
    78      <rule pattern="#.*\n">
    79        <token type="Comment"/>
    80      </rule>
    81      <rule pattern="\\[\w\W]">
    82        <token type="LiteralStringEscape"/>
    83      </rule>
    84      <rule pattern="(\b\w+)(\s*)(=)">
    85        <bygroups>
    86          <token type="NameVariable"/>
    87          <token type="Text"/>
    88          <token type="Operator"/>
    89        </bygroups>
    90      </rule>
    91      <rule pattern="[\[\]()={}]">
    92        <token type="Operator"/>
    93      </rule>
    94      <rule pattern="(?&lt;=\[[^\]]+)\.\.|-(?=[^\[]+\])">
    95        <token type="Operator"/>
    96      </rule>
    97      <rule pattern="&lt;&lt;-?\s*(\&#39;?)\\?(\w+)[\w\W]+?\2">
    98        <token type="LiteralString"/>
    99      </rule>
   100      <rule pattern="(?&lt;=set\s+(?:--?[^\d\W][\w-]*\s+)?)\w+">
   101        <token type="NameVariable"/>
   102      </rule>
   103      <rule pattern="(?&lt;=for\s+)\w[\w-]*(?=\s+in)">
   104        <token type="NameVariable"/>
   105      </rule>
   106      <rule pattern="(?&lt;=function\s+)\w(?:[^\n])*?(?= *[-\n])">
   107        <token type="NameFunction"/>
   108      </rule>
   109      <rule pattern="(?&lt;=(?:^|\b(?:and|or|sudo)\b|;|\|\||&amp;&amp;|\||\(|(?:\b\w+\s*=\S+\s)) *)\w[\w-]*">
   110        <token type="NameFunction"/>
   111      </rule>
   112    </state>
   113    <state name="data">
   114      <rule pattern="(?s)\$?&#34;(\\\\|\\[0-7]+|\\.|[^&#34;\\$])*&#34;">
   115        <token type="LiteralStringDouble"/>
   116      </rule>
   117      <rule pattern="&#34;">
   118        <token type="LiteralStringDouble"/>
   119        <push state="string"/>
   120      </rule>
   121      <rule pattern="(?s)\$&#39;(\\\\|\\[0-7]+|\\.|[^&#39;\\])*&#39;">
   122        <token type="LiteralStringSingle"/>
   123      </rule>
   124      <rule pattern="(?s)&#39;.*?&#39;">
   125        <token type="LiteralStringSingle"/>
   126      </rule>
   127      <rule pattern=";">
   128        <token type="Punctuation"/>
   129      </rule>
   130      <rule pattern="&amp;&amp;|\|\||&amp;|\||\^|&lt;|&gt;">
   131        <token type="Operator"/>
   132      </rule>
   133      <rule pattern="\s+">
   134        <token type="Text"/>
   135      </rule>
   136      <rule pattern="\b\d+\b">
   137        <token type="LiteralNumber"/>
   138      </rule>
   139      <rule pattern="(?&lt;=\s+)--?[^\d][\w-]*">
   140        <token type="NameAttribute"/>
   141      </rule>
   142      <rule pattern=".+?">
   143        <token type="Text"/>
   144      </rule>
   145    </state>
   146    <state name="string">
   147      <rule pattern="&#34;">
   148        <token type="LiteralStringDouble"/>
   149        <pop depth="1"/>
   150      </rule>
   151      <rule pattern="(?s)(\\\\|\\[0-7]+|\\.|[^&#34;\\$])+">
   152        <token type="LiteralStringDouble"/>
   153      </rule>
   154      <rule>
   155        <include state="interp"/>
   156      </rule>
   157    </state>
   158  </rules>
   159</lexer>

View as plain text