Created
November 17, 2014 16:18
-
-
Save VosaXalo/1f811a567b180e9eeacd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
File based about the file "sh.lang" present in GtkSourceView | |
Author: Nicola Jelmorini <jelmorini@protonmail.ch> | |
Copyright (C) 2014 Nicola Jelmorini <jelmorini@protonmail.ch> | |
This file is free software; you can redistribute it and/or | |
modify it under the terms of the GNU Lesser General Public | |
License as published by the Free Software Foundation; either | |
version 2.1 of the License, or (at your option) any later version. | |
You should have received a copy of the GNU Lesser General Public | |
License along with this file; if not, write to the Free Software | |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
or visit this link <http://www.gnu.org/licenses/>. | |
--> | |
<language id="fish" _name="Fish" version="2.0" _section="Scripts"> | |
<metadata> | |
<!-- <property name="mimetypes">text/x-fish</property> --> | |
<property name="mimetypes">text/x-shellscript;application/x-shellscript;text/x-fish</property> | |
<property name="globs">*.fish</property> | |
<property name="line-comment-start">#</property> | |
</metadata> | |
<styles> | |
<style id="comment" _name="Comment" map-to="def:comment"/> | |
<style id="function" _name="Function" map-to="def:function"/> | |
<style id="string" _name="String" map-to="def:string"/> | |
<style id="keyword" _name="Keyword" map-to="def:keyword"/> | |
<style id="variable" _name="Variable" map-to="def:type"/> | |
<style id="variable-definition" _name="Variable Definition" map-to="sh:variable"/> | |
<style id="variable-definition" _name="Variable Definition" map-to="fish:variable"/> | |
<style id="others" _name="Others" map-to="def:keyword"/> | |
<style id="common-command" _name="Common Commands" map-to="def:keyword"/> | |
<style id="here-doc-bound" _name="Heredoc Bound" map-to="def:keyword"/> | |
<style id="subshell" _name="Subshell" map-to="def:preprocessor"/> | |
</styles> | |
<definitions> | |
<context id="line-comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check"> | |
<start>(?<!\S)#</start> | |
<include> | |
<context ref="def:in-comment"/> | |
</include> | |
</context> | |
<context id="double-quoted-string" style-ref="string" class="string" class-disabled="no-spell-check"> | |
<start>"</start> | |
<end>"</end> | |
<include> | |
<!-- highlight escaped chars --> | |
<context style-ref="def:special-char"> | |
<match>\\[$`"\\]</match> | |
</context> | |
<!-- skip backslash where it's not an escaping char --> | |
<context> | |
<match>\\</match> | |
</context> | |
<context ref="def:line-continue"/> | |
<context ref="variable"/> | |
</include> | |
</context> | |
<context id="single-quoted-string" style-ref="string" class="string" class-disabled="no-spell-check"> | |
<start>'</start> | |
<end>'</end> | |
</context> | |
<context id="subshell"> | |
<start>\(</start> | |
<end>\)</end> | |
<include> | |
<context sub-pattern="0" where="start" style-ref="keyword"/> | |
<context sub-pattern="0" where="end" style-ref="keyword"/> | |
<context ref="fish"/> | |
</include> | |
</context> | |
<context id="punctuator" style-ref="others"> | |
<match>[;\|&/]</match> | |
</context> | |
<context id="function" style-ref="function"> | |
<!-- <match>function[ \t]\b[a-zA-Z_][a-zA-Z0-9_]*</match> function and name coloured --> | |
<match>function\b[a-zA-Z_][a-zA-Z0-9_]*</match> | |
</context> | |
<context id="redirection" style-ref="others"> | |
<keyword>>&+[0-9]</keyword> | |
<keyword>\b[0-9]+>&</keyword> | |
<keyword>\b[0-9]+>&+[0-9]</keyword> | |
<keyword>\b[0-9]+></keyword> | |
<keyword>>></keyword> | |
<keyword>\b[0-9]+>></keyword> | |
<keyword><&[0-9]</keyword> | |
<keyword>\b[0-9]+<&</keyword> | |
<keyword>\b[0-9]+<&[0-9]</keyword> | |
<keyword>\b[0-9]+<</keyword> | |
<keyword><<+[0-9]</keyword> | |
<keyword>\b[0-9]+<<</keyword> | |
</context> | |
<context id="here-doc"> | |
<start extended="true" dupnames="true"> | |
# (?<!<) and [^\s<] are for not matching | |
# here-word (<<<) | |
(?<!<) | |
<<-?\s*\\?( | |
\"(?P<HDB>[^\s<]+)\" | # "EOF" | |
\'(?P<HDB>[^\s<]+)\' | # 'EOF' | |
(?P<HDB>[^\s<]+) # EOF | |
)$ | |
</start> | |
<end>^\t*\%{HDB@start}$</end> | |
<include> | |
<context sub-pattern="0" where="start" style-ref="here-doc-bound"/> | |
<context sub-pattern="0" where="end" style-ref="here-doc-bound"/> | |
</include> | |
</context> | |
<context id="operator" style-ref="function"> | |
<keyword>\-a\b</keyword> | |
<keyword>\-b\b</keyword> | |
<keyword>\-c\b</keyword> | |
<keyword>\-d\b</keyword> | |
<keyword>\-e\b</keyword> | |
<keyword>\-f\b</keyword> | |
<keyword>\-g\b</keyword> | |
<keyword>\-h\b</keyword> | |
<keyword>\-k\b</keyword> | |
<keyword>\-p\b</keyword> | |
<keyword>\-r\b</keyword> | |
<keyword>\-s\b</keyword> | |
<keyword>\-t\b</keyword> | |
<keyword>\-u\b</keyword> | |
<keyword>\-w\b</keyword> | |
<keyword>\-x\b</keyword> | |
<keyword>\-O\b</keyword> | |
<keyword>\-G\b</keyword> | |
<keyword>\-L\b</keyword> | |
<keyword>\-S\b</keyword> | |
<keyword>\-N\b</keyword> | |
<keyword>\-nt\b</keyword> | |
<keyword>\-ot\b</keyword> | |
<keyword>\-ef\b</keyword> | |
<keyword>\-o\b</keyword> | |
<keyword>\-z\b</keyword> | |
<keyword>\-n\b</keyword> | |
<keyword><</keyword> | |
<keyword>></keyword> | |
<keyword>\!=</keyword> | |
<keyword>\-eq\b</keyword> | |
<keyword>\-ne\b</keyword> | |
<keyword>\-lt\b</keyword> | |
<keyword>\-le\b</keyword> | |
<keyword>\-gt\b</keyword> | |
<keyword>\-ge\b</keyword> | |
</context> | |
<context id="variable" style-ref="variable"> | |
<match>\$+[!@?*#\${a-zA-Z0-9_][}a-zA-Z0-9_]*</match> | |
</context> | |
<context id="variable-definition"> | |
<match>(^\s*|(?<=else)\s+)([a-zA-Z_][a-zA-Z0-9_]*)\=</match> | |
<include> | |
<context sub-pattern="2" style-ref="variable-definition"/> | |
</include> | |
</context> | |
<context id="built-in-command-1" style-ref="keyword"> | |
<prefix></prefix> | |
<suffix></suffix> | |
<keyword>\!</keyword> | |
<keyword>\{</keyword> | |
<keyword>\}</keyword> | |
<keyword>\:</keyword> | |
<keyword>(?<=\s)\.(?=\s)</keyword> | |
</context> | |
<context id="for-command"> | |
<start>\bfor\b</start> | |
<end>\b(in)\b</end> | |
<include> | |
<context sub-pattern="0" where="start" style-ref="keyword"/> | |
<context sub-pattern="0" where="end" style-ref="keyword"/> | |
<context style-ref="variable-definition" once-only="true"> | |
<match>\w+</match> | |
</context> | |
</include> | |
</context> | |
<context id="built-in-command-2" style-ref="keyword"> | |
<prefix>(?<![^\s;\(\)\`])</prefix> | |
<suffix>(?![^\s;\(\)\`])</suffix> | |
<keyword>alias</keyword> | |
<keyword>and</keyword> | |
<keyword>begin</keyword> | |
<keyword>bg</keyword> | |
<keyword>bind</keyword> | |
<keyword>block</keyword> | |
<keyword>break</keyword> | |
<keyword>breakpoint</keyword> | |
<keyword>builtin</keyword> | |
<keyword>case</keyword> | |
<keyword>cd</keyword> | |
<keyword>command</keyword> | |
<keyword>commandline</keyword> | |
<keyword>complete</keyword> | |
<keyword>contains</keyword> | |
<keyword>continue</keyword> | |
<keyword>count</keyword> | |
<keyword>dirh</keyword> | |
<keyword>dirs</keyword> | |
<keyword>echo</keyword> | |
<keyword>else</keyword> | |
<keyword>emit</keyword> | |
<keyword>end</keyword> | |
<keyword>eval</keyword> | |
<keyword>exec</keyword> | |
<keyword>exit</keyword> | |
<keyword>fg</keyword> | |
<keyword>fish</keyword> | |
<keyword>fish_config</keyword> | |
<keyword>fish_indent</keyword> | |
<keyword>fish_pager</keyword> | |
<keyword>fish_prompt</keyword> | |
<keyword>fish_right_prompt</keyword> | |
<keyword>fish_update_completions</keyword> | |
<keyword>fishd</keyword> | |
<keyword>for</keyword> | |
<keyword>funced</keyword> | |
<keyword>funcsave</keyword> | |
<keyword>function</keyword> | |
<keyword>functions</keyword> | |
<keyword>help</keyword> | |
<keyword>history</keyword> | |
<keyword>if</keyword> | |
<keyword>isatty</keyword> | |
<keyword>jobs</keyword> | |
<keyword>math</keyword> | |
<keyword>mimedb</keyword> | |
<keyword>nextd</keyword> | |
<keyword>not</keyword> | |
<keyword>open</keyword> | |
<keyword>or</keyword> | |
<keyword>popd</keyword> | |
<keyword>prevd</keyword> | |
<keyword>psub</keyword> | |
<keyword>pushd</keyword> | |
<keyword>pwd</keyword> | |
<keyword>random</keyword> | |
<keyword>read</keyword> | |
<keyword>return</keyword> | |
<keyword>set</keyword> | |
<keyword>set_color</keyword> | |
<keyword>source</keyword> | |
<keyword>status</keyword> | |
<keyword>switch</keyword> | |
<keyword>test</keyword> | |
<keyword>trap</keyword> | |
<keyword>type</keyword> | |
<keyword>ulimit</keyword> | |
<keyword>umask</keyword> | |
<keyword>vared</keyword> | |
<keyword>while</keyword> | |
</context> | |
<context id="built-in-command"> | |
<include> | |
<context ref="built-in-command-1"/> | |
<context ref="for-command"/> | |
<context ref="built-in-command-2"/> | |
</include> | |
</context> | |
<context id="common-command" style-ref="common-command"> | |
<prefix>(?<![\w\-\.])</prefix> | |
<suffix>(?![\w\-\.])</suffix> | |
<keyword>ar</keyword> | |
<keyword>awk</keyword> | |
<keyword>basename</keyword> | |
<keyword>bash</keyword> | |
<keyword>beep</keyword> | |
<keyword>bunzip2</keyword> | |
<keyword>bzcat</keyword> | |
<keyword>bzcmp</keyword> | |
<keyword>bzdiff</keyword> | |
<keyword>bzegrep</keyword> | |
<keyword>bzfgrep</keyword> | |
<keyword>bzgrep</keyword> | |
<keyword>bzip2recover</keyword> | |
<keyword>bzip2</keyword> | |
<keyword>bzless</keyword> | |
<keyword>bzmore</keyword> | |
<keyword>cc</keyword> | |
<keyword>cat</keyword> | |
<keyword>chattr</keyword> | |
<keyword>chgrp</keyword> | |
<keyword>chmod</keyword> | |
<keyword>chown</keyword> | |
<keyword>chroot</keyword> | |
<keyword>clear</keyword> | |
<keyword>cmp</keyword> | |
<keyword>cpp</keyword> | |
<keyword>cp</keyword> | |
<keyword>cut</keyword> | |
<keyword>date</keyword> | |
<keyword>dd</keyword> | |
<keyword>df</keyword> | |
<keyword>dialog</keyword> | |
<keyword>diff3</keyword> | |
<keyword>diff</keyword> | |
<keyword>dirname</keyword> | |
<keyword>dir</keyword> | |
<keyword>du</keyword> | |
<keyword>egrep</keyword> | |
<keyword>eject</keyword> | |
<keyword>env</keyword> | |
<keyword>expr</keyword> | |
<keyword>false</keyword> | |
<keyword>fgrep</keyword> | |
<keyword>file</keyword> | |
<keyword>find</keyword> | |
<keyword>fish</keyword> | |
<keyword>fmt</keyword> | |
<keyword>free</keyword> | |
<keyword>ftp</keyword> | |
<keyword>funzip</keyword> | |
<keyword>fuser</keyword> | |
<keyword>gawk</keyword> | |
<keyword>gcc</keyword> | |
<keyword>getent</keyword> | |
<keyword>getopt</keyword> | |
<keyword>grep</keyword> | |
<keyword>groups</keyword> | |
<keyword>gunzip</keyword> | |
<keyword>gzip</keyword> | |
<keyword>head</keyword> | |
<keyword>hostname</keyword> | |
<keyword>id</keyword> | |
<keyword>ifconfig</keyword> | |
<keyword>info</keyword> | |
<keyword>insmod</keyword> | |
<keyword>install</keyword> | |
<keyword>join</keyword> | |
<keyword>killall</keyword> | |
<keyword>kill</keyword> | |
<keyword>lastb</keyword> | |
<keyword>last</keyword> | |
<keyword>ld</keyword> | |
<keyword>less</keyword> | |
<keyword>ln</keyword> | |
<keyword>locate</keyword> | |
<keyword>lockfile</keyword> | |
<keyword>login</keyword> | |
<keyword>logname</keyword> | |
<keyword>lp</keyword> | |
<keyword>lpr</keyword> | |
<keyword>lsattr</keyword> | |
<keyword>ls</keyword> | |
<keyword>lsmod</keyword> | |
<keyword>make</keyword> | |
<keyword>man</keyword> | |
<keyword>mkdir</keyword> | |
<keyword>mkfifo</keyword> | |
<keyword>mknod</keyword> | |
<keyword>mktemp</keyword> | |
<keyword>modprobe</keyword> | |
<keyword>more</keyword> | |
<keyword>mount</keyword> | |
<keyword>mv</keyword> | |
<keyword>namei</keyword> | |
<keyword>nawk</keyword> | |
<keyword>nice</keyword> | |
<keyword>nl</keyword> | |
<keyword>pass</keyword> | |
<keyword>passwd</keyword> | |
<keyword>patch</keyword> | |
<keyword>perl</keyword> | |
<keyword>pgawk</keyword> | |
<keyword>pidof</keyword> | |
<keyword>ping</keyword> | |
<keyword>pkg-config</keyword> | |
<keyword>pr</keyword> | |
<keyword>ps</keyword> | |
<keyword>pwd</keyword> | |
<keyword>readlink</keyword> | |
<keyword>renice</keyword> | |
<keyword>rmdir</keyword> | |
<keyword>rm</keyword> | |
<keyword>scp</keyword> | |
<keyword>sed</keyword> | |
<keyword>seq</keyword> | |
<keyword>sh</keyword> | |
<keyword>sleep</keyword> | |
<keyword>sort</keyword> | |
<keyword>split</keyword> | |
<keyword>ssh-add</keyword> | |
<keyword>ssh-agent</keyword> | |
<keyword>ssh-keygen</keyword> | |
<keyword>ssh-keyscan</keyword> | |
<keyword>ssh</keyword> | |
<keyword>stat</keyword> | |
<keyword>sudo</keyword> | |
<keyword>sum</keyword> | |
<keyword>su</keyword> | |
<keyword>sync</keyword> | |
<keyword>tac</keyword> | |
<keyword>tail</keyword> | |
<keyword>tar</keyword> | |
<keyword>tee</keyword> | |
<keyword>tempfile</keyword> | |
<keyword>touch</keyword> | |
<keyword>true</keyword> | |
<keyword>tr</keyword> | |
<keyword>umount</keyword> | |
<keyword>uname</keyword> | |
<keyword>uniq</keyword> | |
<keyword>unlink</keyword> | |
<keyword>unzip</keyword> | |
<keyword>uptime</keyword> | |
<keyword>wall</keyword> | |
<keyword>wc</keyword> | |
<keyword>wget</keyword> | |
<keyword>whereis</keyword> | |
<keyword>which</keyword> | |
<keyword>whoami</keyword> | |
<keyword>who</keyword> | |
<keyword>write</keyword> | |
<keyword>w</keyword> | |
<keyword>xargs</keyword> | |
<keyword>xdialog</keyword> | |
<keyword>zcat</keyword> | |
<keyword>zcmp</keyword> | |
<keyword>zdiff</keyword> | |
<keyword>zegrep</keyword> | |
<keyword>zenity</keyword> | |
<keyword>zfgrep</keyword> | |
<keyword>zforce</keyword> | |
<keyword>zgrep</keyword> | |
<keyword>zip</keyword> | |
<keyword>zless</keyword> | |
<keyword>zmore</keyword> | |
<keyword>znew</keyword> | |
</context> | |
<context id="case"> | |
<start>\bcase\b</start> | |
<end>\bend\b</end> | |
<include> | |
<context sub-pattern="0" where="start" style-ref="keyword"/> | |
<context sub-pattern="0" where="end" style-ref="keyword"/> | |
<context ref="double-quoted-string"/> | |
<context ref="single-quoted-string"/> | |
<context style-ref="others"> | |
<match>[^\)\s]+\s*\)|;;</match> | |
</context> | |
<context ref="fish"/> | |
</include> | |
</context> | |
<context id="fish" class="no-spell-check"> | |
<include> | |
<context ref="def:shebang"/> | |
<context ref="line-comment"/> | |
<context ref="def:escape"/> | |
<context ref="single-quoted-string"/> | |
<context ref="double-quoted-string"/> | |
<context ref="subshell"/> | |
<context ref="case"/> | |
<context ref="punctuator"/> | |
<context ref="function"/> | |
<context ref="here-doc"/> | |
<context ref="redirection"/> | |
<context ref="operator"/> | |
<context ref="variable"/> | |
<context ref="variable-definition"/> | |
<context ref="built-in-command"/> | |
<context ref="common-command"/> | |
</include> | |
</context> | |
</definitions> | |
</language> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Syntax highlighting for Fish shell scripts | |
## | |
## File based about the file "sh.nanorc" | |
## Author: Nicola Jelmorini <jelmorini@protonmail.ch> | |
## Copyright (C) 2014 Nicola Jelmorini <jelmorini@protonmail.ch> | |
## | |
## This file is free software; you can redistribute it and/or | |
## modify it under the terms of the GNU Lesser General Public | |
## License as published by the Free Software Foundation; either | |
## version 2.1 of the License, or (at your option) any later version. | |
## | |
## You should have received a copy of the GNU Lesser General Public | |
## License along with this file; if not, write to the Free Software | |
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
## or visit this link <http://www.gnu.org/licenses/>. | |
## | |
## available colors: (bright) white, black, red, blue, green, yellow, magenta, cyan | |
## | |
syntax "fish" "\.fish$" | |
header "^#!.*/(ba|k|pdk)?fish[-0-9_]*" | |
icolor brightgreen "^[0-9A-Z_]+\(\)" | |
color brightblue "\<(begin|case|else|end|for|function|if|return|switch|test|while)\>" | |
color blue "\<(alias|and|bg|bind|block|break|breakpoint|builtin|cd|command|commandline|complete|contains|continue|count|dirh|dirs|echo|emit|eval|exec|exit|false|fg|fish|fish_config|fish_indent|fish_pager|fish_prompt|fish_right_prompt|fish_update_completions|fishd|funced|funcsave|functions|help|history|isatty|jobs|math|mimedb|nextd|not|open|or|popd|prevd|psub|pushd|pwd|random|read|set|set_color|source|status|trap|true|type|ulimit|umask|vared)\>" | |
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" | |
color green "-[Ldefgruwx]\>" | |
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>" | |
color brightgreen "\<(apt-get|ar|awk|basename|bash|beep|bunzip2|bzcat|bzcmp|bzdiff|bzegrep|bzfgrep|bzgrep|bzip2recover|bzip2|bzless|bzmore|cc|cat|chattr|chgrp|chmod|chown|chroot|clear|cmp|cpp|cp|cut|date|dd|df|dialog|diff3|diff|dirname|dir|dpkg|du|egrep|eject|env|expr|fgrep|file|find|fish|fmt|free|ftp|funzip|fuser|gawk|gcc|getent|getopt|grep|groups|gunzip|gzip|head|hostname|id|ifconfig|info|insmod|install|join|killall|kill|lastb|last|ld|less|ln|locate|lockfile|login|logname|lp|lpr|lsattr|ls|lsmod|make|man|mkdir|mkfifo|mknod|mktemp|modprobe|more|mount|mv|namei|nawk|nice|nl|pass|passwd|patch|perl|pgawk|pidof|ping|pkg-config|pr|ps|pwd|readlink|renice|rmdir|rm|scp|sed|seq|sh|sleep|sort|split|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|ssh|stat|sudo|sum|su|sync|tac|tail|tar|tee|tempfile|touch|tr|umount|uname|uniq|unlink|unzip|uptime|wall|wc|wget|whereis|which|whiptail|whoami|who|write|w|xargs|xdialog|zcat|zcmp|zdiff|zegrep|zenity|zfgrep|zforce|zgrep|zip|zless|zmore|znew)\>" | |
icolor brightmagenta "\$\{?[0-9A-Z_!@#$*?-]+\}?" | |
color cyan "(^|[[:space:]])#.*$" | |
color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'" | |
color green "[[:space:]]+$" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment