[gtksourceview] fish.lang by Nicola Jelmorini (@VosaXalo)
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] fish.lang by Nicola Jelmorini (@VosaXalo)
- Date: Wed, 5 Sep 2018 22:50:48 +0000 (UTC)
commit 57ceb9baa6c3c01b7ebee4acffc0e44053cddc60
Author: Nicola Jelmorini <jelmorini linux com>
Date: Mon Nov 17 08:18:04 2014 -0800
fish.lang by Nicola Jelmorini (@VosaXalo)
See https://github.com/fish-shell/fish-shell/issues/1812
data/language-specs/fish.lang | 487 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 487 insertions(+)
---
diff --git a/data/language-specs/fish.lang b/data/language-specs/fish.lang
new file mode 100644
index 00000000..4859e201
--- /dev/null
+++ b/data/language-specs/fish.lang
@@ -0,0 +1,487 @@
+<?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>
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]