2006-08-26 02:46:29 -07:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2007-06-17 22:03:03 -07:00
|
|
|
<!--
|
|
|
|
|
|
|
|
Author: Silian Della Ragione <silian87@gechi.it>
|
|
|
|
Copyright (C) 2005 Silian Della Ragione <silian87@gechi.it>
|
|
|
|
|
2007-06-20 21:37:33 -07:00
|
|
|
This library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2 of the License, or (at your option) any later version.
|
2007-06-17 22:03:03 -07:00
|
|
|
|
2007-06-20 21:37:33 -07:00
|
|
|
This library is distributed in the hope that it will be useful,
|
2007-06-17 22:03:03 -07:00
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2007-06-20 21:37:33 -07:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
2007-06-17 22:03:03 -07:00
|
|
|
|
2007-06-20 21:37:33 -07:00
|
|
|
You should have received a copy of the GNU Library General Public
|
|
|
|
License along with this library; if not, write to the
|
|
|
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
Boston, MA 02111-1307, USA.
|
2007-06-17 22:03:03 -07:00
|
|
|
|
|
|
|
-->
|
2006-11-01 22:43:24 -08:00
|
|
|
<language id="sh" _name="sh" version="2.0" _section="Scripts">
|
2006-10-01 23:15:27 -07:00
|
|
|
<metadata>
|
|
|
|
<property name="mimetypes">text/x-shellscript;application/x-shellscript;text/x-sh</property>
|
2006-11-06 06:38:11 -08:00
|
|
|
<property name="globs">*.sh</property>
|
2006-12-03 00:22:08 -08:00
|
|
|
<property name="line-comment-start">#</property>
|
2006-10-01 23:15:27 -07:00
|
|
|
</metadata>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-08-30 22:34:59 -07:00
|
|
|
<styles>
|
2007-09-09 12:21:19 -07:00
|
|
|
<style id="comment" _name="Comment" map-to="def:comment"/>
|
|
|
|
<style id="shebang" _name="Shebang" map-to="def:shebang"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<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"/>
|
2007-09-09 12:21:19 -07:00
|
|
|
<style id="variable1" name="Variable 1" map-to="def:type"/> <!-- FIXME: need to sort out proper styles for variables -->
|
|
|
|
<style id="variable2" name="Variable 2" map-to="def:type"/>
|
2006-12-23 22:57:46 -08:00
|
|
|
<style id="others" name="Others" map-to="def:keyword"/>
|
2006-12-20 23:20:36 -08:00
|
|
|
<style id="common-command" name="Common Commands" map-to="def:keyword"/>
|
|
|
|
<style id="here-doc-bound" name="here-doc" map-to="def:keyword"/>
|
2006-08-30 22:34:59 -07:00
|
|
|
</styles>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-08-30 22:34:59 -07:00
|
|
|
<definitions>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
|
|
|
<!-- we cannot use def:shell-like-comment, because
|
|
|
|
m4.lang needs to replace this context -->
|
|
|
|
<context id="line-comment" style-ref="comment" end-at-line-end="true">
|
2007-11-26 00:57:25 -08:00
|
|
|
<start>(?<!\S)#</start>
|
2007-09-09 12:21:19 -07:00
|
|
|
<include>
|
|
|
|
<context ref="def:in-comment"/>
|
|
|
|
</include>
|
|
|
|
</context>
|
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<context id="string" style-ref="string">
|
|
|
|
<start>"</start>
|
|
|
|
<end>"</end>
|
2006-08-30 22:34:59 -07:00
|
|
|
<include>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="def:escape"/>
|
|
|
|
<context ref="def:line-continue"/>
|
2006-08-30 22:34:59 -07:00
|
|
|
</include>
|
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<context id="string-2" style-ref="string">
|
|
|
|
<start>'</start>
|
|
|
|
<end>'</end>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2007-06-27 22:54:46 -07:00
|
|
|
<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="sh"/>
|
|
|
|
</include>
|
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2007-01-04 06:53:50 -08:00
|
|
|
<context id="backtick-string" style-ref="function">
|
2006-08-30 22:34:59 -07:00
|
|
|
<start>`</start>
|
|
|
|
<end>`</end>
|
|
|
|
<include>
|
2006-10-19 07:20:39 -07:00
|
|
|
<context ref="def:escape"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="def:line-continue"/>
|
2006-08-30 22:34:59 -07:00
|
|
|
</include>
|
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<context id="punctuator" style-ref="others">
|
2006-12-23 22:57:46 -08:00
|
|
|
<match>[;\|&/]</match>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<context id="function" style-ref="function">
|
|
|
|
<match>\b[a-zA-Z_][a-zA-Z0-9_]+[ \t]*\(\)</match>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<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>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2007-02-15 05:31:11 -08:00
|
|
|
<context id="here-doc">
|
|
|
|
<start extended="true" dupnames="true">
|
|
|
|
<<-?\s*\\?(
|
|
|
|
\"(?P<HDB>\S+)\" | # "EOF"
|
|
|
|
\'(?P<HDB>\S+)\' | # 'EOF'
|
|
|
|
(?P<HDB>\S+) # EOF
|
|
|
|
)$
|
|
|
|
</start>
|
|
|
|
<end>^\t*\%{HDB@start}$</end>
|
2007-01-02 03:05:52 -08:00
|
|
|
<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>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-11-01 22:43:24 -08:00
|
|
|
<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>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-20 23:20:36 -08:00
|
|
|
<context id="variable1" style-ref="variable1">
|
2007-05-06 06:01:49 -07:00
|
|
|
<match>\$+[@?*#\${a-zA-Z0-9_][}a-zA-Z0-9_]*</match>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-20 23:20:36 -08:00
|
|
|
<context id="variable2" style-ref="variable2">
|
|
|
|
<match>[a-zA-Z_][a-zA-Z0-9_]*\=</match>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-23 22:57:46 -08:00
|
|
|
<context id="built-in-command-1" style-ref="keyword">
|
2006-12-20 23:20:36 -08:00
|
|
|
<prefix></prefix>
|
|
|
|
<suffix></suffix>
|
2006-11-01 22:43:24 -08:00
|
|
|
<keyword>\!</keyword>
|
|
|
|
<keyword>\{</keyword>
|
|
|
|
<keyword>\}</keyword>
|
|
|
|
<keyword>\:</keyword>
|
2006-12-20 23:20:36 -08:00
|
|
|
<keyword>(?<=\s)\.(?=\s)</keyword>
|
2006-12-23 22:57:46 -08:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-23 22:57:46 -08:00
|
|
|
<context id="built-in-command-2" style-ref="keyword">
|
|
|
|
<keyword>do</keyword>
|
|
|
|
<keyword>done</keyword>
|
|
|
|
<keyword>elif</keyword>
|
|
|
|
<keyword>else</keyword>
|
|
|
|
<keyword>else</keyword>
|
|
|
|
<keyword>fi</keyword>
|
|
|
|
<keyword>for</keyword>
|
|
|
|
<keyword>function</keyword>
|
|
|
|
<keyword>if</keyword>
|
|
|
|
<keyword>in</keyword>
|
|
|
|
<keyword>select</keyword>
|
|
|
|
<keyword>then</keyword>
|
|
|
|
<keyword>until</keyword>
|
|
|
|
<keyword>while</keyword>
|
|
|
|
<keyword>bash</keyword>
|
|
|
|
<keyword>alias</keyword>
|
|
|
|
<keyword>bg</keyword>
|
|
|
|
<keyword>bind</keyword>
|
|
|
|
<keyword>break</keyword>
|
|
|
|
<keyword>builtin</keyword>
|
|
|
|
<keyword>cd</keyword>
|
|
|
|
<keyword>command</keyword>
|
|
|
|
<keyword>compgen</keyword>
|
|
|
|
<keyword>complete</keyword>
|
|
|
|
<keyword>continue</keyword>
|
|
|
|
<keyword>declare</keyword>
|
|
|
|
<keyword>dirs</keyword>
|
|
|
|
<keyword>disown</keyword>
|
|
|
|
<keyword>echo</keyword>
|
|
|
|
<keyword>enable</keyword>
|
|
|
|
<keyword>eval</keyword>
|
|
|
|
<keyword>exec</keyword>
|
|
|
|
<keyword>exit</keyword>
|
|
|
|
<keyword>export</keyword>
|
|
|
|
<keyword>fc</keyword>
|
|
|
|
<keyword>fg</keyword>
|
|
|
|
<keyword>getopts</keyword>
|
|
|
|
<keyword>hash</keyword>
|
|
|
|
<keyword>help</keyword>
|
|
|
|
<keyword>history</keyword>
|
|
|
|
<keyword>jobs</keyword>
|
|
|
|
<keyword>kill</keyword>
|
|
|
|
<keyword>let</keyword>
|
|
|
|
<keyword>local</keyword>
|
|
|
|
<keyword>logout</keyword>
|
|
|
|
<keyword>podp</keyword>
|
|
|
|
<keyword>printf</keyword>
|
|
|
|
<keyword>pushd</keyword>
|
|
|
|
<keyword>pwd</keyword>
|
|
|
|
<keyword>read</keyword>
|
|
|
|
<keyword>readonly</keyword>
|
|
|
|
<keyword>return</keyword>
|
|
|
|
<keyword>set</keyword>
|
|
|
|
<keyword>shift</keyword>
|
|
|
|
<keyword>shopt</keyword>
|
|
|
|
<keyword>source</keyword>
|
|
|
|
<keyword>suspend</keyword>
|
|
|
|
<keyword>test</keyword>
|
|
|
|
<keyword>times</keyword>
|
|
|
|
<keyword>trap</keyword>
|
|
|
|
<keyword>type</keyword>
|
|
|
|
<keyword>typeset</keyword>
|
|
|
|
<keyword>ulimit</keyword>
|
|
|
|
<keyword>umask</keyword>
|
|
|
|
<keyword>unalias</keyword>
|
|
|
|
<keyword>unset</keyword>
|
|
|
|
<keyword>wait</keyword>
|
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-23 22:57:46 -08:00
|
|
|
<context id="built-in-command">
|
|
|
|
<include>
|
|
|
|
<context ref="built-in-command-1"/>
|
|
|
|
<context ref="built-in-command-2"/>
|
|
|
|
</include>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-20 23:20:36 -08:00
|
|
|
<context id="common-command" style-ref="common-command">
|
|
|
|
<prefix>(?<![\w\-\.])</prefix>
|
|
|
|
<suffix>(?![\w\-\.])</suffix>
|
2006-11-01 22:43:24 -08:00
|
|
|
<keyword>cp</keyword>
|
|
|
|
<keyword>rm</keyword>
|
|
|
|
<keyword>mv</keyword>
|
|
|
|
<keyword>which</keyword>
|
|
|
|
<keyword>cat</keyword>
|
|
|
|
<keyword>grep</keyword>
|
|
|
|
<keyword>sed</keyword>
|
|
|
|
<keyword>awk</keyword>
|
|
|
|
<keyword>mkdir</keyword>
|
|
|
|
<keyword>rmdir</keyword>
|
|
|
|
<keyword>ls</keyword>
|
|
|
|
<keyword>ps</keyword>
|
|
|
|
<keyword>killall</keyword>
|
|
|
|
<keyword>pidof</keyword>
|
|
|
|
<keyword>diff</keyword>
|
|
|
|
<keyword>head</keyword>
|
|
|
|
<keyword>tail</keyword>
|
|
|
|
<keyword>chown</keyword>
|
|
|
|
<keyword>chmod</keyword>
|
|
|
|
<keyword>dd</keyword>
|
|
|
|
<keyword>find</keyword>
|
|
|
|
<keyword>locate</keyword>
|
|
|
|
<keyword>tar</keyword>
|
|
|
|
<keyword>gunzip</keyword>
|
|
|
|
<keyword>gzip</keyword>
|
|
|
|
<keyword>bunzip2</keyword>
|
|
|
|
<keyword>bzip2</keyword>
|
|
|
|
<keyword>zip</keyword>
|
|
|
|
<keyword>unzip</keyword>
|
|
|
|
<keyword>mount</keyword>
|
|
|
|
<keyword>umount</keyword>
|
|
|
|
<keyword>sh</keyword>
|
|
|
|
<keyword>clear</keyword>
|
|
|
|
<keyword>wget</keyword>
|
|
|
|
<keyword>date</keyword>
|
|
|
|
<keyword>dir</keyword>
|
|
|
|
<keyword>du</keyword>
|
|
|
|
<keyword>expr</keyword>
|
|
|
|
<keyword>su</keyword>
|
|
|
|
<keyword>passwd</keyword>
|
|
|
|
<keyword>man</keyword>
|
|
|
|
<keyword>info</keyword>
|
|
|
|
<keyword>id</keyword>
|
|
|
|
<keyword>ifconfig</keyword>
|
|
|
|
<keyword>gcc</keyword>
|
|
|
|
<keyword>make</keyword>
|
|
|
|
<keyword>ld</keyword>
|
|
|
|
<keyword>ln</keyword>
|
|
|
|
<keyword>lsmod</keyword>
|
|
|
|
<keyword>insmod</keyword>
|
|
|
|
<keyword>modprobe</keyword>
|
|
|
|
<keyword>less</keyword>
|
|
|
|
<keyword>more</keyword>
|
|
|
|
<keyword>patch</keyword>
|
|
|
|
<keyword>ping</keyword>
|
|
|
|
<keyword>pkg-config</keyword>
|
|
|
|
<keyword>nice</keyword>
|
|
|
|
<keyword>renice</keyword>
|
|
|
|
<keyword>file</keyword>
|
|
|
|
<keyword>sudo</keyword>
|
|
|
|
<keyword>beep</keyword>
|
|
|
|
<keyword>tempfile</keyword>
|
|
|
|
<keyword>touch</keyword>
|
|
|
|
<keyword>eject</keyword>
|
|
|
|
<keyword>uname</keyword>
|
|
|
|
<keyword>uptime</keyword>
|
|
|
|
<keyword>whoami</keyword>
|
|
|
|
<keyword>who</keyword>
|
|
|
|
<keyword>whereis</keyword>
|
|
|
|
<keyword>sleep</keyword>
|
|
|
|
<keyword>dialog</keyword>
|
|
|
|
<keyword>xdialog</keyword>
|
|
|
|
<keyword>zenity</keyword>
|
2007-11-15 20:49:52 -08:00
|
|
|
<keyword>sort</keyword>
|
|
|
|
<keyword>uniq</keyword>
|
2006-11-01 22:43:24 -08:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-12-23 22:57:46 -08:00
|
|
|
<context id="case">
|
|
|
|
<start>\bcase\b</start>
|
|
|
|
<end>\besac\b</end>
|
|
|
|
<include>
|
|
|
|
<context sub-pattern="0" where="start" style-ref="keyword"/>
|
|
|
|
<context sub-pattern="0" where="end" style-ref="keyword"/>
|
2007-09-17 23:17:18 -07:00
|
|
|
<context ref="string"/>
|
|
|
|
<context ref="string-2"/>
|
2006-12-23 22:57:46 -08:00
|
|
|
<context style-ref="others">
|
2007-06-27 22:54:46 -07:00
|
|
|
<match>[^\)\s]+\s*\)|;;</match>
|
2006-12-23 22:57:46 -08:00
|
|
|
</context>
|
|
|
|
<context ref="sh"/>
|
|
|
|
</include>
|
2006-08-30 22:34:59 -07:00
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-08-30 22:34:59 -07:00
|
|
|
<context id="sh">
|
|
|
|
<include>
|
2007-09-09 12:21:19 -07:00
|
|
|
<context ref="def:shebang" style-ref="shebang"/>
|
|
|
|
<context ref="line-comment"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="def:escape"/>
|
|
|
|
<context ref="string"/>
|
|
|
|
<context ref="string-2"/>
|
2007-06-27 22:54:46 -07:00
|
|
|
<context ref="subshell"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="backtick-string"/>
|
2006-12-23 22:57:46 -08:00
|
|
|
<context ref="case"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="punctuator"/>
|
|
|
|
<context ref="function"/>
|
2006-12-20 23:20:36 -08:00
|
|
|
<context ref="here-doc"/>
|
2006-11-01 22:43:24 -08:00
|
|
|
<context ref="redirection"/>
|
|
|
|
<context ref="operator"/>
|
|
|
|
<context ref="variable1"/>
|
|
|
|
<context ref="variable2"/>
|
|
|
|
<context ref="built-in-command"/>
|
|
|
|
<context ref="common-command"/>
|
2006-08-30 22:34:59 -07:00
|
|
|
</include>
|
|
|
|
</context>
|
2007-09-09 12:21:19 -07:00
|
|
|
|
2006-08-30 22:34:59 -07:00
|
|
|
</definitions>
|
2006-08-26 02:46:29 -07:00
|
|
|
</language>
|