Parsing of definitions metadata for mime type registering is now in a separate thread (QtConcurrent). Also some clean up.

This commit is contained in:
Leandro Melo
2010-05-11 14:53:24 +02:00
parent 67917cd9a1
commit e5401e941c
26 changed files with 90 additions and 11894 deletions

View File

@@ -0,0 +1,3 @@
Place syntax definitions files inside this directory.
Files can be downloaded at http://kate-editor.org/downloads/syntax_highlighting?kateversion=3.2
Instructions on how to write your own definitions can be found at http://kate-editor.org/article/writing_a_kate_highlighting_xml_file

View File

@@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
This file is part of KDE's kate project.
copyright : (C) 2004 by Dominik Haumann
email : dhdev at gmx dot de
**********************************************************************
* 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. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Library General Public License for more details. *
* *
* 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., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
**********************************************************************
This file is included in every file that highlights the "alerts" keywords.
That's why extensions and mimetype are empty.
-->
<language version="1.08" kateversion="2.3" name="Alerts" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhdev@gmx.de)" license="LGPL" hidden="true">
<highlighting>
<list name="alerts">
<item> ### </item>
<item> ALERT </item>
<item> BUG </item>
<item> DANGER </item>
<item> DEPRECATED </item>
<item> FIXME </item>
<item> HACK </item>
<item> NOTE </item>
<item> NOTICE </item>
<item> SECURITY </item>
<item> TASK </item>
<item> TEST </item>
<item> TESTING </item>
<item> TODO </item>
<item> WARNING </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
<keyword attribute="Alert" context="#stay" String="alerts" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Alert" defStyleNum="dsAlert"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="1"/>
</general>
</language>

View File

@@ -1,901 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
<!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">
<!ENTITY word "[^|&amp;;()&lt;&gt;\s]+"> <!-- see man bash -->
<!ENTITY eos "(?=($|\s))"> <!-- eol or space following -->
<!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
<!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
]>
<language name="Bash" version="2.12" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
<!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
Changes by Sebastian Pipping (webmaster@hartwork.org)
Released under the LGPL, part of kdelibs/kate -->
<highlighting>
<list name="keywords">
<item> else </item>
<item> for </item>
<item> function </item>
<item> in </item>
<item> select </item>
<item> until </item>
<item> while </item>
<item> elif </item>
<item> then </item>
<item> set </item>
</list>
<list name="builtins">
<item> : </item>
<item> source </item>
<item> alias </item>
<item> bg </item>
<item> bind </item>
<item> break </item>
<item> builtin </item>
<item> cd </item>
<item> caller </item>
<item> command </item>
<item> compgen </item>
<item> complete </item>
<item> continue </item>
<item> dirs </item>
<item> disown </item>
<item> echo </item>
<item> enable </item>
<item> eval </item>
<item> exec </item>
<item> exit </item>
<item> fc </item>
<item> fg </item>
<item> getopts </item>
<item> hash </item>
<item> help </item>
<item> history </item>
<item> jobs </item>
<item> kill </item>
<item> let </item>
<item> logout </item>
<item> popd </item>
<item> printf </item>
<item> pushd </item>
<item> pwd </item>
<item> return </item>
<item> set </item>
<item> shift </item>
<item> shopt </item>
<item> suspend </item>
<item> test </item>
<item> time </item>
<item> times </item>
<item> trap </item>
<item> type </item>
<item> ulimit </item>
<item> umask </item>
<item> unalias </item>
<item> wait </item>
</list>
<list name="builtins_var">
<item> export </item>
<item> unset </item>
<item> declare </item>
<item> typeset </item>
<item> local </item>
<item> read </item>
<item> readonly </item>
</list>
<list name="unixcommands">
<!-- /bin -->
<item> arch </item>
<item> awk </item>
<item> bash </item>
<item> bunzip2 </item>
<item> bzcat </item>
<item> bzcmp </item>
<item> bzdiff </item>
<item> bzegrep </item>
<item> bzfgrep </item>
<item> bzgrep </item>
<item> bzip2 </item>
<item> bzip2recover </item>
<item> bzless </item>
<item> bzmore </item>
<item> cat </item>
<item> chattr </item>
<item> chgrp </item>
<item> chmod </item>
<item> chown </item>
<item> chvt </item>
<item> cp </item>
<item> date </item>
<item> dd </item>
<item> deallocvt </item>
<item> df </item>
<item> dir </item>
<item> dircolors </item>
<item> dmesg </item>
<item> dnsdomainname </item>
<item> domainname </item>
<item> du </item>
<item> dumpkeys </item>
<item> echo </item>
<item> ed </item>
<item> egrep </item>
<item> false </item>
<item> fgconsole </item>
<item> fgrep </item>
<item> fuser </item>
<item> gawk </item>
<item> getkeycodes </item>
<item> gocr </item>
<item> grep </item>
<item> groff </item>
<item> groups </item>
<item> gunzip </item>
<item> gzexe </item>
<item> gzip </item>
<item> hostname </item>
<item> igawk </item>
<item> install </item>
<item> kbd_mode </item>
<item> kbdrate </item>
<item> killall </item>
<item> last </item>
<item> lastb </item>
<item> link </item>
<item> ln </item>
<item> loadkeys </item>
<item> loadunimap </item>
<item> login </item>
<item> ls </item>
<item> lsattr </item>
<item> lsmod </item>
<item> lsmod.old </item>
<item> lzcat </item>
<item> lzcmp </item>
<item> lzdiff </item>
<item> lzegrep </item>
<item> lzfgrep </item>
<item> lzgrep </item>
<item> lzless </item>
<item> lzcat </item>
<item> lzma </item>
<item> lzmainfo </item>
<item> lzmore </item>
<item> mapscrn </item>
<item> mesg </item>
<item> mkdir </item>
<item> mkfifo </item>
<item> mknod </item>
<item> mktemp </item>
<item> more </item>
<item> mount </item>
<item> mv </item>
<item> nano </item>
<item> netstat </item>
<item> nisdomainname </item>
<item> nroff </item>
<item> openvt </item>
<item> pgawk </item>
<item> pidof </item>
<item> ping </item>
<item> ps </item>
<item> pstree </item>
<item> pwd </item>
<item> rbash </item>
<item> readlink </item>
<item> red </item>
<item> resizecons </item>
<item> rm </item>
<item> rmdir </item>
<item> run-parts </item>
<item> sash </item>
<item> sed </item>
<item> setfont </item>
<item> setkeycodes </item>
<item> setleds </item>
<item> setmetamode </item>
<item> setserial </item>
<item> sh </item>
<item> showkey </item>
<item> shred </item>
<item> sleep </item>
<item> ssed </item>
<item> stat </item>
<item> stty </item>
<item> su </item>
<item> sync </item>
<item> tar </item>
<item> tempfile </item>
<item> touch </item>
<item> troff </item>
<item> true </item>
<item> umount </item>
<item> uname </item>
<item> unicode_start </item>
<item> unicode_stop </item>
<item> unlink </item>
<item> unlzma </item>
<item> unxz </item>
<item> utmpdump </item>
<item> uuidgen </item>
<item> vdir </item>
<item> wall </item>
<item> wc </item>
<item> xz </item>
<item> xzcat </item>
<item> ypdomainname </item>
<item> zcat </item>
<item> zcmp </item>
<item> zdiff </item>
<item> zegrep </item>
<item> zfgrep </item>
<item> zforce </item>
<item> zgrep </item>
<item> zless </item>
<item> zmore </item>
<item> znew </item>
<item> zsh </item>
<!-- some from /usr/bin -->
<item> aclocal </item>
<item> aconnect </item>
<item> aplay </item>
<item> apm </item>
<item> apmsleep </item>
<item> apropos </item>
<item> ar </item>
<item> arecord </item>
<item> as </item>
<item> as86 </item>
<item> autoconf </item>
<item> autoheader </item>
<item> automake </item>
<item> awk </item>
<item> basename </item>
<item> bc </item>
<item> bison </item>
<item> c++ </item>
<item> cal </item>
<item> cat </item>
<item> cc </item>
<item> cdda2wav </item>
<item> cdparanoia </item>
<item> cdrdao </item>
<item> cd-read </item>
<item> cdrecord </item>
<item> chfn </item>
<item> chgrp </item>
<item> chmod </item>
<item> chown </item>
<item> chroot </item>
<item> chsh </item>
<item> clear </item>
<item> cmp </item>
<item> co </item>
<item> col </item>
<item> comm </item>
<item> cp </item>
<item> cpio </item>
<item> cpp </item>
<item> cut </item>
<item> dc </item>
<item> dd </item>
<item> df </item>
<item> diff </item>
<item> diff3 </item>
<item> dir </item>
<item> dircolors </item>
<item> directomatic </item>
<item> dirname </item>
<item> du </item>
<item> env </item>
<item> expr </item>
<item> fbset </item>
<item> file </item>
<item> find </item>
<item> flex </item>
<item> flex++ </item>
<item> fmt </item>
<item> free </item>
<item> ftp </item>
<item> funzip </item>
<item> fuser </item>
<item> g++ </item>
<item> gawk </item>
<item> gc </item>
<item> gcc </item>
<item> gdb </item>
<item> getent </item>
<item> getopt </item>
<item> gettext </item>
<item> gettextize </item>
<item> gimp </item>
<item> gimp-remote </item>
<item> gimptool </item>
<item> gmake </item>
<item> gs </item>
<item> head </item>
<item> hexdump </item>
<item> id </item>
<item> install </item>
<item> join </item>
<item> kill </item>
<item> killall </item>
<item> ld </item>
<item> ld86 </item>
<item> ldd </item>
<item> less </item>
<item> lex </item>
<item> ln </item>
<item> locate </item>
<item> lockfile </item>
<item> logname </item>
<item> lp </item>
<item> lpr </item>
<item> ls </item>
<item> lynx </item>
<item> m4 </item>
<item> make </item>
<item> man </item>
<item> mkdir </item>
<item> mknod </item>
<item> msgfmt </item>
<item> mv </item>
<item> namei </item>
<item> nasm </item>
<item> nawk </item>
<item> nice </item>
<item> nl </item>
<item> nm </item>
<item> nm86 </item>
<item> nmap </item>
<item> nohup </item>
<item> nop </item>
<item> od </item>
<item> passwd </item>
<item> patch </item>
<item> pcregrep </item>
<item> pcretest </item>
<item> perl </item>
<item> perror </item>
<item> pidof </item>
<item> pr </item>
<item> printf </item>
<item> procmail </item>
<item> prune </item>
<item> ps2ascii </item>
<item> ps2epsi </item>
<item> ps2frag </item>
<item> ps2pdf </item>
<item> ps2ps </item>
<item> psbook </item>
<item> psmerge </item>
<item> psnup </item>
<item> psresize </item>
<item> psselect </item>
<item> pstops </item>
<item> rcs </item>
<item> rev </item>
<item> rm </item>
<item> scp </item>
<item> sed </item>
<item> seq </item>
<item> setterm </item>
<item> shred </item>
<item> size </item>
<item> size86 </item>
<item> skill </item>
<item> slogin </item>
<item> snice </item>
<item> sort </item>
<item> sox </item>
<item> split </item>
<item> ssh </item>
<item> ssh-add </item>
<item> ssh-agent </item>
<item> ssh-keygen </item>
<item> ssh-keyscan </item>
<item> stat </item>
<item> strings </item>
<item> strip </item>
<item> sudo </item>
<item> suidperl </item>
<item> sum </item>
<item> tac </item>
<item> tail </item>
<item> tee </item>
<item> test </item>
<item> tr </item>
<item> uniq </item>
<item> unlink </item>
<item> unzip </item>
<item> updatedb </item>
<item> updmap </item>
<item> uptime </item>
<item> users </item>
<item> vmstat </item>
<item> w </item>
<item> wc </item>
<item> wget </item>
<item> whatis </item>
<item> whereis </item>
<item> which </item>
<item> who </item>
<item> whoami </item>
<item> write </item>
<item> xargs </item>
<item> yacc </item>
<item> yes </item>
<item> zip </item>
<item> zsoelim </item>
<!-- others -->
<item> dcop </item>
<item> kdialog </item>
<item> kfile </item>
<item> xhost </item>
<item> xmodmap </item>
<item> xset </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Start">
<IncludeRules context="FindAll" />
</context>
<!-- ====== The following rulessets are meant to be included ======== -->
<!-- FindAll tries to interpret everything -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
<IncludeRules context="FindComments" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- FindMost tries to interpret anything except commands -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
<IncludeRules context="FindComments" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- FindComments consumes shell comments till EOL -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
<IncludeRules context="##Alerts" />
</context>
<!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
<DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentParen">
<RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
<IncludeRules context="##Alerts" />
</context>
<!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
<DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
<RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
<IncludeRules context="##Alerts" />
</context>
<!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
<!-- start expression in double parentheses -->
<Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
<!-- start expression in double brackets -->
<RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>
<RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />
<!-- start expression in single brackets -->
<RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>
<RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />
<!-- start a group command with { -->
<RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
<!-- start a subshell -->
<DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
<!-- match do and if blocks -->
<RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />
<RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />
<RegExpr attribute="Keyword" context="#stay" String="\bif&noword;" beginRegion="if" />
<RegExpr attribute="Keyword" context="#stay" String="\bfi&noword;" endRegion="if" />
<!-- handle case as a special case -->
<RegExpr attribute="Keyword" context="Case" String="\bcase&noword;" beginRegion="case" />
<!-- handle command line options -->
<RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*" />
<RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
<!-- handle variable assignments -->
<RegExpr attribute="Variable" context="Assign" String="\b&varname;\+?=" />
<RegExpr attribute="Variable" context="AssignSubscr" String="\b&varname;(?=\[.+\]\+?=)" />
<!-- handle functions with function keyword before keywords -->
<StringDetect attribute="Function" context="#stay" String=":()" />
<RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
<!-- handle keywords -->
<keyword attribute="Keyword" context="#stay" String="keywords" />
<RegExpr attribute="Builtin" context="#stay" String="\.(?=\s)" />
<keyword attribute="Builtin" context="#stay" String="builtins" />
<keyword attribute="Command" context="#stay" String="unixcommands" />
<!-- handle commands that have variable names as argument -->
<keyword attribute="Builtin" context="VarName" String="builtins_var" />
<!-- handle here-string -->
<RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />
<!-- handle here document -->
<StringDetect attribute="Redirection" context="HereDoc" String="&lt;&lt;" lookAhead="true" />
<!-- handle process subst -->
<RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
<!-- handle redirection -->
<RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
<!-- handle &, &&, | and || -->
<RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />
<!-- mark function definitions without function keyword -->
<RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
</context>
<!-- FindOthers contains various rules to mark different shell input -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
<RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />
<RegExpr attribute="Keyword" context="#stay" String="\\$" />
<RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />
<RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />
<RegExpr attribute="Path" context="#stay" String="~\w*" />
<RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />
<!-- TODO: shell globs beside * and ? (in Path's) -->
</context>
<!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
<Detect2Chars attribute="Escape" context="#stay" char="\\" char1="'" />
<Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;" />
<DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
<DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
<Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
<Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />
</context>
<!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
<RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
<RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
<RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />
<RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />
<RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;(\[[*@]\])?\}" />
<RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;(\[[*@]\]|[*@])?\}" />
<RegExpr attribute="Variable" context="VarBrace" String="\$\{&varname;" />
<RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />
<StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
<StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />
<StringDetect attribute="Variable" context="SubstCommand" String="$(" />
<DetectChar attribute="Backquote" context="SubstBackq" char="`" />
<RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
</context>
<!-- FindTests finds operators valid in tests -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
<RegExpr attribute="Expression" context="#stay" String="-[abcdefghkprstuwxOGLSNozn](?=\s)"/>
<RegExpr attribute="Expression" context="#stay" String="-([no]t|ef)(?=\s)"/>
<RegExpr attribute="Expression" context="#stay" String="([!=]=?|[&gt;&lt;])(?=\s)"/>
<RegExpr attribute="Expression" context="#stay" String="-(eq|ne|[gl][te])(?=\s)"/>
</context>
<!-- ====== These are the contexts that can be branched to ======= -->
<!-- ExprDblParen consumes an expression started in command mode till )) -->
<context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
<Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
<context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
<Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<!-- ExprSubParen consumes an expression till ) -->
<context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">
<DetectChar attribute="Normal Text" context="#pop" char=")" />
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindMost" />
</context>
<!-- ExprBracket consumes an expression till ] -->
<context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">
<RegExpr attribute="Builtin" context="#pop" String="\s\](?=($|[\s;|&amp;]))" endRegion="expression" />
<RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindTests" />
<IncludeRules context="FindMost" />
</context>
<!-- ExprDblBracket consumes an expression till ]] -->
<context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">
<RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />
<RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
<DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
<IncludeRules context="FindTests" />
<IncludeRules context="FindMost" />
</context>
<!-- Group consumes shell input till } -->
<context attribute="Normal Text" lineEndContext="#stay" name="Group">
<DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
<IncludeRules context="FindAll" />
</context>
<!-- SubShell consumes shell input till ) -->
<context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
<DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
<IncludeRules context="FindAll" />
</context>
<!-- Assign consumes an expression till EOL or whitespace -->
<context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
<DetectChar attribute="Variable" context="AssignArray" char="(" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
<RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]" />
</context>
<!-- AssignArray consumes everything till ), marking assignments -->
<context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
<DetectChar attribute="Variable" context="#pop" char=")" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<DetectChar attribute="Variable" context="Assign" char="=" />
<IncludeRules context="FindMost" />
</context>
<!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
<context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
<DetectChar attribute="Variable" context="Subscript" char="[" />
<Detect2Chars attribute="Variable" context="Assign" char="+" char1="=" />
<DetectChar attribute="Variable" context="Assign" char="=" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- Subscript consumes anything till ], marks as Variable -->
<context attribute="Variable" lineEndContext="#stay" name="Subscript">
<DetectChar attribute="Variable" context="#pop" char="]" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- FunctionDef consumes a name, possibly with (), marks as Function -->
<context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
</context>
<!-- VarName consumes spare variable names and assignments -->
<context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
<!-- handle command line options -->
<RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />
<RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
<RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<DetectChar attribute="Variable" context="Assign" char="=" />
<IncludeRules context="FindMost" />
<!-- stay here in spaces and other safe characters -->
<RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
</context>
<!-- ProcessSubst handles <(command) and >(command) -->
<context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
<DetectChar attribute="Redirection" context="#pop" char=")" />
<IncludeRules context="FindCommentsParen" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- StringSQ consumes anything till ' -->
<context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
<DetectChar attribute="String SingleQ" context="#pop" char="'" />
</context>
<!-- StringDQ consumes anything till ", substitutes vars and expressions -->
<context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
<DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />
<RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- StringEsc eats till ', but escaping many characters -->
<context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
<DetectChar attribute="String SingleQ" context="#pop" char="'" />
<RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />
<RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
</context>
<!-- VarBrace is called as soon as ${xxx is encoutered -->
<context attribute="Error" lineEndContext="#stay" name="VarBrace">
<DetectChar attribute="Variable" context="#pop" char="}" />
<DetectChar attribute="Variable" context="Subscript" char="[" />
<RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+]|##?|%%?)" />
<RegExpr attribute="Variable" context="VarSubst" String="//?" />
<DetectChar attribute="Variable" context="VarSub" char=":" />
</context>
<!-- VarAlt is to handle default/alternate/etc values of variables -->
<context attribute="Normal Text" lineEndContext="#stay" name="VarAlt">
<DetectChar attribute="Variable" context="#pop#pop" char="}" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- VarSubst is to handle substitutions on variables -->
<context attribute="Normal Text" lineEndContext="#stay" name="VarSubst">
<DetectChar attribute="Variable" context="#pop#pop" char="}" />
<DetectChar attribute="Variable" context="VarSubst2" char="/" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="VarSubst2">
<DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- VarSub is to substrings of variables -->
<context attribute="Error" lineEndContext="#stay" name="VarSub">
<DetectChar attribute="Variable" context="VarSub2" char=":" />
<DetectChar attribute="Variable" context="#pop#pop" char="}" />
<RegExpr attribute="Variable" context="#stay" String="&varname;" />
<RegExpr attribute="Variable" context="#stay" String="[0-9]+(?=[:}])" />
<IncludeRules context="FindSubstitutions" />
</context>
<context attribute="Error" lineEndContext="#stay" name="VarSub2">
<DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
<RegExpr attribute="Variable" context="#stay" String="&varname;" />
<RegExpr attribute="Variable" context="#stay" String="[0-9](?=[:}])" />
<IncludeRules context="FindSubstitutions" />
</context>
<!-- SubstFile is called after a <( or >( is encoutered -->
<context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
<DetectChar attribute="Redirection" context="#pop" char=")" />
<IncludeRules context="FindCommentsParen" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- SubstCommand is called after a $( is encountered -->
<context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
<DetectChar attribute="Variable" context="#pop" char=")" />
<IncludeRules context="FindCommentsParen" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- SubstBackq is called when a backquote is encountered -->
<context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
<DetectChar attribute="Backquote" context="#pop" char="`" />
<IncludeRules context="FindCommentsBackq" />
<IncludeRules context="FindCommands" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
</context>
<!-- Case is called after the case keyword is encoutered. We handle this because of
the lonely closing parentheses that would otherwise disturb the expr matching -->
<context attribute="Normal Text" lineEndContext="#stay" name="Case">
<RegExpr attribute="Keyword" context="CaseIn" String="\sin\b" />
<IncludeRules context="FindMost" />
</context>
<!-- CaseIn is called when the construct 'case ... in' has been found. -->
<context attribute="Normal Text" lineEndContext="#stay" name="CaseIn">
<RegExpr attribute="Keyword" context="#pop#pop" String="\besac(?=$|[\s;)])" endRegion="case" />
<DetectChar attribute="Keyword" context="CaseExpr" char=")" beginRegion="caseexpr" />
<AnyChar attribute="Keyword" context="#stay" String="(|" />
<IncludeRules context="FindMost" />
</context>
<!-- CaseExpr eats shell input till ;; -->
<context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr">
<Detect2Chars attribute="Keyword" context="#pop" char=";" char1=";" endRegion="caseexpr" />
<RegExpr attribute="Keyword" context="#pop" String="esac(?=$|[\s;)])" lookAhead="true" firstNonSpace="true" endRegion="caseexpr"/>
<IncludeRules context="FindAll" />
</context>
<!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
<context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
<RegExpr attribute="Redirection" context="HereDocIQ" String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocIQ" String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocIQ" String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocQ" String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocQ" String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocQ" String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
<RegExpr attribute="Redirection" context="HereDocNQ" String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
<StringDetect attribute="Redirection" context="#pop" String="&lt;&lt;" /><!-- always met -->
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
<IncludeRules context="FindAll" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">
<RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
<RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">
<RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
<RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
<IncludeRules context="FindSubstitutions" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">
<RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
<RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">
<RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
<RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
<IncludeRules context="FindSubstitutions" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="Control" defStyleNum="dsKeyword" />
<itemData name="Builtin" defStyleNum="dsKeyword" color="#808" />
<itemData name="Command" defStyleNum="dsKeyword" color="#c0c" />
<itemData name="Redirection" defStyleNum="dsKeyword" color="#238" />
<itemData name="Escape" defStyleNum="dsDataType" />
<itemData name="String SingleQ" defStyleNum="dsString" />
<itemData name="String DoubleQ" defStyleNum="dsString" />
<itemData name="Backquote" defStyleNum="dsKeyword" />
<itemData name="String Transl." defStyleNum="dsString" />
<itemData name="String Escape" defStyleNum="dsDataType" />
<itemData name="Variable" defStyleNum="dsOthers" />
<itemData name="Expression" defStyleNum="dsOthers" />
<itemData name="Function" defStyleNum="dsFunction" />
<itemData name="Path" defStyleNum="dsNormal" />
<itemData name="Option" defStyleNum="dsNormal" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#"/>
</comments>
<keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-/" additionalDeliminator="`"/>
</general>
</language>

View File

@@ -1,198 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="C" section="Sources"
version="1.42" kateversion="2.4"
indenter="cstyle"
extensions="*.c;*.C;*.h"
mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
priority="5">
<!--
##########################################################################
## Fixes by Sebastian Pipping (webmaster@hartwork.org)
##
## NOTE: Keep in sync with C++ highlighter! (cpp.xml)
##########################################################################
-->
<highlighting>
<list name="keywords">
<item> break </item>
<item> case </item>
<item> continue </item>
<item> default </item>
<item> do </item>
<item> else </item>
<item> enum </item>
<item> extern </item>
<item> for </item>
<item> goto </item>
<item> if </item>
<item> inline </item>
<item> return </item>
<item> sizeof </item>
<item> struct </item>
<item> switch </item>
<item> typedef </item>
<item> union </item>
<item> while </item>
</list>
<list name="types">
<item> auto </item>
<item> char </item>
<item> const </item>
<item> double </item>
<item> float </item>
<item> int </item>
<item> long </item>
<item> register </item>
<item> restrict </item>
<item> short </item>
<item> signed </item>
<item> static </item>
<item> unsigned </item>
<item> void </item>
<item> volatile </item>
<item> int8_t </item>
<item> int16_t </item>
<item> int32_t </item>
<item> int64_t </item>
<item> uint8_t </item>
<item> uint16_t </item>
<item> uint32_t </item>
<item> uint64_t </item>
<item> wchar_t </item>
<item> _Imaginary </item>
<item> _Complex </item>
<item> _Bool </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<DetectSpaces />
<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="PP" firstNonSpace="true" />
<DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
<StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
<StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<keyword attribute="Data Type" context="#stay" String="types"/>
<DetectIdentifier />
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
<Float attribute="Float" context="#stay">
<AnyChar String="fF" attribute="Float" context="#stay"/>
</Float>
<HlCOct attribute="Octal" context="#stay"/>
<HlCHex attribute="Hex" context="#stay"/>
<Int attribute="Decimal" context="#stay" >
<StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
</Int>
<HlCChar attribute="Char" context="#stay"/>
<DetectChar attribute="String" context="String" char="&quot;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<LineContinue attribute="String" context="#stay"/>
<HlCStringChar attribute="String Char" context="#stay"/>
<DetectChar attribute="String" context="#pop" char="&quot;"/>
</context>
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
</context>
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
<LineContinue attribute="Comment" context="#stay"/>
<IncludeRules context="##Alerts" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
<IncludeRules context="##Alerts" />
</context>
<context attribute="Error" lineEndContext="#pop" name="AfterHash">
<!-- define, elif, else, endif, error, if, ifdef, ifndef, include, include_next, line, pragma, undef, warning -->
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
</context>
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
<LineContinue attribute="Preprocessor" context="#stay"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
</context>
<context attribute="Preprocessor" lineEndContext="#pop" name="Define">
<LineContinue attribute="Preprocessor" context="#stay"/>
</context>
<context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<DetectChar attribute="String" context="String" char="&quot;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<DetectChar attribute="String" context="String" char="&quot;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Char" defStyleNum="dsChar"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
<itemData name="Prep. Lib" defStyleNum="dsOthers"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
<itemData name="Alert" defStyleNum="dsAlert" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" />
<comment name="multiLine" start="/*" end="*/" />
</comments>
<keywords casesensitive="1" additionalDeliminator="'&quot;" />
</general>
</language>

View File

@@ -1,343 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="C++" section="Sources"
version="1.44" kateversion="2.4"
indenter="cstyle"
mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.moc"
priority="9">
<!--
##########################################################################
## Fixes by Sebastian Pipping (webmaster@hartwork.org)
##
## NOTE: Keep in sync with C highlighter! (c.xml)
##########################################################################
-->
<highlighting>
<list name="keywords">
<item> asm </item>
<item> break </item>
<item> case </item>
<item> catch </item>
<item> class </item>
<item> const_cast </item>
<item> continue </item>
<item> default </item>
<item> delete </item>
<item> do </item>
<item> dynamic_cast</item>
<item> else </item>
<item> enum </item>
<item> explicit </item>
<item> export </item>
<item> extern </item>
<item> false </item>
<item> friend </item>
<item> for </item>
<item> goto </item>
<item> if </item>
<item> inline </item>
<item> namespace </item>
<item> new </item>
<item> operator </item>
<item> private </item>
<item> protected </item>
<item> public </item>
<item> qobject_cast </item>
<item> reinterpret_cast </item>
<item> return </item>
<item> sizeof </item>
<item> static_cast </item>
<item> struct </item>
<item> switch </item>
<item> template </item>
<item> this </item>
<item> throw </item>
<item> true </item>
<item> try </item>
<item> typedef </item>
<item> typeid </item>
<item> type_info </item>
<item> typename </item>
<item> union </item>
<item> using </item>
<item> virtual </item>
<item> while </item>
<item> and </item>
<item> and_eq </item>
<item> bad_cast </item>
<item> bad_typeid </item>
<item> bitand </item>
<item> bitor </item>
<item> compl </item>
<item> not </item>
<item> not_eq </item>
<item> or </item>
<item> or_eq </item>
<item> xor </item>
<item> xor_eq </item>
<item> except </item>
<item> finally </item>
<item> xalloc </item>
</list>
<list name="extensions">
<item> K_DCOP </item>
<item> Q_ARG </item>
<item> Q_ASSERT </item>
<item> Q_ASSERT_X </item>
<item> Q_CHECK_PTR </item>
<item> Q_CLASSINFO </item>
<item> Q_CLEANUP_RESOURCE </item>
<item> Q_D </item>
<item> Q_DECLARE_FLAGS </item>
<item> Q_DECLARE_FLAGS </item>
<item> Q_DECLARE_INTERFACE </item>
<item> Q_DECLARE_METATYPE </item>
<item> Q_DECLARE_OPERATORS_FOR_FLAGS </item>
<item> Q_DECLARE_PRIVATE </item>
<item> Q_DECLARE_PUBLIC </item>
<item> Q_DECLARE_SHARED </item>
<item> Q_DECLARE_TYPEINFO </item>
<item> Q_DISABLE_COPY </item>
<item> Q_ENUMS </item>
<item> Q_EXPORT </item>
<item> Q_FLAGS </item>
<item> Q_FOREACH </item>
<item> Q_FOREVER </item>
<item> Q_GADGET </item>
<item> Q_GLOBAL_STATIC </item>
<item> Q_GLOBAL_STATIC_WITH_ARGS </item>
<item> Q_INIT_RESOURCE </item>
<item> Q_INTERFACES </item>
<item> Q_INVOKABLE </item>
<item> Q_NOREPLY </item>
<item> Q_OBJECT </item>
<item> Q_OVERRIDE </item>
<item> Q_PRIVATE_SLOT </item>
<item> Q_PROPERTY </item>
<item> Q_Q </item>
<item> Q_RETURN_ARG </item>
<item> Q_SCRIPTABLE </item>
<item> Q_SETS </item>
<item> Q_SIGNALS </item>
<item> Q_SLOTS </item>
<item> Q_UNUSED </item>
<item> SIGNAL </item>
<item> SLOT </item>
<item> TRUE </item>
<item> FALSE </item>
<item> connect </item>
<item> disconnect </item>
<item> emit </item>
<item> signals </item>
<item> slots </item>
<item> foreach </item>
<item> forever </item>
<item> qint8 </item>
<item> qint16 </item>
<item> qint32 </item>
<item> qint64 </item>
<item> qlonglong </item>
<item> qptrdiff </item>
<item> qreal </item>
<item> quint8 </item>
<item> quint16 </item>
<item> quint32 </item>
<item> quint64 </item>
<item> quintptr </item>
<item> qulonglong </item>
</list>
<list name="types">
<item> auto </item>
<item> bool </item>
<item> char </item>
<item> const </item>
<item> double </item>
<item> float </item>
<item> int </item>
<item> long </item>
<item> mutable </item>
<item> register </item>
<item> short </item>
<item> signed </item>
<item> static </item>
<item> unsigned </item>
<item> void </item>
<item> volatile </item>
<item> uchar </item>
<item> uint </item>
<item> int8_t </item>
<item> int16_t </item>
<item> int32_t </item>
<item> int64_t </item>
<item> uint8_t </item>
<item> uint16_t </item>
<item> uint32_t </item>
<item> uint64_t </item>
<item> wchar_t </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<DetectSpaces />
<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="PP" firstNonSpace="true" />
<DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
<StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
<StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<keyword attribute="Extensions" context="#stay" String="extensions" />
<keyword attribute="Data Type" context="#stay" String="types" />
<HlCChar attribute="Char" context="#stay"/>
<DetectChar attribute="String" context="String" char="&quot;"/>
<DetectIdentifier />
<Float attribute="Float" context="#stay">
<AnyChar String="fF" attribute="Float" context="#stay"/>
<AnyChar String="lL" attribute="Float" context="#stay"/>
</Float>
<HlCHex attribute="Hex" context="#stay"/>
<HlCOct attribute="Octal" context="#stay"/>
<Int attribute="Decimal" context="#stay">
<StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
</Int>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<Detect2Chars attribute="Comment 4" context="Commentar 4" char="/" char1="+" beginRegion="Comment"/>
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]{|}~^&#59;"/>
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<LineContinue attribute="String" context="#stay"/>
<HlCStringChar attribute="String Char" context="#stay"/>
<DetectChar attribute="String" context="#pop" char="&quot;"/>
</context>
<context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
</context>
<context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
<LineContinue attribute="Comment" context="#stay"/>
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<Detect2Chars attribute="Inner Comment" context="Commentar 3" char="/" char1="#" beginRegion="Comment"/>
</context>
<context attribute="Comment 4" lineEndContext="#stay" name="Commentar 4">
<DetectSpaces />
<Detect2Chars attribute="Comment 4" context="#pop" char="+" char1="/" endRegion="Comment"/>
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<Detect2Chars attribute="Inner Comment" context="Commentar 3" char="/" char1="#" beginRegion="Comment"/>
</context>
<context attribute="Inner Comment" lineEndContext="#stay" name="Commentar 3">
<DetectSpaces />
<Detect2Chars attribute="Inner Comment" context="#pop" char="#" char1="/" endRegion="Comment"/>
<IncludeRules context="##Alerts" />
<DetectIdentifier />
</context>
<context attribute="Error" lineEndContext="#pop" name="AfterHash">
<!-- define, elif, else, endif, error, if, ifdef, ifndef, include, include_next, line, pragma, undef, warning -->
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
</context>
<context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
<LineContinue attribute="Preprocessor" context="#stay"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
</context>
<context attribute="Preprocessor" lineEndContext="#pop" name="Define">
<LineContinue attribute="Preprocessor" context="#stay"/>
<!-- Not in Kate's -->
<Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
</context>
<context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
<DetectIdentifier />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<DetectChar attribute="String" context="String" char="&quot;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
<RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<DetectChar attribute="String" context="String" char="&quot;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
<RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Extensions" defStyleNum="dsKeyword" color="#0095ff" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Char" defStyleNum="dsChar"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Comment 4" defStyleNum="dsOthers"/>
<itemData name="Inner Comment" defStyleNum="dsString"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
<itemData name="Prep. Lib" defStyleNum="dsFunction"/>
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" />
<comment name="multiLine" start="/*" end="*/" region="Comment"/>
</comments>
<keywords casesensitive="1" weakDeliminator="" additionalDeliminator=""/>
</general>
</language>

View File

@@ -1,699 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
Kate CSS syntax highlighting definition
Changelog:
- Version 2.02, by Rafał Miłecki:
- Added CSS 3 properties "border-*-image" and "border-*-radius".
- Added CSS values "clip", "ellipsis" and "ellipsis-word".
- Added CSS 3 properties "overflow-x", "overflow-y", "text-overflow", "box-shadow" and "outline-offset".
- Added CSS 3 color values: "rgba", "hsl" and "hsla".
- Added Gecko CSS properties: "-moz-border-*-colors".
- Added background size properties: "background-size" and prefixes: "-o-", "-webkit-" and "-khtml-".
- Version 2.01, by Mathieu Bonnet:
- Added CSS 3 property "border-radius".
- Added Gecko CSS properties "-moz-border-radius" and "-moz-box-flex".
- Added Gecko CSS value "-moz-box".
- Added Trident CSS functional notation "expression".
- Extended the id and class syntax specifications, as per CSS 2.1 grammar.
-->
<language name="CSS" version="2.02" kateversion="2.4" section="Markup" extensions="*.css" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
<highlighting>
<list name="properties">
<!-- CSS2 -->
<item> azimuth </item>
<item> background </item>
<item> background-attachment </item>
<item> background-color </item>
<item> background-image </item>
<item> background-position </item>
<item> background-repeat </item>
<item> border </item>
<item> border-bottom </item>
<item> border-bottom-color </item>
<item> border-bottom-style </item>
<item> border-bottom-width </item>
<item> border-collapse </item>
<item> border-color </item>
<item> border-left </item>
<item> border-left-color </item>
<item> border-left-style </item>
<item> border-left-width </item>
<item> border-right </item>
<item> border-right-color </item>
<item> border-right-style </item>
<item> border-right-width </item>
<item> border-spacing </item>
<item> border-style </item>
<item> border-top </item>
<item> border-top-color </item>
<item> border-top-style </item>
<item> border-top-width </item>
<item> border-width </item>
<item> bottom </item>
<item> caption-side </item>
<item> clear </item>
<item> clip </item>
<item> color </item>
<item> content </item>
<item> counter-increment </item>
<item> counter-reset </item>
<item> cue </item>
<item> cue-after </item>
<item> cue-before </item>
<item> cursor </item>
<item> direction </item>
<item> display </item>
<item> elevation </item>
<item> empty-cells </item>
<item> float </item>
<item> font </item>
<item> font-family </item>
<item> font-size </item>
<item> font-size-adjust </item>
<item> font-stretch </item>
<item> font-style </item>
<item> font-variant </item>
<item> font-weight </item>
<item> height </item>
<item> left </item>
<item> letter-spacing </item>
<item> line-height </item>
<item> list-style </item>
<item> list-style-image </item>
<item> list-style-keyword </item>
<item> list-style-position </item>
<item> list-style-type </item>
<item> margin </item>
<item> margin-bottom </item>
<item> margin-left </item>
<item> margin-right </item>
<item> margin-top </item>
<item> marker-offset </item>
<item> max-height </item>
<item> max-width </item>
<item> min-height </item>
<item> min-width </item>
<item> orphans </item>
<item> outline </item>
<item> outline-color </item>
<item> outline-style </item>
<item> outline-width </item>
<item> overflow </item>
<item> padding </item>
<item> padding-bottom </item>
<item> padding-left </item>
<item> padding-right </item>
<item> padding-top </item>
<item> page </item>
<item> page-break-after </item>
<item> page-break-before </item>
<item> page-break-inside </item>
<item> pause </item>
<item> pause-after </item>
<item> pause-before </item>
<item> pitch </item>
<item> pitch-range </item>
<item> play-during </item>
<item> position </item>
<item> quotes </item>
<item> richness </item>
<item> right </item>
<item> size </item>
<item> speak </item>
<item> speak-header </item>
<item> speak-numeral </item>
<item> speak-punctuation </item>
<item> speech-rate </item>
<item> stress </item>
<item> table-layout </item>
<item> text-align </item>
<item> text-decoration </item>
<item> text-decoration-color </item>
<item> text-indent </item>
<item> text-shadow </item>
<item> text-transform </item>
<item> top </item>
<item> unicode-bidi </item>
<item> vertical-align </item>
<item> visibility </item>
<item> voice-family </item>
<item> volume </item>
<item> white-space </item>
<item> widows </item>
<item> width </item>
<item> word-spacing </item>
<item> z-index </item>
<!-- CSS3 -->
<item> border-bottom-image </item>
<item> border-bottom-left-image </item>
<item> border-bottom-left-radius </item>
<item> border-bottom-right-image </item>
<item> border-bottom-right-radius </item>
<item> border-corner-image </item>
<item> border-image </item>
<item> border-left-image </item>
<item> border-radius </item>
<item> border-right-image </item>
<item> border-top-image </item>
<item> border-top-left-image </item>
<item> border-top-left-radius </item>
<item> border-top-right-image </item>
<item> border-top-right-radius </item>
<item> box-shadow </item>
<item> box-sizing </item>
<item> opacity </item>
<item> outline-offset </item>
<item> overflow-x </item>
<item> overflow-y </item>
<item> text-overflow </item>
<item> text-shadow </item>
<!-- Gecko rendering engine CSS property extensions -->
<item> -moz-border-bottom-colors </item>
<item> -moz-border-left-colors </item>
<item> -moz-border-radius </item>
<item> -moz-border-right-colors </item>
<item> -moz-border-top-colors </item>
<item> -moz-box-flex </item>
<!-- Opera rendering engine CSS property extensions -->
<item> -o-background-size </item>
<item> -o-text-overflow </item>
<!-- konq specific -->
<item> -khtml-background-size </item>
<item> konq_bgpos_x </item>
<item> konq_bgpos_y </item>
<!-- Webkit rendering engine CSS property extensions -->
<item> -webkit-background-size </item>
<!-- font properties in @font-face -->
<item> font-family </item>
<item> font-size </item>
<item> font-stretch </item>
<item> font-style </item>
<item> font-variant </item>
<item> font-weight </item>
<item> unicode-range </item>
<item> units-per-em </item>
<item> src </item>
<item> panose-1 </item>
<item> stemv </item>
<item> stemh </item>
<item> slope </item>
<item> cap-height </item>
<item> x-height </item>
<item> ascent </item>
<item> descent </item>
<item> widths </item>
<item> bbox </item>
<item> definition-src </item>
<item> baseline </item>
<item> centerline </item>
<item> mathline </item>
<item> topline </item>
</list>
<list name="types">
<item> inherit </item>
<item> none </item>
<item> hidden </item>
<item> dotted </item>
<item> dashed </item>
<item> solid </item>
<item> double </item>
<item> groove </item>
<item> ridge </item>
<item> inset </item>
<item> outset </item>
<item> xx-small </item>
<item> x-small </item>
<item> small </item>
<item> medium </item>
<item> large </item>
<item> x-large </item>
<item> xx-large </item>
<item> smaller </item>
<item> larger </item>
<item> italic </item>
<item> oblique </item>
<item> small-caps </item>
<item> normal </item>
<item> bold </item>
<item> bolder </item>
<item> lighter </item>
<item> light </item>
<item> 100 </item>
<item> 200 </item>
<item> 300 </item>
<item> 400 </item>
<item> 500 </item>
<item> 600 </item>
<item> 700 </item>
<item> 800 </item>
<item> 900 </item>
<item> transparent </item>
<item> repeat </item>
<item> repeat-x </item>
<item> repeat-y </item>
<item> no-repeat </item>
<item> baseline </item>
<item> sub </item>
<item> super </item>
<item> top </item>
<item> text-top </item>
<item> middle </item>
<item> bottom </item>
<item> text-bottom </item>
<item> left </item>
<item> right </item>
<item> center </item>
<item> justify </item>
<item> konq-center </item>
<item> disc </item>
<item> circle </item>
<item> square </item>
<item> box </item>
<item> decimal </item>
<item> decimal-leading-zero </item>
<item> lower-roman </item>
<item> upper-roman </item>
<item> lower-greek </item>
<item> lower-alpha </item>
<item> lower-latin </item>
<item> upper-alpha </item>
<item> upper-latin </item>
<item> hebrew </item>
<item> armenian </item>
<item> georgian </item>
<item> cjk-ideographic </item>
<item> hiragana </item>
<item> katakana </item>
<item> hiragana-iroha </item>
<item> katakana-iroha </item>
<item> inline </item>
<item> inline-block </item>
<item> block </item>
<item> list-item </item>
<item> run-in </item>
<item> compact </item>
<item> marker </item>
<item> table </item>
<item> inline-table </item>
<item> table-row-group </item>
<item> table-header-group </item>
<item> table-footer-group </item>
<item> table-row </item>
<item> table-column-group </item>
<item> table-column </item>
<item> table-cell </item>
<item> table-caption </item>
<item> auto </item>
<item> crosshair </item>
<item> default </item>
<item> pointer </item>
<item> move </item>
<item> e-resize </item>
<item> ne-resize </item>
<item> nw-resize </item>
<item> n-resize </item>
<item> se-resize </item>
<item> sw-resize </item>
<item> s-resize </item>
<item> w-resize </item>
<item> text </item>
<item> wait </item>
<item> help </item>
<item> above </item>
<item> absolute </item>
<item> always </item>
<item> avoid </item>
<item> below </item>
<item> bidi-override </item>
<item> blink </item>
<item> both </item>
<item> capitalize </item>
<item> caption </item>
<item> clip </item>
<item> close-quote </item>
<item> collapse </item>
<item> condensed </item>
<item> crop </item>
<item> cross </item>
<item> ellipsis </item>
<item> ellipsis-word </item>
<item> embed </item>
<item> expanded </item>
<item> extra-condensed </item>
<item> extra-expanded </item>
<item> fixed </item>
<item> hand </item>
<item> hide </item>
<item> higher </item>
<item> icon </item>
<item> inside </item>
<item> invert </item>
<item> landscape </item>
<item> level </item>
<item> line-through </item>
<item> loud </item>
<item> lower </item>
<item> lowercase </item>
<item> ltr </item>
<item> menu </item>
<item> message-box </item>
<item> mix </item>
<item> narrower </item>
<item> no-close-quote </item>
<item> no-open-quote </item>
<item> nowrap </item>
<item> open-quote </item>
<item> outside </item>
<item> overline </item>
<item> portrait </item>
<item> pre </item>
<item> pre-line </item>
<item> pre-wrap </item>
<item> relative </item>
<item> rtl </item>
<item> scroll </item>
<item> semi-condensed </item>
<item> semi-expanded </item>
<item> separate </item>
<item> show </item>
<item> small-caption </item>
<item> static </item>
<item> static-position </item>
<item> status-bar </item>
<item> thick </item>
<item> thin </item>
<item> ultra-condensed </item>
<item> ultra-expanded </item>
<item> underline </item>
<item> uppercase </item>
<item> visible </item>
<item> wider </item>
<item> break </item>
<item> serif </item>
<item> sans-serif </item>
<item> cursive </item>
<item> fantasy </item>
<item> monospace </item>
<item> border-box </item>
<item> content-box </item>
<!-- Gecko rendering engine CSS value extensions -->
<item> -moz-box </item>
</list>
<list name="colors">
<item> aqua </item>
<item> black </item>
<item> blue </item>
<item> fuchsia </item>
<item> gray </item>
<item> green </item>
<item> lime </item>
<item> maroon </item>
<item> navy </item>
<item> olive </item>
<item> purple </item>
<item> red </item>
<item> silver </item>
<item> teal </item>
<item> white </item>
<item> yellow </item>
<item> ActiveBorder </item>
<item> ActiveCaption </item>
<item> AppWorkspace </item>
<item> Background </item>
<item> ButtonFace </item>
<item> ButtonHighlight </item>
<item> ButtonShadow </item>
<item> ButtonText </item>
<item> CaptionText </item>
<item> GrayText </item>
<item> Highlight </item>
<item> HighlightText </item>
<item> InactiveBorder </item>
<item> InactiveCaption </item>
<item> InactiveCaptionText </item>
<item> InfoBackground </item>
<item> InfoText </item>
<item> Menu </item>
<item> MenuText </item>
<item> Scrollbar </item>
<item> ThreeDDarkShadow </item>
<item> ThreeDFace </item>
<item> ThreeDHighlight </item>
<item> ThreeDLightShadow </item>
<item> ThreeDShadow </item>
<item> Window </item>
<item> WindowFrame </item>
<item> WindowText </item>
</list>
<list name="paren">
<item> url </item>
<item> attr </item>
<item> rect </item>
<item> rgb </item>
<item> rgba </item>
<item> hsl </item>
<item> hsla </item>
<item> counter </item>
<item> counters </item>
<!-- in @font-face -->
<item> local </item>
<item> format </item>
<!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->
<item> expression </item>
</list>
<list name="mediatypes">
<item> all </item>
<item> aural </item>
<item> braille </item>
<item> embossed </item>
<item> handheld </item>
<item> print </item>
<item> projection </item>
<item> screen </item>
<item> tty </item>
<item> tv </item>
</list>
<list name="pseudoclasses">
<item> hover </item>
<item> link </item>
<item> visited </item>
<item> active </item>
<item> focus </item>
<item> first-child </item>
<item> last-child </item>
<item> only-child </item>
<item> first-of-type </item>
<item> last-of-type </item>
<item> only-of-type </item>
<item> first-letter </item>
<item> first-line </item>
<item> before </item>
<item> after </item>
<item> selection </item>
<item> root </item>
<item> empty </item>
<item> target </item>
<item> enabled </item>
<item> disabled </item>
<item> checked </item>
<item> indeterminate </item>
<item> nth-child </item>
<item> nth-last-child </item>
<item> nth-of-type </item>
<item> nth-last-of-type </item>
<item> not </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Base">
<LineContinue/>
<DetectSpaces/>
<IncludeRules context="FindRuleSets" />
</context>
<!-- to be included -->
<!-- finds rules and detects nesting -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindRuleSets">
<RegExpr attribute="Media" context="Media" String="@media\b" />
<RegExpr attribute="At Rule" context="Import" String="@import\b" />
<RegExpr attribute="At Rule" context="#stay" String="@(font-face|charset)\b" />
<DetectChar attribute="Property" context="RuleSet" char="{" beginRegion="ruleset" />
<!--parse selectors-->
<DetectChar attribute="Selector Attr" context="SelAttr" char="[" />
<RegExpr attribute="Selector Id" context="#stay" String="#([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
<RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
<RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" />
<DetectChar attribute="Selector Pseudo" context="SelPseudo" char=":" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
</context>
<!-- finds arguments to properties -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindValues">
<RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|px|in|cm|mm|pt|pc|deg|rad|grad|ms|s|Hz|kHz)\b" />
<RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" />
<RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />
</context>
<!-- finds strings -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
<DetectChar attribute="String" context="StringDQ" char="&quot;" />
<DetectChar attribute="String" context="StringSQ" char="'" />
</context>
<!-- finds comments -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindComments">
<RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" />
<RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" />
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />
</context>
<!-- other contexts -->
<context attribute="Normal Text" lineEndContext="#stay" name="Media">
<DetectChar attribute="Media" context="Media2" char="{" beginRegion="media" />
<keyword attribute="Media" context="#stay" String="mediatypes" />
<DetectChar attribute="Media" context="#stay" char="," />
<IncludeRules context="FindComments" />
<RegExpr attribute="Error" context="#stay" String="\S+" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Media2">
<DetectChar attribute="Media" context="#pop#pop" char="}" endRegion="media" />
<IncludeRules context="FindRuleSets" />
</context>
<context attribute="Selector Attr" lineEndContext="#stay" name="SelAttr">
<DetectChar attribute="Selector Attr" context="#pop" char="]" />
<IncludeRules context="FindStrings" />
</context>
<context attribute="Selector Pseudo" lineEndContext="#pop" name="SelPseudo"
fallthrough="true" fallthroughContext="#pop">
<keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Import">
<DetectChar attribute="At Rule" context="#pop" char=";" />
<keyword attribute="Media" context="#stay" String="mediatypes" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Comment">
<DetectSpaces/>
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" />
<IncludeRules context="##Alerts" />
<DetectIdentifier/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="RuleSet">
<DetectChar attribute="Property" context="#pop" char="}" endRegion="ruleset" />
<keyword attribute="Property" context="Rule" String="properties" />
<RegExpr attribute="Unknown Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" />
<IncludeRules context="FindComments" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Rule">
<DetectChar attribute="Property" context="Rule2" char=":" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Rule2">
<DetectChar attribute="Property" context="#pop#pop" char=";" />
<DetectChar attribute="Property" context="#pop#pop#pop" char="}" endRegion="ruleset" />
<!-- parse property values -->
<keyword attribute="Value" context="#stay" String="types" />
<keyword attribute="Value" context="#stay" String="colors" />
<RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />
<keyword attribute="Value" context="PropParen" String="paren" />
<RegExpr attribute="Important" context="#stay" String="!important\b" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="PropParen">
<DetectChar attribute="Value" context="PropParen2" char="(" />
<IncludeRules context="FindComments" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="PropParen2">
<DetectChar attribute="Value" context="#pop#pop" char=")" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
</context>
<!-- string contexts -->
<context attribute="String" lineEndContext="#stay" name="StringDQ">
<DetectChar attribute="String" context="#pop" char="&quot;" />
<IncludeRules context="InsideString" />
</context>
<context attribute="String" lineEndContext="#stay" name="StringSQ">
<DetectChar attribute="String" context="#pop" char="'" />
<IncludeRules context="InsideString" />
</context>
<context attribute="String" lineEndContext="#stay" name="InsideString">
<RegExpr attribute="String" context="#stay" String="\\[&quot;']" />
<DetectIdentifier/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Property" defStyleNum="dsKeyword"/>
<itemData name="Unknown Property" defStyleNum="dsKeyword" italic="1"/>
<itemData name="Media" defStyleNum="dsDecVal" bold="1"/>
<itemData name="At Rule" defStyleNum="dsDecVal" />
<itemData name="String" defStyleNum="dsString" />
<itemData name="Value" defStyleNum="dsDataType" />
<itemData name="Important" defStyleNum="dsKeyword" />
<itemData name="Selector Attr" defStyleNum="dsChar" />
<itemData name="Selector Id" defStyleNum="dsFloat" bold="1"/>
<itemData name="Selector Class" defStyleNum="dsFloat" />
<itemData name="Selector Pseudo" defStyleNum="dsDecVal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
<itemData name="Alert" defStyleNum="dsAlert"/>
<itemData name="Error" defStyleNum="dsError"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="0" weakDeliminator="-%"/>
<comments>
<comment name="multiLine" start="/*" end="*/" />
</comments>
</general>
</language>

View File

@@ -1,483 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY wordsep "([][,?;()]|\.$|\.?\s)"> <!-- things that end a TagWord -->
]>
<!--
This file is part of KDE's kate project.
Copyright 2004 Dominik Haumann (dhdev@gmx.de)
Copyright 2007 Matthew Woehlke (mw_triad@users.sourceforge.net)
**********************************************************************
* This library 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 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library; if not, write to the *
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301, USA. *
**********************************************************************
-->
<language name="Doxygen" version="1.30" kateversion="2.4" section="Markup" extensions="*.dox;*.doxygen" mimetype="text/x-doxygen" author="Dominik Haumann (dhdev@gmx.de)" license="LGPL" priority="9">
<highlighting>
<!-- note: all tags may begin with a \ or @ char
so if you add/change tags you have to do it twice -->
<list name="TagOnly">
<item> \arg </item>
<item> \attention </item>
<item> \author </item>
<item> \callgraph </item>
<item> \code </item>
<item> \dot </item>
<item> \else </item>
<item> \endcode </item>
<item> \endcond </item>
<item> \enddot </item>
<item> \endhtmlonly </item>
<item> \endif </item>
<item> \endlatexonly </item>
<item> \endlink </item>
<item> \endmanonly </item>
<item> \endverbatim </item>
<item> \endxmlonly </item>
<item> \f[ </item>
<item> \f] </item>
<item> \f$ </item>
<item> \hideinitializer </item>
<item> \htmlonly </item>
<item> \interface </item>
<item> \internal </item>
<item> \invariant </item>
<item> \~ </item>
<item> \@ </item>
<item> \$ </item>
<item> \\ </item>
<item> \# </item>
<item> \latexonly </item>
<item> \li </item>
<item> \manonly </item>
<item> \n </item>
<item> \nosubgrouping </item>
<item> \note </item>
<item> \only </item>
<item> \post </item>
<item> \pre </item>
<item> \remarks </item>
<item> \return </item>
<item> \returns </item>
<item> \sa </item>
<item> \see </item>
<item> \showinitializer </item>
<item> \since </item>
<item> \test </item>
<item> \todo </item>
<item> \verbatim </item>
<item> \warning </item>
<item> \xmlonly </item>
<item> @arg </item>
<item> @attention </item>
<item> @author </item>
<item> @callgraph </item>
<item> @code </item>
<item> @dot </item>
<item> @else </item>
<item> @endcode </item>
<item> @endcond </item>
<item> @enddot </item>
<item> @endhtmlonly </item>
<item> @endif </item>
<item> @endlatexonly </item>
<item> @endlink </item>
<item> @endmanonly </item>
<item> @endverbatim </item>
<item> @endxmlonly </item>
<item> @f[ </item>
<item> @f] </item>
<item> @f$ </item>
<item> @hideinitializer </item>
<item> @htmlonly </item>
<item> @interface </item>
<item> @internal </item>
<item> @invariant </item>
<item> @~ </item>
<item> @@ </item>
<item> @$ </item>
<item> @\ </item>
<item> @# </item>
<item> @latexonly </item>
<item> @li </item>
<item> @manonly </item>
<item> @n </item>
<item> @nosubgrouping </item>
<item> @note </item>
<item> @only </item>
<item> @post </item>
<item> @pre </item>
<item> @remarks </item>
<item> @return </item>
<item> @returns </item>
<item> @sa </item>
<item> @see </item>
<item> @showinitializer </item>
<item> @since </item>
<item> @test </item>
<item> @todo </item>
<item> @verbatim </item>
<item> @warning </item>
<item> @xmlonly </item>
</list>
<list name="TagWord">
<item> \addtogroup </item>
<item> \a </item>
<item> \anchor </item>
<item> \b </item>
<item> \c </item>
<item> \class </item>
<item> \cond </item>
<item> \copydoc </item>
<item> \def </item>
<item> \dontinclude </item>
<item> \dotfile </item>
<item> \e </item>
<item> \elseif </item>
<item> \em </item>
<item> \enum </item>
<item> \example </item>
<item> \exception </item>
<item> \exceptions </item>
<item> \file </item>
<item> \htmlinclude </item>
<item> \if </item>
<item> \ifnot </item>
<item> \include </item>
<item> \link </item>
<item> \namespace </item>
<item> \p </item>
<item> \package </item>
<item> \ref </item>
<item> \relatesalso </item>
<item> \relates </item>
<item> \retval </item>
<item> \throw </item>
<item> \throws </item>
<item> \verbinclude </item>
<item> \version </item>
<item> \xrefitem </item>
<item> @addtogroup </item>
<item> @a </item>
<item> @anchor </item>
<item> @b </item>
<item> @c </item>
<item> @class </item>
<item> @cond </item>
<item> @copydoc </item>
<item> @def </item>
<item> @dontinclude </item>
<item> @dotfile </item>
<item> @e </item>
<item> @elseif </item>
<item> @em </item>
<item> @enum </item>
<item> @example </item>
<item> @exception </item>
<item> @exceptions </item>
<item> @file </item>
<item> @htmlinclude </item>
<item> @if </item>
<item> @ifnot </item>
<item> @include </item>
<item> @link </item>
<item> @namespace </item>
<item> @p </item>
<item> @package </item>
<item> @ref </item>
<item> @relatesalso </item>
<item> @relates </item>
<item> @retval </item>
<item> @throw </item>
<item> @throws </item>
<item> @verbinclude </item>
<item> @version </item>
<item> @xrefitem </item>
</list>
<list name="TagParam">
<item> \param </item>
<item> \tparam </item>
<item> @param </item>
<item> @tparam </item>
</list>
<list name="TagWordWord">
<item> \image </item>
<item> @image </item>
</list>
<list name="TagWordString">
<item> \defgroup </item>
<item> \page </item>
<item> \paragraph </item>
<item> \section </item>
<item> \struct </item>
<item> \subsection </item>
<item> \subsubsection </item>
<item> \union </item>
<item> \weakgroup </item>
<item> @defgroup </item>
<item> @page </item>
<item> @paragraph </item>
<item> @section </item>
<item> @struct </item>
<item> @subsection </item>
<item> @subsubsection </item>
<item> @union </item>
<item> @weakgroup </item>
</list>
<list name="TagString">
<item> \addindex </item>
<item> \brief </item>
<item> \bug </item>
<item> \date </item>
<item> \deprecated </item>
<item> \fn </item>
<item> \ingroup </item>
<item> \line </item>
<item> \mainpage </item>
<item> \name </item>
<item> \overload </item>
<item> \par </item>
<item> \short </item>
<item> \skip </item>
<item> \skipline </item>
<item> \typedef </item>
<item> \until </item>
<item> \var </item>
<item> @addindex </item>
<item> @brief </item>
<item> @bug </item>
<item> @date </item>
<item> @deprecated </item>
<item> @fn </item>
<item> @ingroup </item>
<item> @line </item>
<item> @mainpage </item>
<item> @name </item>
<item> @overload </item>
<item> @par </item>
<item> @short </item>
<item> @skip </item>
<item> @skipline </item>
<item> @typedef </item>
<item> @until </item>
<item> @var </item>
</list>
<contexts>
<!-- different formats:
@tag : TagOnly
@tag rest_of_line : TagString
@tag <word> : TagWord
@tag <word> <word> : TagWordWord
@tag <word> rest_of_line : TagWordString
-->
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<RegExpr attribute="Comment" context="LineComment" String="//(!|(/(?=[^/]|$)))&lt;?"/>
<RegExpr attribute="Comment" context="BlockComment" String="/\*(\*[^*/]|!|[*!]&lt;|\*$)" beginRegion="BlockComment"/>
<RegExpr attribute="Region" context="#stay" String="//\s*@\{\s*$" beginRegion="MemberGroup"/>
<RegExpr attribute="Region" context="#stay" String="//\s*@\}\s*$" endRegion="MemberGroup"/>
<RegExpr attribute="Region" context="#stay" String="/\*\s*@\{\s*\*/" beginRegion="MemberGroup"/>
<RegExpr attribute="Region" context="#stay" String="/\*\s*@\}\s*\*/" endRegion="MemberGroup"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="LineComment">
<LineContinue attribute="Comment" context="#stay"/>
<DetectSpaces />
<IncludeRules context="##Alerts" />
<keyword attribute="Tags" context="#stay" String="TagOnly" />
<keyword attribute="Tags" context="SL_TagWord" String="TagWord" />
<keyword attribute="Tags" context="SL_TagParam" String="TagParam" />
<keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="SL_TagString" String="TagString" />
<keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" />
<DetectIdentifier />
<StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[a-zA-Z_:][a-zA-Z0-9._:-]*" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="BlockComment">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment"/>
<IncludeRules context="##Alerts" />
<Detect2Chars attribute="Region" context="#stay" char="@" char1="{" />
<Detect2Chars attribute="Region" context="#stay" char="@" char1="}" />
<keyword attribute="Tags" context="#stay" String="TagOnly" />
<keyword attribute="Tags" context="ML_TagWord" String="TagWord" />
<keyword attribute="Tags" context="ML_TagParam" String="TagParam" />
<keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="ML_TagString" String="TagString" />
<keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" />
<DetectIdentifier />
<RegExpr attribute="Tags" context="#stay" String="\\(&lt;|&gt;)" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[a-zA-Z_:][a-zA-Z0-9._:-]*" />
<StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
</context>
<!-- NOTE: all contexts beginning with ML_ are for multiline comments
The following contexts contain a Detect2Chars that looks for a */ sequence to end multiline comments. Singleline comments do not have this limitation - that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed. <IncludeRules context="acontext"> could be used instead but it would make context switching much more complex and very hard to understand! (But use IncludeRules where the rules don't refer to another SL_*/ML_* context, to help maintainability.)
-->
<!-- tag contexts -->
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<IncludeRules context="SL_TagWord" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<DetectSpaces />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in,out]" />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<DetectSpaces />
<RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" -->
<context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord">
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true"/>
<IncludeRules context="SL_Tag2ndWord" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[a-zA-Z_:][a-zA-Z0-9._:-]*" />
<RegExpr attribute="Description" context="#stay" String="." />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<IncludeRules context="SL_TagWordString" />
</context>
<!-- html contexts -->
<context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
<DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
<RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*"/>
</context>
<context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<IncludeRules context="##Alerts" />
<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
</context>
<context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
<DetectChar attribute="Types" context="ML_types1" char="'" />
<DetectChar attribute="Types" context="ML_types2" char="&quot;" />
</context>
<context name="ML_types1" attribute="Types" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<DetectChar attribute="Types" context="#pop#pop" char="'" />
</context>
<context name="ML_types2" attribute="Types" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
<DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
</context>
<!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
<!-- tag contexts -->
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
<DetectSpaces />
<keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true"/>
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
<DetectSpaces />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in]" />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[out]" />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in,out]" />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
<DetectSpaces />
<RegExpr attribute="Word" context="SL_Tag2ndWord" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<!-- TODO for kate 2.x, convert references to "#pop!SL_TagWord" -->
<context attribute="Comment" lineEndContext="#pop#pop" name="SL_Tag2ndWord">
<DetectSpaces />
<RegExpr attribute="Word" context="#pop#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
<DetectSpaces />
<StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[a-zA-Z_:][a-zA-Z0-9._:-]*" />
<RegExpr attribute="Description" context="#stay" String="." />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
<DetectSpaces />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<!-- html contexts -->
<context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
<DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
<RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*"/>
</context>
<context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
<IncludeRules context="##Alerts" />
<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
</context>
<context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
<RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
<DetectChar attribute="Types" context="SL_types1" char="'" />
<DetectChar attribute="Types" context="SL_types2" char="&quot;" />
</context>
<context name="SL_types1" attribute="Types" lineEndContext="#pop">
<DetectChar attribute="Types" context="#pop#pop" char="'" />
</context>
<context name="SL_types2" attribute="Types" lineEndContext="#pop">
<DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Tags" defStyleNum="dsKeyword" color="#ca60ca" selColor="#ffffff" bold="1" italic="0" />
<itemData name="Word" defStyleNum="dsKeyword" color="#0095ff" selColor="#ffffff" bold="1" italic="0" />
<itemData name="HTML Tag" defStyleNum="dsKeyword" color="#000000" selColor="#ffffff" bold="1" italic="0" />
<itemData name="Description" defStyleNum="dsString" color="#ff0000" />
<itemData name="Comment" defStyleNum="dsComment" color="#0000ff" selColor="#ffffff" italic="1" />
<itemData name="Region" defStyleNum="dsRegionMarker" />
<itemData name="Identifier" defStyleNum="dsOthers" />
<itemData name="HTML Comment" defStyleNum="dsComment" />
<itemData name="Types" defStyleNum="dsDataType" />
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="0" weakDeliminator="\$~" />
</general>
</language>

View File

@@ -1,569 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Fortran" version="1.11" kateversion="2.4" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.f90;*.F90;*.fpp;*.FPP;*.f95;*.F95;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="LGPL">
<!-- by Franchin Matteo, fnch@libero.it -->
<highlighting>
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<!-- * L I S T S * -->
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<list name="keywords">
<item> allocate </item>
<item> break </item>
<item> call </item>
<item> case </item>
<item> common </item>
<item> contains </item>
<item> continue </item>
<item> cycle </item>
<item> deallocate </item>
<item> default </item>
<item> do </item>
<item> forall </item>
<item> where </item>
<item> elsewhere </item>
<item> elseif </item>
<item> else </item>
<item> equivalence </item>
<item> exit </item>
<item> external </item>
<item> for </item>
<item> go </item>
<item> goto </item>
<item> if </item>
<item> implicit </item>
<item> include </item>
<item> interface </item>
<item> intrinsic </item>
<item> namelist </item>
<item> none </item>
<item> nullify </item>
<item> operator </item>
<item> assignment </item>
<item> pause </item>
<item> procedure </item>
<item> pure </item>
<item> elemental </item>
<item> record </item>
<item> recursive </item>
<item> result </item>
<item> return </item>
<item> select </item>
<item> selectcase </item>
<item> stop </item>
<item> then </item>
<item> to </item>
<item> use </item>
<item> only </item>
<item> entry </item>
<item> while </item>
</list>
<list name="io_functions">
<item> access </item>
<item> backspace </item>
<item> close </item>
<item> inquire </item>
<item> open </item>
<item> print </item>
<item> read </item>
<item> rewind </item>
<item> write </item>
<item> format </item>
</list>
<!-- Keywords inside read(...), write(...), backspace(...),
rewind(...), endfile(...), close(...) -->
<list name="io_keywords">
<item> unit </item>
<item> end </item>
<item> err </item>
<item> fmt </item>
<item> iostat </item>
<item> status </item>
<item> advance </item>
<item> size </item>
<item> eor </item>
</list>
<!-- Keywords inside open(...) -->
<list name="open_keywords">
<item> unit </item>
<item> iostat </item>
<item> err </item>
<item> file </item>
<item> status </item>
<item> access </item>
<item> form </item>
<item> recl </item>
<item> blank </item>
<item> position </item>
<item> action </item>
<item> delim </item>
<item> pad </item>
</list>
<!-- Keywords inside inquire(...) -->
<list name="inquire_keywords">
<item> unit </item>
<item> iostat </item>
<item> err </item>
<item> file </item>
<item> exist </item>
<item> opened </item>
<item> number </item>
<item> named </item>
<item> name </item>
<item> access </item>
<item> sequential </item>
<item> direct </item>
<item> form </item>
<item> formatted </item>
<item> unformatted </item>
<item> recl </item>
<item> nextrec </item>
<item> blank </item>
<item> position </item>
<item> action </item>
<item> read </item>
<item> write </item>
<item> readwrite </item>
<item> delim </item>
<item> pad </item>
</list>
<list name="types">
<item> double </item>
<item> precision </item>
<item> parameter </item>
<item> save </item>
<item> pointer </item>
<item> public </item>
<item> private </item>
<item> target </item>
<item> allocatable </item>
<item> optional </item>
<item> sequence </item>
</list>
<!-- There are 4 types of intrinsic procedures in Fortran 90:
1) Elemental procedures (elemental_procs);
2) Inquiry functions (inquiry_fn);
3) Transformational functions (transform_fn);
4) Non elemental subroutines (non_elem_subr);
Often mathematical functions have one generic form and many specific names!
If you use the generic form, the compiler will select the right function
to use depending on the type of the arguments.
But you can use also the specific names!
-->
<!-- E L E M E N T A L P R O C E D U R E S -->
<list name="elemental_procs">
<!-- Elemental functions that may convert -->
<item> abs </item> <!-- Generic form: abs -->
<item> cabs </item> <!-- Specific names for abs -->
<item> dabs </item>
<item> iabs </item>
<item> aimag </item>
<item> aint </item> <!-- Generic form: aint -->
<item> dint </item> <!-- Specific name for aint -->
<item> anint </item> <!-- Generic form: anint -->
<item> dnint </item> <!-- Specific name for anint -->
<item> ceiling </item>
<item> cmplx </item>
<item> dcmplx </item> <!-- (non standard) -->
<item> dimag </item> <!-- (non standard) -->
<item> floor </item>
<item> nint </item> <!-- Generic form: nint -->
<item> idnint </item><!-- Specific name for nint -->
<item> int </item> <!-- Generic form: int -->
<item> idint </item> <!-- Specific names for int -->
<item> ifix </item>
<item> real </item> <!-- Generic form: real -->
<item> float </item> <!-- Specific names for real -->
<item> sngl </item>
<item> dble </item>
<item> dreal </item> <!-- (non standard) -->
<item> aprime </item> <!-- 5 functions from fortran.xml -->
<item> dconjg </item> <!-- I don't know if they really belong to -->
<item> dfloat </item> <!-- the fortran 90/95 standard! -->
<item> ddmim </item>
<item> rand </item>
<!-- Elemental functions that do not convert -->
<item> modulo </item>
<item> conjg </item>
<item> dprod </item> <!-- dprod(x, y) is the specific name for x*y -->
<item> dim </item> <!-- Generic form: dim -->
<item> ddim </item> <!-- Specific names for dim -->
<item> idim </item>
<item> max </item> <!-- Generic form: max -->
<item> amax0 </item> <!-- Specific names for max -->
<item> amax1 </item>
<item> max0 </item>
<item> max1 </item>
<item> dmax1 </item>
<item> min </item> <!-- Generic form: min -->
<item> amin0 </item> <!-- Specific names for min -->
<item> amin1 </item>
<item> min0 </item>
<item> min1 </item>
<item> dmin1 </item>
<item> mod </item> <!-- Generic form: mod -->
<item> amod </item> <!-- Specific names for mod -->
<item> dmod </item>
<item> sign </item> <!-- Generic form: sign -->
<item> dsign </item> <!-- Specific names for sign -->
<item> isign </item>
<!-- Elemental mathematical functions -->
<item> acos </item> <!-- Generic form: acos -->
<item> dacos </item> <!-- Specific names for acos -->
<item> asin </item> <!-- Generic form: asin -->
<item> dasin </item> <!-- Specific names for asin -->
<item> atan </item> <!-- Generic form: atan -->
<item> datan </item> <!-- Specific names for atan -->
<item> atan2 </item> <!-- Generic form: atan2 -->
<item> datan2 </item> <!-- Specific names for atan2 -->
<item> cos </item> <!-- Generic form: cos -->
<item> ccos </item> <!-- Specific names for cos -->
<item> dcos </item>
<item> cosh </item> <!-- Generic form: cosh -->
<item> dcosh </item> <!-- Specific names for cosh -->
<item> exp </item> <!-- Generic form: exp -->
<item> cexp </item> <!-- Specific names for exp -->
<item> dexp </item>
<item> log </item> <!-- Generic form: log -->
<item> alog </item> <!-- Specific names for log -->
<item> dlog </item>
<item> clog </item>
<item> log10 </item> <!-- Generic form: log10 -->
<item> alog10 </item> <!-- Specific names for log10 -->
<item> dlog10 </item>
<item> sin </item> <!-- Generic form: sin -->
<item> csin </item> <!-- Specific names for sin -->
<item> dsin </item>
<item> sinh </item> <!-- Generic form: sinh -->
<item> dsinh </item> <!-- Specific name for sinh -->
<item> sqrt </item> <!-- Generic form: sqrt -->
<item> csqrt </item> <!-- Specific names for sqrt -->
<item> dsqrt </item>
<item> tan </item> <!-- Generic form: tan -->
<item> dtan </item> <!-- Generic form: dtan -->
<item> tanh </item> <!-- Generic form: tanh -->
<item> dtanh </item> <!-- Specific names for tanh -->
<!-- Elemental character and logical functions -->
<!-- Character-integer conversions -->
<item> achar </item>
<item> char </item>
<item> iachar </item>
<item> ichar </item>
<!-- Lexical comparison functions -->
<item> lge </item>
<item> lgt </item>
<item> lle </item>
<item> llt </item>
<!-- String-handling elemental functions -->
<item> adjustl </item>
<item> adjustr </item>
<item> index </item>
<item> len_trim </item>
<item> scan </item>
<item> verify </item>
<!-- Logical conversion -->
<item> logical </item>
<!-- Elemental functions to manipulate reals -->
<item> exponent </item>
<item> fraction </item>
<item> nearest </item>
<item> rrspacing </item>
<item> scale </item>
<item> set_exponent </item>
<item> spacing </item>
<!-- Bit manipulation elemental functions -->
<item> btest </item>
<item> iand </item>
<item> ibclr </item>
<item> ibits </item>
<item> ibset </item>
<item> ieor </item>
<item> ior </item>
<item> ishft </item>
<item> ishftc </item>
<item> not </item>
<!-- Bit manipulation elemental subroutine -->
<item> mvbits </item>
<!-- Merge elemental function -->
<item> merge </item>
</list>
<!-- I N Q U I R Y F U N C T I O N S -->
<list name="inquiry_fn">
<!-- Inquiry functions for any type -->
<item> associated </item>
<item> present </item>
<item> kind </item>
<!-- String-handling inquiry function -->
<item> len </item>
<!-- Numeric inquiry functions -->
<item> digits </item>
<item> epsilon </item>
<item> huge </item>
<item> maxexponent </item>
<item> minexponent </item>
<item> precision </item>
<item> radix </item>
<item> range </item>
<item> tiny </item>
<!-- Bit inquiry function -->
<item> bit_size </item>
<!-- Array inquiry functions -->
<item> allocated </item>
<item> lbound </item>
<item> ubound </item>
<item> shape </item>
<item> size </item>
</list>
<!-- T R A N S F O R M A T I O N A L F U N C T I O N S -->
<list name="transform_fn">
<!-- String-handling transformational functions -->
<item> repeat </item>
<item> trim </item>
<!-- Transformational functions for kind values -->
<item> selected_int_kind </item>
<item> selected_real_kind </item>
<!-- Transfer function -->
<item> transfer </item>
<!-- Vector and matrix multiplication functions -->
<item> dot_product </item>
<item> matmul </item>
<!-- Transformational functions that reduce arrays -->
<item> all </item>
<item> any </item>
<item> count </item>
<item> maxval </item>
<item> minval </item>
<item> product </item>
<item> sum </item>
<!-- Packing and unpacking arrays -->
<item> pack </item>
<item> unpack </item>
<!-- Transformational function for reshaping an array -->
<item> reshape </item>
<!-- Transformational function for replication -->
<item> spread </item>
<!-- Array shifting functions -->
<item> cshift </item>
<item> eoshift </item>
<!-- Matrix transpose -->
<item> transpose </item>
<!-- Transformational functions for geometric location -->
<item> maxloc </item>
<item> minloc </item>
</list>
<!-- N O N E L E M E N T A L S U B R O U T I N E S -->
<list name="non_elem_subr">
<!-- Real time clock -->
<item> date_and_time </item>
<item> system_clock </item>
<!-- Random numbers -->
<item> random_number </item>
<item> random_seed </item>
</list>
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<!-- * C O N T E X T S * -->
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="default" >
<IncludeRules context="find_strings" />
<IncludeRules context="find_decls" />
<IncludeRules context="find_intrinsics" />
<IncludeRules context="find_io_stmnts" />
<IncludeRules context="find_op_and_log" />
<IncludeRules context="find_numbers" />
<IncludeRules context="find_preprocessor" />
<IncludeRules context="find_comments" />
<IncludeRules context="find_symbols" />
<IncludeRules context="find_end_stmnts" />
<IncludeRules context="find_begin_stmnts" />
</context>
<!--************************END OF THE MAIN CONTEXT*************************-->
<!-- This context highlights preprocessor lines -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_preprocessor">
<RegExpr attribute="Preprocessor" context="#stay" String="(#|cDEC\$|CDEC\$).*$" column="0"/>
</context>
<!-- This context highlights operators and the logical values .true. .false. -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_op_and_log">
<RegExpr attribute="Logical" context="#stay" String="\.(true|false)\." insensitive="TRUE"/>
<RegExpr attribute="Operator" context="#stay" String="\.[A-Za-z]+\."/>
<RegExpr attribute="Operator" context="#stay" String="(==|/=|&lt;|&lt;=|&gt;|&gt;=)"/>
</context>
<!-- This context highlights comments -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_comments">
<RegExpr attribute="Comment" context="#stay" String="[cC\*].*$" column="0"/>
<RegExpr attribute="Comment" context="#stay" String="!.*$"/>
</context>
<!-- This context highlights symbols -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_symbols">
<Detect2Chars attribute="Keyword" context="#stay" char="*" char1="*"/>
<Detect2Chars attribute="Keyword" context="#stay" char="(" char1="/"/>
<Detect2Chars attribute="Keyword" context="#stay" char="/" char1=")"/>
<AnyChar attribute="Keyword" context="#stay" String="&amp;+-*/=?[]^{|}~"/>
<AnyChar attribute="Symbol" context="#stay" String="(),"/>
</context>
<!-- This context highlights items inside the parentesis of a function -->
<context attribute="Normal Text" lineEndContext="#stay" name="inside_func_paren">
<DetectChar attribute="Normal Text" context="inside_func_paren" char="("/>
<DetectChar attribute="Normal Text" context="#pop" char=")"/>
<IncludeRules context="find_strings" />
<IncludeRules context="find_intrinsics" />
<IncludeRules context="find_numbers" />
</context>
<!-- The following two contexts match input/output statements -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_io_stmnts">
<RegExpr attribute="IO Function" context="find_io_paren" String="\b(read|write|backspace|rewind|end\s*file|close)\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="IO Function" context="find_io_paren" String="\bopen\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="IO Function" context="find_io_paren" String="\binquire\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="IO Function" context="format_stmnt" String="\bformat\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="IO Function" context="#stay" String="\bend\s*file\b" insensitive="TRUE"/>
<keyword attribute="IO Function" context="#stay" String="io_functions"/>
</context>
<!-- This context matches parenthesis for the read, write, ... statements -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_io_paren">
<DetectChar attribute="IO Function" context="#stay" char="*"/>
<DetectChar attribute="Normal Text" context="inside_func_paren" char="("/>
<DetectChar attribute="IO Function" context="#pop" char=")"/>
<keyword attribute="IO Function" context="#stay" String="io_keywords"/>
<keyword attribute="IO Function" context="#stay" String="inquire_keywords"/>
<keyword attribute="IO Function" context="#stay" String="open_keywords"/>
<IncludeRules context="find_strings" />
<IncludeRules context="find_intrinsics" />
<IncludeRules context="find_numbers" />
<IncludeRules context="find_symbols" />
</context>
<!-- This context highlights the text inside the parenthesis of fortran statement -->
<context attribute="Normal Text" lineEndContext="#stay" name="format_stmnt">
<DetectChar attribute="IO Function" context="format_stmnt" char="("/>
<DetectChar attribute="IO Function" context="#pop" char=")"/>
<RegExpr attribute="IO Function" context="#stay" String="[0-9]*/" insensitive="TRUE"/>
<AnyChar attribute="IO Function" context="#stay" String=":"/>
<IncludeRules context="find_strings" />
<IncludeRules context="find_symbols" />
</context>
<!-- The following context matches the begin of program units -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_begin_stmnts">
<RegExpr attribute="Keyword" context="#stay" String="\bmodule\s+procedure\b" insensitive="TRUE"/>
<RegExpr attribute="Keyword" context="#stay" String="\b(program|subroutine|function|module|block\s*data)\b" insensitive="TRUE" beginRegion="Unit"/>
</context>
<!-- The following context matches the end of program units -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_end_stmnts">
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(program|subroutine|function|module|block\s*data)\b" insensitive="TRUE" endRegion="Unit"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\s*(do|if|select|where|forall|interface)\b" insensitive="TRUE"/>
<RegExpr attribute="Keyword" context="#stay" String="\bend\b" insensitive="TRUE" endRegion="Unit"/>
</context>
<!-- The following two contexts match declarations -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_decls">
<RegExpr attribute="Data Type" context="#stay" String="\binteger[\*]\d{1,2}" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="\breal[\*]\d{1,2}" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="\bcomplex[\*]\d{1,2}" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="\bend\s*type\b" insensitive="TRUE"/>
<keyword attribute="Data Type" context="#stay" String="types"/>
<RegExpr attribute="Data Type" context="#stay" String="^\s*data\b" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="find_paren" String="^\s*real\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="^\s*real(?![\w\*])" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="\bcharacter[*][0-9]+\b" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="find_paren" String="\b(type|integer|complex|character|logical|intent|dimension)\b\s*[(]" insensitive="TRUE"/>
<RegExpr attribute="Data Type" context="#stay" String="\b(type|integer|complex|character|logical|intent|dimension)\b" insensitive="TRUE"/>
<Detect2Chars attribute="Data Type" context="#stay" char=":" char1=":"/>
</context>
<!-- This context matches parenthesis in data type declarations, such as in 'real(...)'-->
<context attribute="Data Type" lineEndContext="#pop" name="find_paren">
<DetectChar attribute="Data Type" context="find_paren" char="("/>
<DetectChar attribute="Data Type" context="#pop" char=")"/>
</context>
<!-- The following context matches intrinsic procedures -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_intrinsics">
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<!-- INTRINSIC PROCEDURES -->
<keyword attribute="Elemental Procedure" context="#stay" String="elemental_procs"/>
<keyword attribute="Inquiry Function" context="#stay" String="inquiry_fn"/>
<keyword attribute="Transformational Function" context="#stay" String="transform_fn"/>
<keyword attribute="Non elemental subroutine" context="#stay" String="non_elem_subr"/>
</context>
<!-- The following context matches integer and real numbers -->
<context attribute="Normal Text" lineEndContext="#stay" name="find_numbers">
<!-- Floating-point numbers with optional kind -->
<RegExpr attribute="Float" context="#stay" String="[0-9]*\.[0-9]+([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\w_]*))?" insensitive="TRUE"/>
<RegExpr attribute="Float" context="#stay" String="\b[0-9]+\.[0-9]*([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\w_]*))?(?![a-z])" insensitive="TRUE"/>
<RegExpr attribute="Float" context="#stay" String="\b[0-9]+[de][+-]?[0-9]+([_]([0-9]+|[a-z][\w_]*))?" insensitive="TRUE"/>
<!-- Integers with optional kind specifier -->
<RegExpr attribute="Decimal" context="#stay" String="\b[0-9]+([_]([0-9]+|[a-zA-Z][\w_]*))?"/>
<!-- Integers in binary, octal and hexadecimal notations -->
<RegExpr attribute="Decimal" context="#stay" String="\b[bozx]([&apos;][0-9a-f]+[&apos;]|[&quot;][0-9a-f]+[&quot;])" insensitive="TRUE"/>
</context>
<!-- The following four contexts implement the complex string multi-line declarations -->
<!-- Matches STRINGS (there are 2 types of strings: '...' and "...") -->
<context attribute="String" lineEndContext="#stay" name="find_strings">
<DetectChar attribute="String" context="string_1" char="&apos;"/>
<DetectChar attribute="String" context="string_2" char="&quot;"/>
</context>
<context attribute="String" lineEndContext="#stay" name="string_1" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="String" context="#pop" String="[^&apos;]*&apos;"/>
<RegExpr attribute="Keyword" context="end_of_string" String="&amp;\s*$"/>
<RegExpr attribute="String" context="end_of_string" String=".*(?=&amp;\s*$)"/>
</context>
<context attribute="String" lineEndContext="#stay" name="string_2" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="String" context="#pop" String="[^&quot;]*&quot;"/>
<RegExpr attribute="Keyword" context="end_of_string" String="&amp;\s*$"/>
<RegExpr attribute="String" context="end_of_string" String=".*(?=&amp;\s*$)"/>
</context>
<context attribute="String" lineEndContext="#stay" name="end_of_string" fallthrough="true" fallthroughContext="#pop#pop">
<DetectSpaces />
<RegExpr attribute="Keyword" context="#stay" String="&amp;\s*$"/>
<DetectChar attribute="Keyword" context="#pop" char="&amp;" firstNonSpace="true"/>
<RegExpr attribute="Comment" context="#stay" String="(!.*)?$" firstNonSpace="true"/>
</context>
</contexts>
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<!-- * S T Y L E I T E M D E F I N I T I O N S * -->
<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
<itemData name="Operator" defStyleNum="dsKeyword" color="#008000" selColor="#ff00ff" bold="1" italic="0"/>
<itemData name="Logical" defStyleNum="dsOthers" color="#800080" selColor="#ffa0a0" bold="1" italic="0"/>
<itemData name="IO Function" defStyleNum="dsFunction" color="#006060" selColor="#ffffff" bold="0" italic="0"/>
<itemData name="Elemental Procedure" defStyleNum="dsKeyword" color="#600060" selColor="#ffa0ff" bold="1" italic="0"/>
<itemData name="Inquiry Function" defStyleNum="dsFunction" color="#000060" selColor="#a0a0ff" bold="1" italic="1"/>
<itemData name="Transformational Function" defStyleNum="dsFunction" color="#600060" selColor="#ffa0ff" bold="1" italic="0"/>
<itemData name="Non elemental subroutine" defStyleNum="dsKeyword" color="#600060" selColor="#ffa0ff" bold="1" italic="0"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="c"/>
<comment name="singleLine" start="!"/>
</comments>
<keywords casesensitive="0"/>
</general>
</language>

View File

@@ -1,207 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY name "[A-Za-z_:][\w.:_-]*">
<!ENTITY entref "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
]>
<language name="HTML" version="1.99" kateversion="2.4" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm" mimetype="text/html" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
<highlighting>
<contexts>
<context name="Start" attribute="Normal Text" lineEndContext="#stay">
<IncludeRules context="FindHTML" />
</context>
<context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces/>
<DetectIdentifier/>
<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
<StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
<RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
<RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="TRUE" beginRegion="style" />
<RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="TRUE" beginRegion="script" />
<RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="TRUE" beginRegion="pre" />
<RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="TRUE" beginRegion="div" />
<RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="TRUE" beginRegion="table" />
<RegExpr attribute="Element" context="El Open" String="&lt;ul\b" insensitive="TRUE" beginRegion="ul" />
<RegExpr attribute="Element" context="El Open" String="&lt;ol\b" insensitive="TRUE" beginRegion="ol" />
<RegExpr attribute="Element" context="El Open" String="&lt;dl\b" insensitive="TRUE" beginRegion="dl" />
<RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
<RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="TRUE" endRegion="pre" />
<RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="TRUE" endRegion="div" />
<RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="TRUE" endRegion="table" />
<RegExpr attribute="Element" context="El Close" String="&lt;/ul\b" insensitive="TRUE" endRegion="ul" />
<RegExpr attribute="Element" context="El Close" String="&lt;/ol\b" insensitive="TRUE" endRegion="ol" />
<RegExpr attribute="Element" context="El Close" String="&lt;/dl\b" insensitive="TRUE" endRegion="dl" />
<RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
<!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
<AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
</context>
<context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
<RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
<AnyChar attribute="Error" context="#stay" String="&amp;%" />
</context>
<context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Attribute" context="#stay" String="&name;" column="0"/>
<RegExpr attribute="Attribute" context="#stay" String="\s+&name;" />
<DetectChar attribute="Attribute" context="Value" char="=" />
</context>
<context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
</context>
<context name="Comment" attribute="Comment" lineEndContext="#stay">
<DetectSpaces/>
<IncludeRules context="##Alerts" />
<DetectIdentifier/>
<StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
<RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
</context>
<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces/>
<DetectIdentifier/>
<StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
<StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
</context>
<context name="PI" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
</context>
<context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
<DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
</context>
<context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
<IncludeRules context="FindDTDRules" />
<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="&gt;" />
<DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
<DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
</context>
<context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char="&quot;" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char="&apos;" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="El Open" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
<DetectChar attribute="Element" context="#pop" char="&gt;" />
<IncludeRules context="FindAttributes" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="El Close" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Element" context="#pop" char="&gt;" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="CSS" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
<DetectChar attribute="Element" context="CSS content" char="&gt;" />
<IncludeRules context="FindAttributes" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="TRUE" endRegion="style" />
<IncludeRules context="##CSS" includeAttrib="true"/>
</context>
<context name="JS" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
<DetectChar attribute="Element" context="JS content" char="&gt;" />
<IncludeRules context="FindAttributes" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="JS content" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="TRUE" endRegion="script" />
<RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="TRUE" />
<IncludeRules context="##JavaScript" includeAttrib="true"/>
</context>
<context name="JS comment close" attribute="Comment" lineEndContext="#pop">
<RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="TRUE" endRegion="script" />
<IncludeRules context="##Alerts" />
</context>
<context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
<DetectChar attribute="Value" context="Value DQ" char="&quot;" />
<DetectChar attribute="Value" context="Value SQ" char="&apos;" />
<DetectSpaces />
</context>
<context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
<IncludeRules context="FindEntityRefs" />
<RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />
<RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />
</context>
<context name="Value DQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="Value SQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
<IncludeRules context="FindEntityRefs" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
<itemData name="Processing Instruction" defStyleNum="dsKeyword" />
<itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
<itemData name="Element" defStyleNum="dsKeyword" />
<itemData name="Attribute" defStyleNum="dsOthers" />
<itemData name="Value" defStyleNum="dsString" color="#a00" />
<itemData name="EntityRef" defStyleNum="dsDecVal" />
<itemData name="PEntityRef" defStyleNum="dsDecVal" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="multiLine" start="&lt;!--" end="--&gt;" />
</comments>
</general>
</language>

File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Javadoc" version="1.04" kateversion="2.4" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
<highlighting>
<contexts>
<context name="Start" attribute="Normal Text" lineEndContext="#stay">
<IncludeRules context="FindJavadoc" />
</context>
<context name="FindJavadoc" attribute="Normal Text" lineEndContext="#stay">
<StringDetect attribute="JavadocFS" context="#stay" String="/**/"/>
<StringDetect attribute="JavadocFS" context="JavadocFSar" String="/**" beginRegion="Javadoc"/>
</context>
<context attribute="JavadocFS" lineEndContext="#stay" name="JavadocFSar">
<Detect2Chars attribute="JavadocFS" context="#pop" char="*" char1="/" endRegion="Javadoc"/>
<RegExpr attribute="JavadocFS" context="Javadocar" String="(!|\?)" />
<RegExpr attribute="JavadocFS" context="Javadocar" String="(\.\s*$)" />
<RegExpr attribute="JavadocFS" context="Javadocar" String="(\.\s)(?![\da-z])" />
<RegExpr attribute="JavadocFS" context="Javadocar" String="\**\s*(?=@(author|deprecated|exception|param|return|see|serial|serialData|serialField|since|throws|version)(\s|$))" firstNonSpace="true"/>
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code " />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code&#009;" />
<StringDetect attribute="InlineTag" context="#stay" String="{@docRoot}" />
<StringDetect attribute="InlineTag" context="#stay" String="{@inheritDoc}" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link&#009;" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain&#009;" />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal " />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal&#009;" />
<StringDetect attribute="InlineTag" context="#stay" String="{@value}" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />
<IncludeRules context="##HTML"/>
</context>
<context attribute="Javadoc" lineEndContext="#stay" name="Javadocar">
<Detect2Chars attribute="JavadocFS" context="#pop#pop" char="*" char1="/" endRegion="Javadoc"/>
<RegExpr attribute="JavadocFS" context="#stay" String="\*+(?!/)" firstNonSpace="true"/>
<StringDetect attribute="BlockTag" context="#stay" String="@author " />
<StringDetect attribute="BlockTag" context="#stay" String="@deprecated " />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@exception " />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@param " />
<StringDetect attribute="BlockTag" context="#stay" String="@return " />
<StringDetect attribute="BlockTag" context="SeeTag" String="@see "/>
<StringDetect attribute="BlockTag" context="#stay" String="@serial " />
<StringDetect attribute="BlockTag" context="#stay" String="@serialData " />
<StringDetect attribute="BlockTag" context="#stay" String="@serialField " />
<StringDetect attribute="BlockTag" context="#stay" String="@since " />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@throws " />
<StringDetect attribute="BlockTag" context="#stay" String="@version " />
<StringDetect attribute="BlockTag" context="#stay" String="@author&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@deprecated&#009;" />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@exception&#009;" />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@param&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@return&#009;" />
<StringDetect attribute="BlockTag" context="SeeTag" String="@see&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@serial&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@serialData&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@serialField&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@since&#009;" />
<StringDetect attribute="BlockTag" context="JavadocParam" String="@throws&#009;" />
<StringDetect attribute="BlockTag" context="#stay" String="@version&#009;" />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code " />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code&#009;" />
<StringDetect attribute="InlineTag" context="#stay" String="{@docRoot}" />
<StringDetect attribute="InlineTag" context="#stay" String="{@inheritDoc}" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link&#009;" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain&#009;" />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal " />
<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal&#009;" />
<StringDetect attribute="InlineTag" context="#stay" String="{@value}" />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " />
<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />
<IncludeRules context="##HTML"/>
</context>
<context attribute="Javadoc" lineEndContext="#pop" name="JavadocParam">
<DetectSpaces />
<RegExpr attribute="JavadocParam" context="#pop#pop" String="\S*(?=\*/)" />
<RegExpr attribute="JavadocParam" context="#pop" String="\S*(\s|$)" />
</context>
<context attribute="InlineTag" lineEndContext="#pop" name="InlineTagar">
<DetectChar attribute="InlineTag" context="#pop" char="}" />
<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
<IncludeRules context="##HTML"/>
</context>
<context attribute="InlineTag" lineEndContext="#pop" name="LiteralTagar">
<DetectChar attribute="InlineTag" context="#pop" char="}" />
<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
</context>
<context attribute="SeeTag" lineEndContext="#pop" name="SeeTag">
<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
<IncludeRules context="##HTML"/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="BlockTag" defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="InlineTag" defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="0" italic="0"/>
<itemData name="JavadocParam" defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>
<itemData name="SeeTag" defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>
<itemData name="JavadocFS" defStyleNum="dsComment" color="#008000" selColor="#FFFFFF" bold="1" italic="0"/>
<itemData name="Javadoc" defStyleNum="dsComment" color="#008000" selColor="#FFFFFF"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="1"/>
</general>
</language>

View File

@@ -1,503 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- Author: Anders Lund <anders@alweb.dk> //-->
<!-- Minor changes: Joseph Wenninger <jowenn@kde.org> //-->
<!-- Full JavaScript 1.0 support by Whitehawk Stormchaser //-->
<language name="JavaScript" version="1.13" kateversion="2.3" section="Scripts" extensions="*.js" mimetype="text/x-javascript;application/x-javascript" author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license="">
<highlighting>
<list name="keywords">
<item> if </item>
<item> else </item>
<item> for </item>
<item> in </item>
<item> while </item>
<item> do </item>
<item> continue </item>
<item> break </item>
<item> with </item>
<item> try </item>
<item> catch </item>
<item> finally </item>
<item> switch </item>
<item> case </item>
<item> new </item>
<item> var </item>
<item> function </item>
<item> return </item>
<item> delete </item>
<item> true </item>
<item> false </item>
<item> void </item>
<item> throw </item>
<item> typeof </item>
<item> const </item>
<item> default </item>
</list>
<list name="functions">
<item> escape </item>
<item> isFinite </item>
<item> isNaN </item>
<item> Number </item>
<item> parseFloat </item>
<item> parseInt </item>
<item> reload </item>
<item> taint </item>
<item> unescape </item>
<item> untaint </item>
<item> write </item>
</list>
<list name="objects">
<item>Anchor</item>
<item>Applet</item>
<item>Area</item>
<item>Array</item>
<item>Boolean</item>
<item>Button</item>
<item>Checkbox</item>
<item>Date</item>
<item>document</item>
<item>window</item>
<item>Image</item>
<item>FileUpload</item>
<item>Form</item>
<item>Frame</item>
<item>Function</item>
<item>Hidden</item>
<item>Link</item>
<item>MimeType</item>
<item>Math</item>
<item>Max</item>
<item>Min</item>
<item>Layer</item>
<item>navigator</item>
<item>Object</item>
<item>Password</item>
<item>Plugin</item>
<item>Radio</item>
<item>RegExp</item>
<item>Reset</item>
<item>Screen</item>
<item>Select</item>
<item>String</item>
<item>Text</item>
<item>Textarea</item>
<item>this</item>
<item>Window</item>
</list>
<list name="math">
<item> abs </item>
<item> acos </item>
<item> asin </item>
<item> atan </item>
<item> atan2 </item>
<item> ceil </item>
<item> cos </item>
<item> ctg </item>
<item> E </item>
<item> exp </item>
<item> floor </item>
<item> LN2 </item>
<item> LN10 </item>
<item> log </item>
<item> LOG2E </item>
<item> LOG10E </item>
<item> PI </item>
<item> pow </item>
<item> round </item>
<item> sin </item>
<item> sqrt </item>
<item> SQRT1_2 </item>
<item> SQRT2 </item>
<item> tan </item>
</list>
<list name="events">
<item>onAbort</item>
<item>onBlur</item>
<item>onChange</item>
<item>onClick</item>
<item>onError</item>
<item>onFocus</item>
<item>onLoad</item>
<item>onMouseOut</item>
<item>onMouseOver</item>
<item>onReset</item>
<item>onSelect</item>
<item>onSubmit</item>
<item>onUnload</item>
</list>
<list name="methods">
<item>above</item>
<item>action</item>
<item>alinkColor</item>
<item>alert</item>
<item>anchor</item>
<item>anchors</item>
<item>appCodeName</item>
<item>applets</item>
<item>apply</item>
<item>appName</item>
<item>appVersion</item>
<item>argument</item>
<item>arguments</item>
<item>arity</item>
<item>availHeight</item>
<item>availWidth</item>
<item>back</item>
<item>background</item>
<item>below</item>
<item>bgColor</item>
<item>border</item>
<item>big</item>
<item>blink</item>
<item>blur</item>
<item>bold</item>
<item>border</item>
<item>call</item>
<item>caller</item>
<item>charAt</item>
<item>charCodeAt</item>
<item>checked</item>
<item>clearInterval</item>
<item>clearTimeout</item>
<item>click</item>
<item>clip</item>
<item>close</item>
<item>closed</item>
<item>colorDepth</item>
<item>complete</item>
<item>compile</item>
<item>constructor</item>
<item>confirm</item>
<item>cookie</item>
<item>current</item>
<item>cursor</item>
<item>data</item>
<item>defaultChecked</item>
<item>defaultSelected</item>
<item>defaultStatus</item>
<item>defaultValue</item>
<item>description</item>
<item>disableExternalCapture</item>
<item>domain</item>
<item>elements</item>
<item>embeds</item>
<item>enabledPlugin</item>
<item>enableExternalCapture</item>
<item>encoding</item>
<item>eval</item>
<item>exec</item>
<item>fgColor</item>
<item>filename</item>
<item>find</item>
<item>fixed</item>
<item>focus</item>
<item>fontcolor</item>
<item>fontsize</item>
<item>form</item>
<item>forms</item>
<item>formName</item>
<item>forward</item>
<item>frames</item>
<item>fromCharCode</item>
<item>getDate</item>
<item>getDay</item>
<item>getHours</item>
<item>getMiliseconds</item>
<item>getMinutes</item>
<item>getMonth</item>
<item>getSeconds</item>
<item>getSelection</item>
<item>getTime</item>
<item>getTimezoneOffset</item>
<item>getUTCDate</item>
<item>getUTCDay</item>
<item>getUTCFullYear</item>
<item>getUTCHours</item>
<item>getUTCMilliseconds</item>
<item>getUTCMinutes</item>
<item>getUTCMonth</item>
<item>getUTCSeconds</item>
<item>getYear</item>
<item>global</item>
<item>go</item>
<item>hash</item>
<item>height</item>
<item>history</item>
<item>home</item>
<item>host</item>
<item>hostname</item>
<item>href</item>
<item>hspace</item>
<item>ignoreCase</item>
<item>images</item>
<item>index</item>
<item>indexOf</item>
<item>innerHeight</item>
<item>innerWidth</item>
<item>input</item>
<item>italics</item>
<item>javaEnabled</item>
<item>join</item>
<item>language</item>
<item>lastIndex</item>
<item>lastIndexOf</item>
<item>lastModified</item>
<item>lastParen</item>
<item>layers</item>
<item>layerX</item>
<item>layerY</item>
<item>left</item>
<item>leftContext</item>
<item>length</item>
<item>link</item>
<item>linkColor</item>
<item>links</item>
<item>location</item>
<item>locationbar</item>
<item>load</item>
<item>lowsrc</item>
<item>match</item>
<item>MAX_VALUE</item>
<item>menubar</item>
<item>method</item>
<item>mimeTypes</item>
<item>MIN_VALUE</item>
<item>modifiers</item>
<item>moveAbove</item>
<item>moveBelow</item>
<item>moveBy</item>
<item>moveTo</item>
<item>moveToAbsolute</item>
<item>multiline</item>
<item>name</item>
<item>NaN</item>
<item>NEGATIVE_INFINITY</item>
<item>negative_infinity</item>
<item>next</item>
<item>open</item>
<item>opener</item>
<item>options</item>
<item>outerHeight</item>
<item>outerWidth</item>
<item>pageX</item>
<item>pageY</item>
<item>pageXoffset</item>
<item>pageYoffset</item>
<item>parent</item>
<item>parse</item>
<item>pathname</item>
<item>personalbar</item>
<item>pixelDepth</item>
<item>platform</item>
<item>plugins</item>
<item>pop</item>
<item>port</item>
<item>POSITIVE_INFINITY</item>
<item>positive_infinity</item>
<item>preference</item>
<item>previous</item>
<item>print</item>
<item>prompt</item>
<item>protocol</item>
<item>prototype</item>
<item>push</item>
<item>referrer</item>
<item>refresh</item>
<item>releaseEvents</item>
<item>reload</item>
<item>replace</item>
<item>reset</item>
<item>resizeBy</item>
<item>resizeTo</item>
<item>reverse</item>
<item>rightContext</item>
<item>screenX</item>
<item>screenY</item>
<item>scroll</item>
<item>scrollbar</item>
<item>scrollBy</item>
<item>scrollTo</item>
<item>search</item>
<item>select</item>
<item>selected</item>
<item>selectedIndex</item>
<item>self</item>
<item>setDate</item>
<item>setHours</item>
<item>setMinutes</item>
<item>setMonth</item>
<item>setSeconds</item>
<item>setTime</item>
<item>setTimeout</item>
<item>setUTCDate</item>
<item>setUTCDay</item>
<item>setUTCFullYear</item>
<item>setUTCHours</item>
<item>setUTCMilliseconds</item>
<item>setUTCMinutes</item>
<item>setUTCMonth</item>
<item>setUTCSeconds</item>
<item>setYear</item>
<item>shift</item>
<item>siblingAbove</item>
<item>siblingBelow</item>
<item>small</item>
<item>sort</item>
<item>source</item>
<item>splice</item>
<item>split</item>
<item>src</item>
<item>status</item>
<item>statusbar</item>
<item>strike</item>
<item>sub</item>
<item>submit</item>
<item>substr</item>
<item>substring</item>
<item>suffixes</item>
<item>sup</item>
<item>taintEnabled</item>
<item>target</item>
<item>test</item>
<item>text</item>
<item>title</item>
<item>toGMTString</item>
<item>toLocaleString</item>
<item>toLowerCase</item>
<item>toolbar</item>
<item>toSource</item>
<item>toString</item>
<item>top</item>
<item>toUpperCase</item>
<item>toUTCString</item>
<item>type</item>
<item>URL</item>
<item>unshift</item>
<item>unwatch</item>
<item>userAgent</item>
<item>UTC</item>
<item>value</item>
<item>valueOf</item>
<item>visibility</item>
<item>vlinkColor</item>
<item>vspace</item>
<item>width</item>
<item>watch</item>
<item>which</item>
<item>width</item>
<item>write</item>
<item>writeln</item>
<item>x</item>
<item>y</item>
<item>zIndex</item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<DetectSpaces/>
<StringDetect attribute="Region Marker" context="region_marker" String="//BEGIN" beginRegion="Region1"/>
<StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1"/>
<keyword attribute="Keyword" context="#stay" String="keywords" />
<keyword attribute="Function" context="#stay" String="functions" />
<keyword attribute="Objects" context="#stay" String="objects" />
<keyword attribute="Math" context="#stay" String="math" />
<keyword attribute="Events" context="#stay" String="events" />
<keyword attribute="Data Type" context="#stay" String="methods" />
<DetectIdentifier/>
<Float attribute="Float" context="#stay" />
<Int attribute="Decimal" context="#stay" />
<DetectChar attribute="String" context="String" char="&quot;"/>
<DetectChar attribute="String" context="String 1" char="'"/>
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" beginRegion="Comment"/>
<RegExpr attribute="Normal Text" context="(Internal regex catch)" String="[=?:]" />
<RegExpr attribute="Normal Text" context="(Internal regex catch)" String="\(" />
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;"/>
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<DetectIdentifier/>
<HlCStringChar attribute="String Char" context="#stay"/>
<LineContinue attribute="String" context="#stay"/>
<DetectChar attribute="String" context="#pop" char="&quot;"/>
</context>
<context attribute="String Char" lineEndContext="#pop" name="String 1">
<DetectIdentifier/>
<HlCStringChar attribute="String Char" context="#stay"/>
<LineContinue attribute="String" context="#stay"/>
<DetectChar attribute="String Char" context="#pop" char="'"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
</context>
<context attribute="Comment" lineEndContext="#stay" name="Multi/inline Comment">
<IncludeRules context="##Alerts" />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
</context>
<context attribute="Regular Expression" lineEndContext="#stay" name="Regular Expression">
<RegExpr attribute="Regular Expression" context="#pop#pop#pop" String="/[ig]{0,2}" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[bB]" />
<RegExpr attribute="Pattern Character Class" context="#stay" String="\\[nrtvfDdSsWw]" />
<DetectChar attribute="Pattern Character Class" context="(charclass caret first check)" char="[" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\." />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=/)" />
<AnyChar attribute="Pattern Internal Operator" context="#stay" String="?+*()|" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="(Internal regex catch)" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Normal Text" context="#stay" String="\s*" />
<RegExpr attribute="Regular Expression" context="#pop" String="//(?=;)" />
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="/" />
<Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" />
<DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
</context>
<context attribute="Pattern Character Class" lineEndContext="#stay" name="Regular Expression Character Class">
<RegExpr attribute="Pattern Character Class" context="#stay" String="\\[\[\]]" />
<DetectChar attribute="Pattern Character Class" context="#pop#pop" char="]" />
</context>
<context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthrough="true" fallthroughContext="Regular Expression">
<DetectChar attribute="Pattern Internal Operator" context="Regular Expression" char="^" />
</context>
<context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthrough="true" fallthroughContext="Regular Expression Character Class">
<DetectChar attribute="Pattern Internal Operator" context="Regular Expression Character Class" char="^" />
</context>
<context name="region_marker" attribute="Region Marker" lineEndContext="#pop" >
<DetectIdentifier />
<DetectSpaces />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Function" defStyleNum="dsFunction"/>
<itemData name="Objects" defStyleNum="dsKeyword" color="#008000" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Math" defStyleNum="dsKeyword" color="#DBA716" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Events" defStyleNum="dsKeyword" color="#F766D5" selColor="#00ffff" bold="0" italic="0"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Char" defStyleNum="dsChar"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Regular Expression" defStyleNum="dsOthers" />
<itemData name="Pattern Internal Operator" defStyleNum="dsFloat" />
<itemData name="Pattern Character Class" defStyleNum="dsBaseN" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" />
<comment name="multiLine" start="/*" end="*/" />
</comments>
<keywords casesensitive="1" />
</general>
</language>

View File

@@ -1,128 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Objective-C" version="1.07" kateversion="2.3" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">
<highlighting>
<list name="keywords">
<item> break </item>
<item> case </item>
<item> continue </item>
<item> default </item>
<item> do </item>
<item> else </item>
<item> enum </item>
<item> extern </item>
<item> for </item>
<item> goto </item>
<item> if </item>
<item> return </item>
<item> sizeof </item>
<item> struct </item>
<item> switch </item>
<item> typedef </item>
<item> union </item>
<item> while </item>
<item> @class </item>
<item> @defs </item>
<item> @encode </item>
<item> @end </item>
<item> @implementation </item>
<item> @interface </item>
<item> @private </item>
<item> @protected </item>
<item> @protocol </item>
<item> @public </item>
<item> @selector </item>
<item> self </item>
<item> super </item>
</list>
<list name="types">
<item> auto </item>
<item> char </item>
<item> const </item>
<item> double </item>
<item> float </item>
<item> int </item>
<item> long </item>
<item> register </item>
<item> short </item>
<item> signed </item>
<item> static </item>
<item> unsigned </item>
<item> void </item>
<item> volatile </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Default">
<keyword attribute="Keyword" context="#stay" String="keywords"/>
<keyword attribute="Data Type" context="#stay" String="types"/>
<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
<Float attribute="Float" context="#stay">
<AnyChar String="fF" attribute="Float" context="#stay"/>
</Float>
<HlCOct attribute="Octal" context="#stay"/>
<HlCHex attribute="Hex" context="#stay"/>
<Int attribute="Decimal" context="#stay" >
<StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
</Int>
<HlCChar attribute="Char" context="#stay"/>
<DetectChar attribute="String" context="String" char="&quot;"/>
<Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*"/>
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
<RegExpr attribute="Preprocessor" context="Preprocessor" String="^#"/>
<Detect2Chars attribute="String" context="String" char="@" char1="&quot;" />
</context>
<context attribute="String" lineEndContext="#pop" name="String">
<LineContinue attribute="String" context="#stay"/>
<HlCStringChar attribute="String Char" context="#stay"/>
<DetectChar attribute="String" context="#pop" char="&quot;"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="SingleLineComment"/>
<context attribute="Comment" lineEndContext="#stay" name="MultiLineComment">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
</context>
<context attribute="Preprocessor" lineEndContext="Default" name="Preprocessor">
<LineContinue attribute="Preprocessor" context="#stay"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
<RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
<IncludeRules context="##Doxygen" />
<Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
<Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
</context>
<context attribute="Comment" lineEndContext="#stay" name="MultiLineCommentPrep">
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/"/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Char" defStyleNum="dsChar"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
<itemData name="Prep. Lib" defStyleNum="dsOthers"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="//" />
<comment name="multiLine" start="/*" end="*/" />
</comments>
<keywords casesensitive="1" />
</general>
</language>

View File

@@ -1,833 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
This file is part of the KDE project
Copyright (C) 2001, 2002, 2003, 2004 Anders Lund <anders@alweb.dk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*** NOTICE ***
This file is maintained by Anders Lund <anders@alweb.dk>
Please do not commit changes without checking with me.
*** TODO ***
Work on the comment support in the REPLACEMENT part of s/// - we may support
the comment, if the line remainder does not contain the delimiter char.
Try to support ?PATTERN? (at least in one line, like if "\?(?=.*\?)" matches).
parse code behind '<<HEREDELIMITER' as code, or at least ignore it, to eol.
Requires the ability to pass the delimiter through a context level.
find a here delimiter like '*END*' (Shell.pm). Requires that when a regex is
inserting a dynamic string, it escapes [*(){}$[]
support for more regex extensions, such as (?>), (?{}), (?(cond)yes|no)
Enhance tr/// and y/// support.
-->
<language name="Perl" version="1.23" kateversion="2.4" section="Scripts" extensions="*.pl;*.pm" mimetype="application/x-perl;text/x-perl" author="Anders Lund (anders@alweb.dk)" license="LGPL">
<highlighting>
<list name="keywords">
<item> if </item>
<item> unless </item>
<item> else </item>
<item> elsif </item>
<item> while </item>
<item> until </item>
<item> for </item>
<item> each </item>
<item> foreach </item>
<item> next </item>
<item> last </item>
<item> break </item>
<item> continue </item>
<item> return </item>
<item> use </item>
<item> no </item>
<item> require </item>
<item> my </item>
<item> our </item>
<item> local </item>
<item> BEGIN </item>
<item> END </item>
<item>require</item>
<item> package </item>
<item> sub </item>
<item> do </item>
<item> __END__ </item>
<item> __DATA__ </item>
<item> __FILE__ </item>
<item> __LINE__ </item>
<item> __PACKAGE__ </item>
</list>
<list name="operators">
<item> = </item>
<item> != </item>
<item> ~= </item>
<item> += </item>
<item> -= </item>
<item> *= </item>
<item> /= </item>
<item> **= </item>
<item> |= </item>
<item> ||= </item>
<item> &amp;= </item>
<item> &amp;&amp;= </item>
<item> ?= </item>
<item> + </item>
<item> - </item>
<item> * </item>
<!-- <item> / </item>//-->
<item> % </item>
<item> || </item>
<item> &amp;&amp; </item>
<item> | </item>
<item> &amp; </item>
<item> &lt; </item>
<item> &lt;&lt; </item>
<item> &gt; </item>
<item> &gt;&gt; </item>
<item> ^ </item>
<item> -&gt; </item>
<item> =&gt; </item>
<item> . </item>
<item> , </item>
<item> ; </item>
<item> :: </item>
<item> \ </item>
<item> and </item>
<item> or </item>
<item> not </item>
<item> eq </item>
<item> ne </item>
<item> lt </item>
<item> gt </item>
<item> le </item>
<item> ge </item>
<item> cmp </item>
</list>
<list name="functions">
<item>abs</item>
<item>accept</item>
<item>alarm</item>
<item>atan2</item>
<item>bind</item>
<item>binmode</item>
<item>bless</item>
<item>caller</item>
<item>chdir</item>
<item>chmod</item>
<item>chomp</item>
<item>chop</item>
<item>chown</item>
<item>chr</item>
<item>chroot</item>
<item>close</item>
<item>closedir</item>
<item>connect</item>
<item>cos</item>
<item>crypt</item>
<item>dbmclose</item>
<item>dbmopen</item>
<item>defined</item>
<item>delete</item>
<item>die</item>
<item>dump</item>
<item>endgrent</item>
<item>endhostent</item>
<item>endnetent</item>
<item>endprotoent</item>
<item>endpwent</item>
<item>endservent</item>
<item>eof</item>
<item>eval</item>
<item>exec</item>
<item>exists</item>
<item>exit</item>
<item>exp</item>
<item>fcntl</item>
<item>fileno</item>
<item>flock</item>
<item>fork</item>
<item>format</item>
<item>formline</item>
<item>getc</item>
<item>getgrent</item>
<item>getgrgid</item>
<item>getgrnam</item>
<item>gethostbyaddr</item>
<item>gethostbyname</item>
<item>gethostent</item>
<item>getlogin</item>
<item>getnetbyaddr</item>
<item>getnetbyname</item>
<item>getnetent</item>
<item>getpeername</item>
<item>getpgrp</item>
<item>getppid</item>
<item>getpriority</item>
<item>getprotobyname</item>
<item>getprotobynumber</item>
<item>getprotoent</item>
<item>getpwent</item>
<item>getpwnam</item>
<item>getpwuid</item>
<item>getservbyname</item>
<item>getservbyport</item>
<item>getservent</item>
<item>getsockname</item>
<item>getsockopt</item>
<item>glob</item>
<item>gmtime</item>
<item>goto</item>
<item>grep</item>
<item>hex</item>
<item>import</item>
<item>index</item>
<item>int</item>
<item>ioctl</item>
<item>join</item>
<item>keys</item>
<item>kill</item>
<item>last</item>
<item>lc</item>
<item>lcfirst</item>
<item>length</item>
<item>link</item>
<item>listen</item>
<item>localtime</item>
<item>lock</item>
<item>log</item>
<item>lstat</item>
<item>map</item>
<item>mkdir</item>
<item>msgctl</item>
<item>msgget</item>
<item>msgrcv</item>
<item>msgsnd</item>
<item>oct</item>
<item>open</item>
<item>opendir</item>
<item>ord</item>
<item>pack</item>
<item>package</item>
<item>pipe</item>
<item>pop</item>
<item>pos</item>
<item>print</item>
<item>printf</item>
<item>prototype</item>
<item>push</item>
<item>quotemeta</item>
<item>rand</item>
<item>read</item>
<item>readdir</item>
<item>readline</item>
<item>readlink</item>
<item>recv</item>
<item>redo</item>
<item>ref</item>
<item>rename</item>
<item>reset</item>
<item>return</item>
<item>reverse</item>
<item>rewinddir</item>
<item>rindex</item>
<item>rmdir</item>
<item>scalar</item>
<item>seek</item>
<item>seekdir</item>
<item>select</item>
<item>semctl</item>
<item>semget</item>
<item>semop</item>
<item>send</item>
<item>setgrent</item>
<item>sethostent</item>
<item>setnetent</item>
<item>setpgrp</item>
<item>setpriority</item>
<item>setprotoent</item>
<item>setpwent</item>
<item>setservent</item>
<item>setsockopt</item>
<item>shift</item>
<item>shmctl</item>
<item>shmget</item>
<item>shmread</item>
<item>shmwrite</item>
<item>shutdown</item>
<item>sin</item>
<item>sleep</item>
<item>socket</item>
<item>socketpair</item>
<item>sort</item>
<item>splice</item>
<item>split</item>
<item>sprintf</item>
<item>sqrt</item>
<item>srand</item>
<item>stat</item>
<item>study</item>
<item>sub</item>
<item>substr</item>
<item>symlink</item>
<item>syscall</item>
<item>sysread</item>
<item>sysseek</item>
<item>system</item>
<item>syswrite</item>
<item>tell</item>
<item>telldir</item>
<item>tie</item>
<item>time</item>
<item>times</item>
<item>truncate</item>
<item>uc</item>
<item>ucfirst</item>
<item>umask</item>
<item>undef</item>
<item>unlink</item>
<item>unpack</item>
<item>unshift</item>
<item>untie</item>
<item>utime</item>
<item>values</item>
<item>vec</item>
<item>wait</item>
<item>waitpid</item>
<item>wantarray</item>
<item>warn</item>
<item>write</item>
</list>
<list name="pragmas">
<item>strict</item>
<item>english</item>
<item>warnings</item>
<item>vars</item>
<item>subs</item>
<item>utf8</item>
<item>sigtrap</item>
<item>locale</item>
<item>open</item>
<item>less</item>
<item>integer</item>
<item>filetest</item>
<item>constant</item>
<item>bytes</item>
<item>diagnostics</item>
</list>
<contexts>
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Keyword" context="#stay" String="^#!\/.*" />
<StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
<StringDetect attribute="Keyword" context="#stay" String="__END__" firstNonSpace="true"/>
<RegExpr attribute="Keyword" context="sub_name_def" String="\bsub\s+" />
<keyword attribute="Keyword" context="#stay" String="keywords" />
<keyword attribute="Operator" context="#stay" String="operators" />
<keyword attribute="Function" context="#stay" String="functions" />
<keyword attribute="Pragma" context="#stay" String="pragmas" />
<RegExpr attribute="Pod" context="pod" String="\=(?:head[1-6]|over|back|item|for|begin|end|pod)(\s|$)" column="0" beginRegion="POD"/>
<DetectSpaces />
<DetectChar attribute="Comment" context="comment" char="#" />
<HlCOct attribute="Octal" context="slash_safe_escape" />
<HlCHex attribute="Hex" context="slash_safe_escape" />
<Float attribute="Float" context="slash_safe_escape" />
<Int attribute="Decimal" context="slash_safe_escape" />
<RegExpr attribute="Normal Text" context="#stay" String="\\([&quot;'])[^\1]" />
<Detect2Chars attribute="Normal Text" context="#stay" char="&amp;" char1="'" /><!-- ??? -->
<DetectChar attribute="Operator" context="ip_string" char="&quot;" beginRegion="String" />
<DetectChar attribute="Operator" context="string" char="'" beginRegion="String"/>
<DetectChar attribute="Operator" context="Backticked" char="`" />
<RegExpr attribute="Normal Text" context="find_variable" String="(?:[$@]\S|%[\w{]|\*[^\d\*{\$@%=(])" lookAhead="true" />
<RegExpr attribute="Keyword" context="#stay" String="&lt;[A-Z0-9_]+&gt;" />
<RegExpr attribute="Operator" context="find_here_document" String="\s*&lt;&lt;(?=\w+|\s*[&quot;'])" beginRegion="HereDocument" />
<RegExpr attribute="Normal Text" context="#stay" String="\s*\}\s*/" endRegion="Block"/>
<RegExpr attribute="Normal Text" context="#stay" String="\s*[)]\s*/" />
<RegExpr attribute="Function" context="sub_name_def" String="\w+::" />
<RegExpr attribute="Normal Text" context="#stay" String="\w+[=]" />
<RegExpr attribute="Operator" context="find_quoted" String="\bq(?=[qwx]?\s*[^\w\s])" />
<RegExpr attribute="Operator" context="find_subst" String="\bs(?=\s*[^\w\s\]})])" />
<RegExpr attribute="Operator" context="tr" String="\b(?:tr|y)\s*(?=[^\w\s\]})])" />
<RegExpr attribute="Operator" context="find_pattern" String="\b(?:m|qr)(?=\s*[^\w\s\]})])" />
<RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*/" />
<RegExpr attribute="Normal Text" context="#stay" String="[&lt;&gt;&quot;':]/" />
<DetectChar attribute="Operator" context="pattern_slash" char="/" beginRegion="Pattern" />
<RegExpr attribute="Operator" context="#stay" String="-[rwxoRWXOeszfdlpSbctugkTBMAC]" />
<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Block" />
<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Block" />
</context>
<!-- ====== quoted construct central ===== -->
<context name="find_quoted" attribute="Normal Text" lineEndContext="#stay" >
<!-- NOTE - qx'not interpolated regex' does not cover newline between "qr" and "'" -->
<RegExpr attribute="Operator" context="string_6" String="x\s*(')" beginRegion="String" />
<AnyChar attribute="Operator" context="find_qqx" String="qx" />
<DetectChar attribute="Operator" context="find_qw" char="w" />
<DetectChar attribute="Operator" context="string_2" char="(" beginRegion="String" />
<DetectChar attribute="Operator" context="string_3" char="{" beginRegion="String" />
<DetectChar attribute="Operator" context="string_4" char="[" beginRegion="String" />
<DetectChar attribute="Operator" context="string_5" char="&lt;" beginRegion="String" />
<RegExpr attribute="Operator" context="string_6" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="String" />
<RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
</context>
<context name="find_qqx" attribute="Normal Text" lineEndContext="#stay" >
<DetectChar attribute="Operator" context="ip_string_2" char="(" beginRegion="String" />
<DetectChar attribute="Operator" context="ip_string_3" char="{" beginRegion="String" />
<DetectChar attribute="Operator" context="ip_string_4" char="[" beginRegion="String" />
<DetectChar attribute="Operator" context="ip_string_5" char="&lt;" beginRegion="String" />
<RegExpr attribute="Operator" context="ip_string_6" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="String" />
<RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
</context>
<context name="find_qw" attribute="Normal Text" lineEndContext="#stay" >
<DetectChar attribute="Operator" context="quote_word_paren" char="(" beginRegion="Wordlist" />
<DetectChar attribute="Operator" context="quote_word_brace" char="{" beginRegion="Wordlist" />
<DetectChar attribute="Operator" context="quote_word_bracket" char="[" beginRegion="Wordlist" />
<RegExpr attribute="Operator" context="quote_word" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="Wordlist" />
<RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
</context>
<!-- ====== Contexts for strings ===== -->
<context name="ipstring_internal" attribute="String (interpolated)" lineEndContext="#stay">
<DetectIdentifier />
<RegExpr attribute="String Special Character" context="#stay" String="\\[UuLlEtnaefr]" />
<RegExpr attribute="String (interpolated)" context="#stay" String="\\." />
<RegExpr attribute="Normal Text" context="find_variable_unsafe" String="(?:[\$@]\S|%[\w{])" lookAhead="true" />
</context>
<context name="ip_string" attribute="String (interpolated)" lineEndContext="#stay">
<DetectChar attribute="Operator" context="#pop" char="&quot;" endRegion="String"/>
<IncludeRules context="ipstring_internal" />
</context>
<context name="ip_string_2" attribute="String (interpolated)" lineEndContext="#stay">
<RangeDetect attribute="String (interpolated)" context="#stay" char="(" char1=")" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char=")" endRegion="String" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="ip_string_3" attribute="String (interpolated)" lineEndContext="#stay">
<RangeDetect attribute="String (interpolated)" context="#stay" char="{" char1="}" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="}" endRegion="String" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="ip_string_4" attribute="String (interpolated)" lineEndContext="#stay">
<RangeDetect attribute="String (interpolated)" context="#stay" char="[" char1="]" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="]" endRegion="String" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="ip_string_5" attribute="String (interpolated)" lineEndContext="#stay">
<RangeDetect attribute="String (interpolated)" context="#stay" char="&lt;" char1="&gt;" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="&gt;" endRegion="String" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="ip_string_6" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="String (interpolated)" context="#stay" String="\%1" dynamic="true" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="1" dynamic="true" endRegion="String"/>
<IncludeRules context="ipstring_internal" />
</context>
<context name="string" attribute="String" lineEndContext="#stay">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="'" />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<DetectChar attribute="Operator" context="#pop" char="'" endRegion="String" />
</context>
<context name="string_2" attribute="String" lineEndContext="#stay">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1=")" />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<RangeDetect attribute="String" context="#stay" char="(" char1=")" />
<DetectChar attribute="Operator" context="#pop#pop" char=")" endRegion="String" />
</context>
<context name="string_3" attribute="String" lineEndContext="#stay">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="}" />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<RangeDetect attribute="String" context="#stay" char="{" char1="}" />
<DetectChar attribute="Operator" context="#pop#pop" char="}" endRegion="String" />
</context>
<context name="string_4" attribute="String" lineEndContext="#stay">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="]" />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<RangeDetect attribute="String" context="#stay" char="[" char1="]" />
<DetectChar attribute="Operator" context="#pop#pop" char="]" endRegion="String" />
</context>
<context name="string_5" attribute="String" lineEndContext="#stay">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="&lt;" />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<Detect2Chars attribute="String" context="#stay" char="\" char1="&gt;" />
<RangeDetect attribute="String" context="#stay" char="&lt;" char1="&gt;" />
<DetectChar attribute="Operator" context="#pop#pop" char="&gt;" endRegion="String" />
</context>
<context name="string_6" attribute="String" lineEndContext="#stay" dynamic="true">
<DetectIdentifier />
<Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
<RegExpr attribute="String Special Character" context="#stay" String="\%1" dynamic="true"/>
<DetectChar attribute="Operator" context="#pop#pop" char="1" dynamic="true" endRegion="String" />
</context>
<!-- ====== contexts for s/// ====== -->
<context name="find_subst" attribute="Normal Text" lineEndContext="#stay" >
<RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- s # == comment, look for the delim on the next line -->
<DetectChar attribute="Operator" context="subst_curlybrace_pattern" char="{" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="subst_paren_pattern" char="(" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="subst_bracket_pattern" char="[" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="subst_sq_pattern" char="'" beginRegion="Pattern" />
<RegExpr attribute="Operator" context="subst_slash_pattern" String="([^\w\s[\]{}()])" beginRegion="Pattern" />
</context>
<!-- Fully parse s {} {}.
This means that
- comments are legal between PATTERN and REPLACEMENT
- REPLACEMENT can contain resursive {} blocks -->
<context name="subst_curlybrace_pattern" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
<IncludeRules context="regex_pattern_internal_ip" />
<DetectChar attribute="Operator" context="subst_curlybrace_middle" char="}" endRegion="Pattern" />
</context>
<context name="subst_curlybrace_middle" attribute="Normal Text" lineEndContext="#stay" >
<RegExpr attribute="Comment" context="#stay" String="#.*$" />
<DetectChar attribute="Operator" context="subst_curlybrace_replace" char="{" beginRegion="Replacement" />
</context>
<context name="subst_curlybrace_replace" attribute="String (interpolated)" lineEndContext="#stay">
<IncludeRules context="ipstring_internal" />
<DetectChar attribute="Normal Text" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
<RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\}[cegimosx]*" endRegion="Replacement" />
</context>
<context name="subst_curlybrace_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
<DetectChar attribute="String (interpolated)" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
<DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="Block" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="subst_paren_pattern" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
<IncludeRules context="regex_pattern_internal_ip" />
<DetectChar attribute="Operator" context="subst_paren_replace" char="}" endRegion="Pattern" />
</context>
<context name="subst_paren_replace" attribute="String (interpolated)" lineEndContext="#stay">
<IncludeRules context="ipstring_internal" />
<DetectChar attribute="Operator" context="#stay" char="(" beginRegion="Replacement" />
<RegExpr attribute="Operator" context="#pop#pop#pop" String="\)[cegimosx]*" endRegion="Replacement" />
</context>
<context name="subst_bracket_pattern" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
<IncludeRules context="regex_pattern_internal_ip" />
<DetectChar attribute="Operator" context="subst_bracket_replace" char="]" endRegion="Pattern" />
</context>
<context name="subst_bracket_replace" attribute="String (interpolated)" lineEndContext="#stay">
<IncludeRules context="ipstring_internal" />
<DetectChar attribute="Operator" context="#stay" char="[" beginRegion="Replacement" />
<RegExpr attribute="Operator" context="#pop#pop#pop" String="\][cegimosx]*" endRegion="Replacement" />
</context>
<context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />
<RegExpr attribute="Operator" context="subst_slash_replace" String="(%1)" dynamic="true" endRegion="Pattern" beginRegion="Replacement" />
<IncludeRules context="regex_pattern_internal_ip" />
</context>
<context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Operator" context="#pop#pop#pop" String="%1[cegimosx]*" dynamic="true" endRegion="Replacement" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="subst_sq_pattern" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
<IncludeRules context="regex_pattern_internal" />
<DetectChar attribute="Operator" context="subst_sq_replace" char="'" endRegion="Pattern" beginRegion="Pattern" />
</context>
<context name="subst_sq_replace" attribute="String" lineEndContext="#stay">
<RegExpr attribute="Operator" context="#pop#pop#pop" String="'[cegimosx]*" endRegion="Replacement" />
</context>
<context name="tr" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
<RegExpr attribute="Pattern" context="#pop" String="([^)]*\)\s*\(?:[^)]*\)" />
<RegExpr attribute="Pattern" context="#pop" String="{[^}]*\}\s*\{[^}]*\}" />
<RegExpr attribute="Pattern" context="#pop" String="\[[^}]*\]\s*\[[^\]]*\]" />
<RegExpr attribute="Pattern" context="#pop" String="([^a-zA-Z0-9_\s[\]{}()]).*\1.*\1" minimal="true"/>
</context>
<!-- ====== PATTERNs ====== -->
<context name="find_pattern" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- s # == comment, look for the delim on the next line -->
<DetectChar attribute="Operator" context="pattern_brace" char="{" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="pattern_paren" char="(" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="pattern_bracket" char="[" beginRegion="Pattern" />
<DetectChar attribute="Operator" context="pattern_sq" char="'" beginRegion="Pattern" />
<RegExpr attribute="Operator" context="pattern" String="([^\w\s])" beginRegion="Pattern" />
</context>
<context name="pattern_slash" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=/)" />
<IncludeRules context="regex_pattern_internal_ip" />
<RegExpr attribute="Operator" context="#pop" String="/[cgimosx]*" endRegion="Pattern" />
</context>
<context name="pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />
<RegExpr attribute="Operator" context="#pop#pop" String="%1[cgimosx]*" dynamic="true" endRegion="Pattern" />
<IncludeRules context="regex_pattern_internal_ip" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=\%1)" dynamic="true" />
</context>
<context name="pattern_brace" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Operator" context="#pop#pop" String="\}[cgimosx]*" endRegion="Pattern" />
<IncludeRules context="regex_pattern_internal_ip" />
</context>
<context name="pattern_bracket" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Operator" context="#pop#pop" String="\][cgimosx]*" endRegion="Pattern" />
<IncludeRules context="regex_pattern_internal_ip" />
</context>
<context name="pattern_paren" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Operator" context="#pop#pop" String="\)[cgimosx]*" endRegion="Pattern" />
<IncludeRules context="regex_pattern_internal_ip" />
</context>
<context name="pattern_sq" attribute="Pattern" lineEndContext="#stay">
<RegExpr attribute="Operator" context="#pop#pop" String="'[cgimosx]*" endRegion="Pattern" />
<IncludeRules context="regex_pattern_internal" />
</context>
<!-- rules internal stuff wrt regex patterns -->
<context name="regex_pattern_internal_rules_1" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#stay" String="#.*$" firstNonSpace="true" />
<RegExpr attribute="Pattern Character Class" context="#stay" String="\\[anDdSsWw]" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" />
<RegExpr attribute="Special Variable" context="#stay" String="\\[\d]+" />
<RegExpr attribute="Pattern" context="#stay" String="\\." />
</context>
<context name="regex_pattern_internal_rules_2" lineEndContext="#stay">
<Detect2Chars attribute="Pattern Internal Operator" context="pat_ext" char="(" char1="?" />
<DetectChar attribute="Pattern Internal Operator" context="pat_char_class" char="[" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="[()?^*+|]" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" />
<DetectChar attribute="Pattern Internal Operator" context="#stay" char="$" />
<RegExpr attribute="Comment" context="#stay" String="\s{3,}#.*$" />
</context>
<context name="regex_pattern_internal" attribute="Pattern" lineEndContext="#stay">
<IncludeRules context="regex_pattern_internal_rules_1" />
<IncludeRules context="regex_pattern_internal_rules_2" />
</context>
<context name="regex_pattern_internal_ip" attribute="Pattern" lineEndContext="#stay" >
<IncludeRules context="regex_pattern_internal_rules_1" />
<!-- NOTE the below means that the special variables $' $], $} and $> are not supported
within interpolated PATTERNs (apart from $(, $) and ${ and $| not supported by perl).
This is because perl considers
s{foo$} {bar} OK as well as s{foo$}} {bar}, and detecting that is a huge work overload
for something that is unlikely to happen. -->
<RegExpr attribute="Data Type" context="find_variable_unsafe" String="[$@][^]\s{}()|&gt;']" lookAhead="true" />
<IncludeRules context="regex_pattern_internal_rules_2" />
</context>
<context name="pat_ext" attribute="Pattern Internal Operator" lineEndContext="#stay">
<RegExpr attribute="Comment" context="#pop" String="\#[^)]*" />
<RegExpr attribute="Pattern Internal Operator" context="#pop" String="[:=!&gt;&lt;]+" />
<DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />
</context>
<context name="pat_char_class" attribute="Pattern Character Class" lineEndContext="#stay">
<DetectChar attribute="Pattern Internal Operator" context="#stay" char="^" />
<Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="\" />
<Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="]" />
<RegExpr attribute="Pattern Character Class" context="#stay" String="\[:^?[a-z]+:\]" />
<DetectChar attribute="Pattern Internal Operator" context="#pop" char="]" />
</context>
<!-- ====== Variables ====== -->
<context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
<RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+" />
<RegExpr attribute="Special Variable" context="var_detect" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />
<RegExpr attribute="Special Variable" context="var_detect" String="[%\$](?:INC\b|ENV\b|SIG\b)" />
<RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" />
<RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />
<RegExpr attribute="Data Type" context="var_detect" String="\$+::" />
<RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]?" />
<RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{[\w_]+\}" />
<AnyChar attribute="Data Type" context="var_detect" String="$@%" />
<RegExpr attribute="Data Type" context="var_detect" String="\*[a-zA-Z_]+" />
<RegExpr attribute="Special Variable" context="#stay" String="\*[^a-zA-Z0-9\s{][A-Z]?" />
<!-- this should be a rare case! -->
<AnyChar attribute="Operator" context="#pop" String="$@%*" />
</context>
<!-- This does not check fo a trailing slash, for usage in strings. -->
<context name="find_variable_unsafe" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
<RegExpr attribute="Special Variable" context="var_detect_unsafe" String="\$[0-9]+" />
<RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />
<RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[%\$](?:INC\b|ENV\b|SIG\b)" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$\$[\$\w_]" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$+::" />
<RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]?" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{[\w_]+\}" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]" />
<RegExpr attribute="Data Type" context="var_detect_unsafe" String="\*\w+" />
<AnyChar attribute="Operator" context="#pop" String="$@%*" />
</context>
<context name="var_detect" attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
<IncludeRules context="var_detect_rules" />
<IncludeRules context="slash_safe_escape" />
</context>
<context name="var_detect_unsafe" attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
<IncludeRules context="var_detect_rules" />
</context>
<context name="var_detect_rules" attribute="Data Type" lineEndContext="#pop#pop" >
<RegExpr attribute="Data Type" context="#stay" String="[\w_]+" />
<Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
<DetectChar attribute="Operator" context="#stay" char="'" />
<Detect2Chars attribute="Normal Text" context="#stay" char="-" char1="&gt;" />
<!-- safe with operator / -->
<Detect2Chars attribute="Normal Text" context="#stay" char="+" char1="+" />
<Detect2Chars attribute="Normal Text" context="#stay" char="-" char1="-" />
</context>
<!-- ====== Word lists ====== -->
<context name="quote_word" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<DetectSpaces />
<DetectIdentifier />
<RegExpr attribute="Normal Text" context="#stay" String="\\%1" dynamic="true" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="1" dynamic="true" endRegion="Wordlist" />
</context>
<context name="quote_word_paren" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char=")" endRegion="Wordlist" />
</context>
<context name="quote_word_brace" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="}" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="}" endRegion="Wordlist" />
</context>
<context name="quote_word_bracket" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="]" />
<DetectChar attribute="Operator" context="#pop#pop#pop" char="]" endRegion="Wordlist" />
</context>
<!-- ====== Here Documents ====== -->
<context name="find_here_document" attribute="Normal Text" lineEndContext="#pop" >
<RegExpr attribute="Keyword" context="here_document" String="(\w+)\s*;?" />
<RegExpr attribute="Keyword" context="here_document" String="\s*&quot;([^&quot;]+)&quot;\s*;?" />
<RegExpr attribute="Keyword" context="here_document" String="\s*`([^`]+)`\s*;?" />
<RegExpr attribute="Keyword" context="here_document_dumb" String="\s*'([^']+)'\s*;?" />
</context>
<context name="here_document" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
<DetectSpaces />
<RegExpr attribute="Keyword" context="#pop#pop" String="%1" column="0" dynamic="true" endRegion="HereDocument"/>
<RegExpr attribute="Keyword" context="here_document" String="\=\s*&lt;&lt;\s*[&quot;']?([A-Z0-9_\-]+)[&quot;']?" beginRegion="HEREDoc" />
<IncludeRules context="ipstring_internal" />
</context>
<context name="here_document_dumb" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
<DetectSpaces />
<RegExpr attribute="Keyword" context="#pop#pop" String="%1" column="0" dynamic="true" endRegion="HereDocument"/>
<DetectIdentifier />
</context>
<!-- ====== Misc ====== -->
<context name="data_handle" attribute="Data" lineEndContext="#stay">
<RegExpr attribute="Pod" context="pod" String="\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s+.*" column="0" beginRegion="POD"/>
<StringDetect attribute="Keyword" context="normal" String="__END__" firstNonSpace="true" />
</context>
<context name="end_handle" attribute="Nothing" lineEndContext="#stay">
<RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*"/>
<StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
</context>
<context name="Backticked" attribute="String (interpolated)" lineEndContext="#stay">
<IncludeRules context="ipstring_internal"/>
<DetectChar attribute="Operator" context="#pop" char="`"/>
</context>
<context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Normal Text" context="#pop" String="\s*\]?\s*/" />
<RegExpr attribute="Normal Text" context="#pop" String="\s*\}?\s*/" endRegion="Block" />
<RegExpr attribute="Normal Text" context="#pop" String="\s*\)?\s*/" />
<keyword attribute="Keyword" context="#pop" String="keywords" />
</context>
<context name="package_qualified_blank" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Normal Text" context="#pop" String="[\w_]+" />
</context>
<context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
<RegExpr attribute="Function" context="#stay" String="\w+" />
<RegExpr attribute="Normal Text" context="find_variable" String="\$\S" lookAhead="true" />
<RegExpr attribute="Normal Text" context="sub_arg_definition" String="\s*\(" />
<Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
</context>
<context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
<AnyChar attribute="Data Type" context="#stay" String="*$@%" />
<AnyChar attribute="Normal Text" context="#stay" String="&amp;\[];" />
<DetectChar attribute="Normal Text" context="slash_safe_escape" char=")" />
</context>
<context name="pod" attribute="Pod" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<RegExpr attribute="Pod" context="#stay" String="\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" column="0" beginRegion="POD" endRegion="POD"/>
<RegExpr attribute="Pod" context="#pop" String="\=cut.*$" column="0" endRegion="POD"/>
</context>
<context name="comment" attribute="Comment" lineEndContext="#pop">
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="Pragma" defStyleNum="dsKeyword" />
<itemData name="Function" defStyleNum="dsFunction" />
<itemData name="Operator" defStyleNum="dsKeyword" color="#008000"/>
<itemData name="Data Type" defStyleNum="dsDataType" />
<itemData name="Special Variable" defStyleNum="dsDataType" color="#C00000" selColor="#C00000" bold="0" italic="0" />
<itemData name="Decimal" defStyleNum="dsDecVal" />
<itemData name="Octal" defStyleNum="dsBaseN" />
<itemData name="Hex" defStyleNum="dsBaseN" />
<itemData name="Float" defStyleNum="dsFloat" />
<itemData name="String" defStyleNum="dsString" color="#FF6C6C" selColor="#FF6C6C" bold="0" italic="0" />
<itemData name="String (interpolated)" defStyleNum="dsString" />
<itemData name="String Special Character" defStyleNum="dsChar" />
<itemData name="Pattern" defStyleNum="dsOthers" />
<itemData name="Pattern Internal Operator" defStyleNum="dsChar" />
<itemData name="Pattern Character Class" defStyleNum="dsBaseN" />
<itemData name="Data" defStyleNum="dsNormal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Pod" defStyleNum="dsComment" />
<itemData name="Nothing" defStyleNum="dsComment" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#" />
</comments>
<keywords casesensitive="1" />
</general>
</language>
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->

View File

@@ -1,373 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language>
<!-- Python syntax highlightning v0.9 by Per Wigren -->
<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->
<!-- Python syntax highlighting v1.97 by Paul Giannaros -->
<!-- Python syntax highlighting v1.99 by Primoz Anzur -->
<language name="Python" version="2.00" kateversion="2.4" section="Scripts" extensions="*.py;*.pyw" mimetype="application/x-python;text/x-python" casesensitive="1" author="Michael Bueker" license="">
<highlighting>
<list name="prep">
<item> import </item>
<item> from </item>
<item> as </item>
</list>
<list name="defs">
<item> class </item>
<item> def </item>
<item> del </item>
<item> global </item>
<item> lambda </item>
</list>
<list name="operators">
<item> and </item>
<item> assert </item>
<item> in </item>
<item> is </item>
<item> not </item>
<item> or </item>
</list>
<list name="commands">
<item> exec </item>
<item> print </item>
</list>
<list name="flow">
<item> break </item>
<item> continue </item>
<item> elif </item>
<item> else </item>
<item> except </item>
<item> finally </item>
<item> for </item>
<item> if </item>
<item> pass </item>
<item> raise </item>
<item> return </item>
<item> try </item>
<item> while </item>
<item> yield </item>
</list>
<list name="builtinfuncs">
<item> __future__ </item>
<item> __import__ </item>
<item> __name__ </item>
<item> abs </item>
<item> all </item>
<item> any </item>
<item> apply </item>
<item> basestring </item>
<item> bool </item>
<item> buffer </item>
<item> callable </item>
<item> chr </item>
<item> classmethod </item>
<item> cmp </item>
<item> coerce </item>
<item> compile </item>
<item> complex </item>
<item> delattr </item>
<item> dict </item>
<item> dir </item>
<item> divmod </item>
<item> enumerate </item>
<item> eval </item>
<item> execfile </item>
<item> file </item>
<item> filter </item>
<item> float </item>
<item> frozenset </item>
<item> getattr </item>
<item> globals </item>
<item> hasattr </item>
<item> hash </item>
<item> hex </item>
<item> id </item>
<item> input </item>
<item> int </item>
<item> intern </item>
<item> isinstance </item>
<item> issubclass </item>
<item> iter </item>
<item> len </item>
<item> list </item>
<item> locals </item>
<item> long </item>
<item> map </item>
<item> max </item>
<item> min </item>
<item> object </item>
<item> oct </item>
<item> open </item>
<item> ord </item>
<item> pow </item>
<item> property </item>
<item> range </item>
<item> raw_input </item>
<item> reduce </item>
<item> reload </item>
<item> repr </item>
<item> reversed </item>
<item> round </item>
<item> set </item>
<item> setattr </item>
<item> slice </item>
<item> sorted </item>
<item> staticmethod </item>
<item> str </item>
<item> sum </item>
<item> super </item>
<item> tuple </item>
<item> type </item>
<item> unichr </item>
<item> unicode </item>
<item> vars </item>
<item> xrange </item>
<item> zip </item>
</list>
<list name="specialvars">
<item> None </item>
<item> self </item>
<item> True </item>
<item> False </item>
<item> NotImplemented </item>
<item> Ellipsis </item>
</list>
<list name="bindings">
<item> SIGNAL </item>
<item> SLOT </item>
<item> connect </item>
</list>
<list name="overloaders">
<item>__new__</item>
<item>__init__</item>
<item>__del__</item>
<item>__repr__</item>
<item>__str__</item>
<item>__lt__</item>
<item>__le__</item>
<item>__eq__</item>
<item>__ne__</item>
<item>__gt__</item>
<item>__ge__</item>
<item>__cmp__</item>
<item>__rcmp__</item>
<item>__hash__</item>
<item>__nonzero__</item>
<item>__unicode__</item>
</list>
<list name="exceptions">
<item>ArithmeticError</item>
<item>AssertionError</item>
<item>AttributeError</item>
<item>BaseException</item>
<item>DeprecationWarning</item>
<item>EnvironmentError</item>
<item>EOFError</item>
<item>Exception</item>
<item>FloatingPointError</item>
<item>FutureWarning</item>
<item>GeneratorExit</item>
<item>IOError</item>
<item>ImportError</item>
<item>ImportWarning</item>
<item>IndexError</item>
<item>KeyError</item>
<item>KeyboardInterrupt</item>
<item>LookupError</item>
<item>MemoryError</item>
<item>NameError</item>
<item>NotImplementedError</item>
<item>OSError</item>
<item>OverflowError</item>
<item>PendingDeprecationWarning</item>
<item>ReferenceError</item>
<item>RuntimeError</item>
<item>RuntimeWarning</item>
<item>StandardError</item>
<item>StopIteration</item>
<item>SyntaxError</item>
<item>SyntaxWarning</item>
<item>SystemError</item>
<item>SystemExit</item>
<item>TypeError</item>
<item>UnboundLocalError</item>
<item>UserWarning</item>
<item>UnicodeError</item>
<item>UnicodeWarning</item>
<item>UnicodeEncodeError</item>
<item>UnicodeDecodeError</item>
<item>UnicodeTranslateError</item>
<item>ValueError</item>
<item>Warning</item>
<item>WindowsError</item>
<item>ZeroDivisionError</item>
</list>
<contexts>
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
<keyword attribute="Preprocessor" String="prep" context="#stay"/>
<keyword attribute="Definition Keyword" String="defs" context="#stay"/>
<keyword attribute="Operator" String="operators" context="#stay"/>
<keyword attribute="Command Keyword" String="commands" context="#stay"/>
<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>
<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>
<keyword attribute="Special Variable" String="specialvars" context="#stay"/>
<keyword attribute="Extensions" String="bindings" context="#stay"/>
<keyword attribute="Exceptions" String="exceptions" context="#stay"/>
<keyword attribute="Overloaders" String="overloaders" context="#stay"/>
<RegExpr attribute="Normal" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/>
<RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/>
<RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/>
<RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/>
<RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/>
<RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/>
<RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/>
<RegExpr attribute="Raw String" String="[rR]'''" context="Raw Tripple A-string"/>
<RegExpr attribute="Raw String" String="[rR]&quot;&quot;&quot;" context="Raw Tripple Q-string"/>
<RegExpr attribute="Raw String" String="[rR]'" context="Raw A-string"/>
<RegExpr attribute="Raw String" String="[rR]&quot;" context="Raw Q-string"/>
<DetectChar attribute="Comment" char="#" context="Hash comment"/>
<RegExpr attribute="Comment" String="^\s*u?'''" context="Tripple A-comment" beginRegion="Tripple A-region"/>
<RegExpr attribute="Comment" String="^\s*u?&quot;&quot;&quot;" context="Tripple Q-comment" beginRegion="Tripple Q-region"/>
<StringDetect attribute="String" String="'''" context="Tripple A-string" beginRegion="Tripple A-region"/>
<StringDetect attribute="String" String="&quot;&quot;&quot;" context="Tripple Q-string" beginRegion="Tripple Q-region"/>
<DetectChar attribute="String" char="'" context="Single A-string"/>
<DetectChar attribute="String" char="&quot;" context="Single Q-string"/>
<DetectChar attribute="Operator" char="(" context="parenthesised" beginRegion="parenthesis"/>
<DetectChar attribute="Operator" char=")" context="#pop" endRegion="parenthesis"/>
<RegExpr attribute="Operator" String="[+*/%\|=;\!&lt;&gt;!^&amp;~-]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
</context>
<context name="parenthesised" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
<IncludeRules context="Normal" />
</context>
<context name="Hash comment" attribute="Comment" lineEndContext="#pop">
<IncludeRules context="##Alerts" />
</context>
<context name="Tripple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Tripple A-region"/>
<IncludeRules context="##Alerts" />
</context>
<context name="Tripple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
<HlCChar attribute="Comment" context="#stay"/>
<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
<IncludeRules context="##Alerts" />
</context>
<context name="Tripple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
<HlCStringChar attribute="String Char" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<StringDetect attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
</context>
<context name="Raw Tripple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
<HlCStringChar attribute="Raw String" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<StringDetect attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
</context>
<context name="Tripple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
<HlCStringChar attribute="String Char" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
</context>
<context name="Raw Tripple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
<HlCStringChar attribute="Raw String" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
</context>
<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">
<HlCStringChar attribute="Comment" context="#stay"/>
<DetectChar attribute="Comment" char="'" context="#pop"/>
<IncludeRules context="##Alerts" />
</context>
<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">
<HlCStringChar attribute="Comment" context="#stay"/>
<DetectChar attribute="Comment" char="&quot;" context="#pop"/>
<IncludeRules context="##Alerts" />
</context>
<context name="Single A-string" attribute="String" lineEndContext="#stay">
<HlCStringChar attribute="String Char" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<DetectChar attribute="String" char="'" context="#pop"/>
</context>
<context name="Single Q-string" attribute="String" lineEndContext="#stay">
<HlCStringChar attribute="String Char" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<DetectChar attribute="String" char="&quot;" context="#pop"/>
</context>
<context name="Raw A-string" attribute="Raw String" lineEndContext="#stay">
<HlCStringChar attribute="Raw String" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<DetectChar attribute="Raw String" char="'" context="#pop"/>
</context>
<context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay">
<HlCStringChar attribute="Raw String" context="#stay"/>
<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
<DetectChar attribute="Raw String" char="&quot;" context="#pop"/>
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Definition Keyword" defStyleNum="dsKeyword"/>
<itemData name="Operator" defStyleNum="dsNormal"/>
<itemData name="String Substitution" defStyleNum="dsNormal"/>
<itemData name="Command Keyword" defStyleNum="dsKeyword"/>
<itemData name="Flow Control Keyword" defStyleNum="dsKeyword"/>
<itemData name="Builtin Function" defStyleNum="dsDataType"/>
<itemData name="Special Variable" defStyleNum="dsOthers"/>
<itemData name="Extensions" defStyleNum="dsOthers" color="#0095ff" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Exceptions" defStyleNum="dsOthers" color="#054d00" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Overloaders" defStyleNum="dsOthers" color="#000e52" selColor="#ffffff" bold="1" italic="0"/>
<itemData name="Preprocessor" defStyleNum="dsChar"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Long" defStyleNum="dsOthers"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Int" defStyleNum="dsDecVal"/>
<itemData name="Hex" defStyleNum="dsOthers"/>
<itemData name="Octal" defStyleNum="dsOthers"/>
<itemData name="Complex" defStyleNum="dsOthers"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Raw String" defStyleNum="dsString"/>
</itemDatas>
</highlighting>
<general>
<folding indentationsensitive="1" />
<emptyLines>
<emptyLine regexpr="\s+" casesensitive="false"/>
<emptyLine regexpr="\s*#.*$" casesensitive="false"/>
</emptyLines>
<comments>
<comment name="singleLine" start="#" position="afterwhitespace"/>
</comments>
<keywords casesensitive="1" />
</general>
</language>

View File

@@ -1,915 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
Ruby syntax highlighting definition for Kate.
Copyright (C) 2004 by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)
Copyright (C) 2004 by Stefan Lang (langstefan@gmx.at)
Copyright (C) 2008 by Robin Pedersen (robinpeder@gmail.com)
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.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
-->
<!--
TODO: * "Nested" HERE documents aren't recognized.
* Division after gdl contexts is interpreted as regexp
-->
<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
<language name="Ruby" section="Scripts"
version="1.18" kateversion="2.4"
extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb"
mimetype="application/x-ruby"
style="ruby" indenter="ruby"
author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com)" license="LGPL">
<highlighting>
<list name="keywords">
<item> BEGIN </item>
<item> END </item>
<item> and </item>
<item> begin </item>
<item> break </item>
<item> case </item>
<item> defined? </item>
<item> do </item>
<item> else </item>
<item> elsif </item>
<item> end </item>
<item> ensure </item>
<item> for </item>
<item> if </item>
<item> in </item>
<item> include </item>
<item> next </item>
<item> not </item>
<item> or </item>
<item> redo </item>
<item> rescue </item>
<item> retry </item>
<item> return </item>
<item> then </item>
<item> unless </item>
<item> until </item>
<item> when </item>
<item> while </item>
<item> yield </item>
</list>
<list name="access-control">
<item> private_class_method </item>
<item> private </item>
<item> protected </item>
<item> public_class_method </item>
<item> public </item>
</list>
<list name="attribute-definitions">
<item> attr_reader </item>
<item> attr_writer </item>
<item> attr_accessor </item>
</list>
<list name="definitions">
<item> alias </item>
<item> module </item>
<item> class </item>
<item> def </item>
<item> undef </item>
</list>
<list name="pseudo-variables">
<item> self </item>
<item> super </item>
<item> nil </item>
<item> false </item>
<item> true </item>
<item> caller </item>
<item> __FILE__ </item>
<item> __LINE__ </item>
</list>
<list name="default-globals">
<item> $stdout </item>
<item> $defout </item>
<item> $stderr </item>
<item> $deferr </item>
<item> $stdin </item>
</list>
<!-- Kernel module methods.
NOTE: Methods ending in ? or !
are included below as regexes.
-->
<list name="kernel-methods">
<!-- backquote ` -->
<item> abort </item>
<item> at_exit </item>
<item> autoload </item>
<item> autoload? </item>
<item> binding </item>
<item> block_given? </item>
<item> callcc </item>
<item> caller </item>
<item> catch </item>
<item> chomp </item>
<item> chomp! </item>
<item> chop </item>
<item> chop! </item>
<item> eval </item>
<item> exec </item>
<item> exit </item>
<item> exit! </item>
<item> fail </item>
<item> fork </item>
<item> format </item>
<item> getc </item>
<item> gets </item>
<item> global_variables </item>
<item> gsub </item>
<item> gsub! </item>
<item> iterator? </item>
<item> lambda </item>
<item> load </item>
<item> local_variables </item>
<item> loop </item>
<item> method_missing </item>
<item> open </item>
<item> p </item>
<item> print </item>
<item> printf </item>
<item> proc </item>
<item> putc </item>
<item> puts </item>
<item> raise </item>
<item> rand </item>
<item> readline </item>
<item> readlines </item>
<item> require </item>
<item> scan </item>
<item> select </item>
<item> set_trace_func </item>
<item> sleep </item>
<item> split </item>
<item> sprintf </item>
<item> srand </item>
<item> sub </item>
<item> sub! </item>
<item> syscall </item>
<item> system </item>
<item> test </item>
<item> throw </item>
<item> trace_var </item>
<item> trap </item>
<item> untrace_var </item>
<item> warn </item>
</list>
<list name="attention">
<item> TODO </item>
<item> FIXME </item>
<item> NOTE </item>
</list>
<contexts>
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
<!-- ruby ignores newline after \ -->
<LineContinue attribute="Normal Text" context="Line Continue"/>
<!-- __END__ token on own line. -->
<RegExpr attribute="Keyword" String="__END__$" context="DATA" column="0"/>
<!-- "shebang" line -->
<RegExpr attribute="Keyword" String="#!\/.*" context="#stay" column="0"/>
<!-- "def" - "end" blocks -->
<!-- check for statement modifiers with regexes -->
<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="(\=|\(|\[|\{)\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" firstNonSpace="true"/>
<RegExpr attribute="Keyword" String="\;\s*(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
<RegExpr attribute="Keyword" String="\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bclass\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bmodule\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bbegin\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bcase\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bdo\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bdef\b" context="#stay" beginRegion="def block"/>
<RegExpr attribute="Keyword" String="\bend\b" context="#stay" endRegion="def block"/>
<!-- elsif/else close the current block and start a new one -->
<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
<StringDetect attribute="Operator" String="..." context="#stay"/>
<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
<!-- marks a message (being sent, not defined) -->
<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
<!-- Check for "ASCII code operator". e.g.: ?a -->
<RegExpr attribute="Dec" String="\s\?(\\M\-)?(\\C\-)?\\?\S" context="check_div_1"/>
<keyword attribute="Keyword" String="keywords" context="#stay"/>
<keyword attribute="Attribute Definition" String="attribute-definitions" context="check_div_2"/>
<keyword attribute="Access Control" String="access-control" context="check_div_2"/>
<keyword attribute="Definition" String="definitions" context="#stay" />
<keyword attribute="Pseudo variable" String="pseudo-variables" context="check_div_1"/>
<keyword attribute="Default globals" String="default-globals" context="check_div_2"/>
<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>
<!-- (global) vars starting with $
Match them before $_.
-->
<RegExpr attribute="Global Variable" String="\$[a-zA-Z_0-9]+" context="check_div_1"/>
<RegExpr attribute="Global Variable" String="\$\-[a-zA-z_]\b" context="check_div_1"/>
<!-- special-character globals -->
<RegExpr attribute="Default globals" String="\$[\d_*`\!:?'/\\\-\&amp;&quot;]" context="check_div_1"/>
<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
<!-- Generally a module or class name like "File", "MyModule_1", .. -->
<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
<RegExpr attribute="Hex" String="\b\-?0[xX][_0-9a-fA-F]+" context="check_div_1"/>
<RegExpr attribute="Bin" String="\b\-?0[bB][_01]+" context="check_div_1"/>
<RegExpr attribute="Octal" String="\b\-?0[1-7][_0-7]*" context="check_div_1"/>
<RegExpr attribute="Float" String="\b\-?[0-9][0-9_]*\.[0-9][0-9_]*([eE]\-?[1-9][0-9]*(\.[0-9]*)?)?" context="check_div_1"/>
<RegExpr attribute="Dec" String="\b\-?[1-9][0-9_]*\b" context="check_div_1"/>
<Int attribute="Dec" context="check_div_1"/>
<HlCChar attribute="Char" context="check_div_1"/>
<!-- Check for =begin before assignment operator. -->
<RegExpr attribute="Blockcomment" String="^=begin(?:\s|$)" context="Embedded documentation" beginRegion="comment block" column="0"/>
<!-- recognize the beginning of a HEREDOC
This uses new features in Kate 2.3 and later
There is no other chance of keeping heredoc apart from the
push operator '<<' than requiring to put space between the operator
and the string.
-->
<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;-(?=\w+|[&quot;'])" beginRegion="HereDocument" />
<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'])" beginRegion="HereDocument" />
<DetectChar attribute="Operator" char="." context="#stay"/>
<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
<RegExpr attribute="Operator" String="\s[\?\:\%]\s" context="#stay"/>
<RegExpr attribute="Operator" String="[|&amp;&lt;&gt;\^\+*~\-=]+" context="#stay"/>
<!-- regexp hack -->
<RegExpr attribute="Operator" String="\s!" context="#stay"/>
<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>
<StringDetect attribute="Operator" String="%=" context="#stay" insensitive="0"/>
<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?" context="check_div_1"/>
<RegExpr attribute="Symbol" String=":\[\]=?" contex="check_div_1"/>
<DetectChar attribute="String" char="&quot;" context="Quoted String"/>
<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
<DetectChar attribute="Command" char="`" context="Command String"/>
<StringDetect attribute="Normal Text" String="?#" context="#stay"/>
<RegExpr attribute="Comment" String="#\s*BEGIN.*$" context="#stay" beginRegion="marker" column="0"/>
<RegExpr attribute="Comment" String="#\s*END.*$" context="#stay" endRegion="marker" column="0"/>
<DetectChar attribute="Comment" char="#" context="General Comment"/>
<DetectChar attribute="Delimiter" char="[" context="#stay"/>
<DetectChar attribute="Delimiter" char="]" context="check_div_1"/>
<DetectChar attribute="Delimiter" char="{" context="#stay" beginRegion="def block"/>
<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>
<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>
<!-- handle the different regular expression formats -->
<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
<!-- recognize the beginning of a general delimited input format -->
<!-- this moves to the next context to separate out the exact nature of the GDL input -->
<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[Qqxw]?[^\s])" beginRegion="GdlInput" />
<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
</context>
<!-- In the following contexts, a slash character ('/') is a division operator -->
<!-- Everywhere else, it's a regular expression delimiter -->
<!-- A slash is always a division operator, even if preceeded by whitespace -->
<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
<RegExpr attribute="Normal Text" String="\s*" context="#stay"/>
<AnyChar attribute="Operator" String="/%" context="#pop"/>
</context>
<!-- Same as check_div_1, but with double pop to exit the surrounding context -->
<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
<RegExpr attribute="Normal Text" String="\s*" context="#stay"/>
<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
</context>
<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->
<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
<AnyChar attribute="Operator" String="/%" context="#pop"/>
<RegExpr attribute="Normal Text" String="\s+" context="check_div_2_internal"/>
</context>
<!-- Internal context used by check_div_2 -->
<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
<!-- <DetectChar attribute="Operator" char="%" context="#pop#pop"/> -->
<RegExpr attribute="Operator" String="[/%](?=\s)" context="#pop#pop"/>
</context>
<!-- Same as check_div_2, but with double pop to exit the surrounding context -->
<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
<RegExpr attribute="Normal Text" String="\s+" context="check_div_2_pop_internal"/>
</context>
<!-- Internal context used by check_div_2_pop -->
<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">
<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>
<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>
</context>
<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">
<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" firstNonSpace="true"/>
<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" firstNonSpace="true"/>
<IncludeRules context="Normal"/>
</context>
<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>
<IncludeRules context="Normal"/>
</context>
<context name="Quoted String" attribute="String" lineEndContext="#stay">
<StringDetect attribute="String" String="\\" context="#stay"/>
<RegExpr attribute="String" String="\\\&quot;" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>
</context>
<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">
<StringDetect attribute="String" String="\\" context="#stay"/>
<RegExpr attribute="String" String="\\\'" context="#stay"/>
<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>
</context>
<context name="Command String" attribute="Command" lineEndContext="#stay">
<StringDetect attribute="String" String="\\" context="#stay"/>
<RegExpr attribute="String" String="\\\`" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>
</context>
<context name="Embedded documentation" attribute="Blockcomment" lineEndContext="#stay">
<RegExpr attribute="Comment" String="^=end(?:\s.*|$)" context="#pop" endRegion="comment block" column="0"/>
</context>
<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
<RegExpr attribute="Regular Expression" String="\\\/" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>
</context>
<!-- Substitutions can be nested -->
<context name="Subst" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Substitution" char="}" context="#pop"/>
<!-- Highlight substitution as code. -->
<IncludeRules context="Normal"/>
</context>
<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
<!-- Check for e.g.: "#@var#@@xy" -->
<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
</context>
<!-- This handles access of nested module classes and class methods -->
<context name="Member Access" attribute="Member" lineEndContext="#pop">
<!-- marks a message (being sent, not defined) -->
<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>
<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>
<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>
<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>
<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
<DetectChar attribute="Member" char="." context="#stay"/>
<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>
<DetectChar attribute="Comment" char="#" context="#pop"/>
<AnyChar attribute="Normal Text" String="()\" context="#pop"/>
<RegExpr attribute="Member" String="\W" context="#pop"/>
</context>
<context name="Comment Line" attribute="Comment" lineEndContext="#pop">
<RegExpr attribute="Comment" String="\w\:\:\s" context="RDoc Label"/>
<keyword attribute="Alert" String="attention" context="#stay"/>
</context>
<context name="General Comment" attribute="Comment" lineEndContext="#pop">
<keyword attribute="Dec" String="attention" context="#stay"/>
</context>
<context name="RDoc Label" attribute="RDoc Value" lineEndContext="#pop"/>
<!-- HEREDOC support
The contexts below support both normal and indented heredocs
-->
<!-- here we markup the heredoc markers -->
<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" >
<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
<RegExpr attribute="Keyword" context="normal_heredoc" String="&quot;?(\w+)&quot;?" />
</context>
<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" >
<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
<RegExpr attribute="Keyword" context="indented_heredoc" String="&quot;?(\w+)&quot;?" />
</context>
<!-- these are the real heredoc contexts -->
<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
<!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>-->
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
<IncludeRules context="heredoc_rules" />
</context>
<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
<!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>-->
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
</context>
<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
<!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
<IncludeRules context="heredoc_rules" />
</context>
<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
<!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->
<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
</context>
<!-- rules for heredoc types -->
<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
</context>
<!-- General delimited input support
The contexts below handle the various gdl formats
-->
<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">
<!-- handle token arrays -->
<RegExpr attribute="GDL input" context="gdl_token_array_1" String="w\(" />
<RegExpr attribute="GDL input" context="gdl_token_array_2" String="w\{" />
<RegExpr attribute="GDL input" context="gdl_token_array_3" String="w\[" />
<RegExpr attribute="GDL input" context="gdl_token_array_4" String="w&lt;" />
<!-- then we handle the 'any char' format -->
<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />
<!-- handle apostrophed strings -->
<RegExpr attribute="GDL input" context="gdl_apostrophed_1" String="q\(" />
<RegExpr attribute="GDL input" context="gdl_apostrophed_2" String="q\{" />
<RegExpr attribute="GDL input" context="gdl_apostrophed_3" String="q\[" />
<RegExpr attribute="GDL input" context="gdl_apostrophed_4" String="q&lt;" />
<!-- then we handle the 'any char' format -->
<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />
<!-- handle shell commands -->
<RegExpr attribute="GDL input" context="gdl_shell_command_1" String="x\(" />
<RegExpr attribute="GDL input" context="gdl_shell_command_2" String="x\{" />
<RegExpr attribute="GDL input" context="gdl_shell_command_3" String="x\[" />
<RegExpr attribute="GDL input" context="gdl_shell_command_4" String="x&lt;" />
<!-- then we handle the 'any char' format -->
<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />
<!-- handle regular expressions -->
<RegExpr attribute="GDL input" context="gdl_regexpr_1" String="r\(" />
<RegExpr attribute="GDL input" context="gdl_regexpr_2" String="r\{" />
<RegExpr attribute="GDL input" context="gdl_regexpr_3" String="r\[" />
<RegExpr attribute="GDL input" context="gdl_regexpr_4" String="r&lt;" />
<!-- then we handle the 'any char' format -->
<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />
<!-- handle double-quoted strings -->
<!--
be careful to make this the last GDL ruleset, because the rule for
the short form %?foo? will otherwise catch any of the other formats
-->
<RegExpr attribute="GDL input" context="gdl_dq_string_1" String="Q?\(" />
<RegExpr attribute="GDL input" context="gdl_dq_string_2" String="Q?\{" />
<RegExpr attribute="GDL input" context="gdl_dq_string_3" String="Q?\[" />
<RegExpr attribute="GDL input" context="gdl_dq_string_4" String="Q?&lt;" />
<!-- then we handle the 'any char' format -->
<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />
</context>
<!-- double-quoted string specific contexts follow -->
<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >
<IncludeRules context="dq_string_rules" />
<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
</context>
<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >
<IncludeRules context="dq_string_rules" />
<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
<DetectChar attribute="String" context="#pop" char=")" />
</context>
<!-- note that here substitution should win over nesting -->
<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >
<IncludeRules context="dq_string_rules" />
<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
</context>
<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >
<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
<DetectChar attribute="String" context="#pop" char="}" />
<IncludeRules context="dq_string_rules" />
</context>
<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >
<IncludeRules context="dq_string_rules" />
<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
</context>
<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >
<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
<DetectChar attribute="String" context="#pop" char="]" />
<IncludeRules context="dq_string_rules" />
</context>
<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >
<IncludeRules context="dq_string_rules" />
<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
</context>
<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >
<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
<DetectChar attribute="String" context="#pop" char="&gt;" />
<IncludeRules context="dq_string_rules" />
</context>
<!-- this format doesn't allow nesting. it is terminated by the next occurence of the
delimiter character
-->
<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">
<IncludeRules context="dq_string_rules" />
<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true" />
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
</context>
<!-- rules to be included in all dq_string contexts -->
<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
</context>
<!-- token array specific contexts -->
<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
</context>
<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
<DetectChar attribute="String" context="#pop" char=")" />
</context>
<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
</context>
<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
<DetectChar attribute="String" context="#pop" char="}" />
</context>
<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
</context>
<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
<DetectChar attribute="String" context="#pop" char="]" />
</context>
<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
</context>
<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >
<IncludeRules context="token_array_rules" />
<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
<DetectChar attribute="String" context="#pop" char="&gt;" />
</context>
<!-- this format doesn't allow nesting. it is terminated by the next occurence of the
delimiter character
-->
<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">
<IncludeRules context="token_array_rules" />
<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true"/>
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
</context>
<!-- rules to be included in all token_array contexts -->
<context name="token_array_rules" attribute="String" lineEndContext="#stay" >
<StringDetect attribute="String" String="\\" context="#stay"/>
</context>
<!-- apostrophed string specific contexts -->
<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>
<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
</context>
<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
<DetectChar attribute="Raw String" context="#pop" char=")" />
</context>
<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
</context>
<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
<DetectChar attribute="Raw String" context="#pop" char="}" />
</context>
<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>
<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
</context>
<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
<DetectChar attribute="Raw String" context="#pop" char="]" />
</context>
<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>
<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
</context>
<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >
<IncludeRules context="apostrophed_rules" />
<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
</context>
<!-- this format doesn't allow nesting. it is terminated by the next occurence of the
delimiter character
-->
<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">
<IncludeRules context="apostrophed_rules" />
<RegExpr attribute="Raw String" String="\\%1" context="#stay" dynamic="true"/>
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
</context>
<!-- rules to be included in all apostrophed contexts -->
<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >
<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>
</context>
<!-- shell command specific contexts -->
<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>
<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
</context>
<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
<DetectChar attribute="Command" context="#pop" char=")" />
</context>
<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>
<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
</context>
<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
<DetectChar attribute="Command" context="#pop" char="}" />
</context>
<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>
<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
</context>
<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
<DetectChar attribute="Command" context="#pop" char="]" />
</context>
<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>
<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
</context>
<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >
<IncludeRules context="shell_command_rules" />
<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
<DetectChar attribute="Command" context="#pop" char="&gt;" />
</context>
<!-- this format doesn't allow nesting. it is terminated by the next occurence of the
delimiter character
-->
<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">
<IncludeRules context="shell_command_rules" />
<RegExpr attribute="Command" String="\\%1" context="#stay" dynamic="true" />
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
</context>
<!-- rules to be included in all shell_command contexts -->
<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
</context>
<!-- regular expression specific contexts -->
<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>
<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />
</context>
<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
<DetectChar attribute="Regular Expression" context="#pop" char=")" />
</context>
<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>
<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />
<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
</context>
<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
<DetectChar attribute="Regular Expression" context="#pop" char="}" />
</context>
<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>
<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />
</context>
<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
<DetectChar attribute="Regular Expression" context="#pop" char="]" />
</context>
<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>
<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />
</context>
<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >
<IncludeRules context="regexpr_rules" />
<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />
</context>
<!-- this format doesn't allow nesting. it is terminated by the next occurence of the
delimiter character
-->
<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">
<IncludeRules context="regexpr_rules" />
<RegExpr attribute="Regular Expression" String="\\%1" context="#stay" dynamic="true" />
<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />
</context>
<!-- rules to be included in all regexpr contexts -->
<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
</context>
<!-- END of General delimited input support -->
<!-- handle data in script -->
<context name="DATA" attribute="Data" lineEndContext="#stay"/>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
<itemData name="Access Control" defStyleNum="dsKeyword" color="#0000FF"/>
<itemData name="Definition" defStyleNum="dsKeyword"/>
<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>
<itemData name="Dec" defStyleNum="dsDecVal"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Char" defStyleNum="dsChar"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Bin" defStyleNum="dsBaseN"/>
<itemData name="Symbol" defStyleNum="dsString" color="#D40000"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Raw String" defStyleNum="dsString" color="#DD4A4A" selColor="#DD4A4A"/>
<itemData name="Command" defStyleNum="dsString" color="#AA3000"/>
<itemData name="Message" defStyleNum="dsNormal" color="#4000A7"/> <!-- #4A00C0 -->
<itemData name="Regular Expression" defStyleNum="dsOthers" color="#4A5704"/>
<itemData name="Substitution" defStyleNum="dsOthers"/>
<itemData name="Data" defStyleNum="dsNormal"/>
<!-- short for 'general delimited input' -->
<itemData name="GDL input" defStyleNum="dsOthers" />
<itemData name="Default globals" defStyleNum="dsDataType" color="#C00000" bold="1"/>
<itemData name="Global Variable" defStyleNum="dsDataType" color="#C00000"/>
<itemData name="Global Constant" defStyleNum="dsDataType" color="#bb1188" bold="1"/>
<itemData name="Constant" defStyleNum="dsDataType"/>
<itemData name="Constant Value" defStyleNum="dsDataType" color="#bb1188"/>
<itemData name="Kernel methods" defStyleNum="dsNormal" color="#000080" selColor="#ffffff"/> <!-- #CC0E86 -->
<itemData name="Member" defStyleNum="dsNormal"/>
<itemData name="Instance Variable" defStyleNum="dsOthers"/>
<itemData name="Class Variable" defStyleNum="dsOthers"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Blockcomment" defStyleNum="dsComment"/>
<itemData name="Region Marker" defStyleNum="dsNormal" color="#0000ff"/>
<itemData name="RDoc Value" defStyleNum="dsOthers"/>
<itemData name="Here Document" defStyleNum="dsOthers"/>
<!-- use these to mark errors and alerts things -->
<itemData name="Error" defStyleNum="dsError" />
<itemData name="Alert" defStyleNum="dsAlert" />
<itemData name="Delimiter" defStyleNum="dsNormal" color="#FF9FEC"/>
<itemData name="Expression" defStyleNum="dsOthers"/>
<itemData name="Operator" defStyleNum="dsNormal" color="#FF9FEC"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#"/>
</comments>
<keywords casesensitive="1" weakDeliminator="!?"/>
</general>
</language>

View File

@@ -1,951 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- Oracle10g SQL and PL/SQL syntax - ANSI SQL 2003 superset -->
<!-- This file is maintained by Anders Lund <anders@alweb.dk> since 2005-11-06 -->
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
<language name="SQL" version="1.13" kateversion="2.4" section="Database" extensions="*.sql;*.SQL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">
<highlighting>
<list name="keywords">
<item> ACCESS </item>
<item> ACCOUNT </item>
<item> ADD </item>
<item> ADMIN </item>
<item> ADMINISTER </item>
<item> ADVISE </item>
<item> AFTER </item>
<item> AGENT </item>
<item> ALL </item>
<item> ALL_ROWS </item>
<item> ALLOCATE </item>
<item> ALTER </item>
<item> ANALYZE </item>
<item> ANCILLARY </item>
<item> AND </item>
<item> ANY </item>
<item> ARCHIVE </item>
<item> ARCHIVELOG </item>
<item> AS </item>
<item> ASC </item>
<item> ASSERTION </item>
<item> ASSOCIATE </item>
<item> AT </item>
<item> ATTRIBUTE </item>
<item> ATTRIBUTES </item>
<item> AUDIT </item>
<item> AUTHENTICATED </item>
<item> AUTHID </item>
<item> AUTHORIZATION </item>
<item> AUTOALLOCATE </item>
<item> AUTOEXTEND </item>
<item> AUTOMATIC </item>
<item> BACKUP </item>
<item> BECOME </item>
<item> BEFORE </item>
<item> BEGIN </item>
<item> BEHALF </item>
<item> BETWEEN </item>
<item> BINDING </item>
<item> BITMAP </item>
<item> BLOCK </item>
<item> BLOCK_RANGE </item>
<item> BODY </item>
<item> BOUND </item>
<item> BOTH </item>
<item> BREAK </item>
<item> BROADCAST </item>
<item> BTITLE </item>
<item> BUFFER_POOL </item>
<item> BUILD </item>
<item> BULK </item>
<item> BY </item>
<item> CACHE </item>
<item> CACHE_INSTANCES </item>
<item> CALL </item>
<item> CANCEL </item>
<item> CASCADE </item>
<item> CASE </item>
<item> CATEGORY </item>
<item> CHAINED </item>
<item> CHANGE </item>
<item> CHECK </item>
<item> CHECKPOINT </item>
<item> CHILD </item>
<item> CHOOSE </item>
<item> CHUNK </item>
<item> CLASS </item>
<item> CLEAR </item>
<item> CLONE </item>
<item> CLOSE </item>
<item> CLOSE_CACHED_OPEN_CURSORS </item>
<item> CLUSTER </item>
<item> COALESCE </item>
<item> COLUMN </item>
<item> COLUMNS </item>
<item> COLUMN_VALUE </item>
<item> COMMENT </item>
<item> COMMIT </item>
<item> COMMITTED </item>
<item> COMPATIBILITY </item>
<item> COMPILE </item>
<item> COMPLETE </item>
<item> COMPOSITE_LIMIT </item>
<item> COMPRESS </item>
<item> COMPUTE </item>
<item> CONNECT </item>
<item> CONNECT_TIME </item>
<item> CONSIDER </item>
<item> CONSISTENT </item>
<item> CONSTANT </item>
<item> CONSTRAINT </item>
<item> CONSTRAINTS </item>
<item> CONTAINER </item>
<item> CONTENTS </item>
<item> CONTEXT </item>
<item> CONTINUE </item>
<item> CONTROLFILE </item>
<item> COPY </item>
<item> COST </item>
<item> CPU_PER_CALL </item>
<item> CPU_PER_SESSION </item>
<item> CREATE </item>
<item> CREATE_STORED_OUTLINES </item>
<item> CROSS </item>
<item> CUBE </item>
<item> CURRENT </item>
<item> CURSOR </item>
<item> CYCLE </item>
<item> DANGLING </item>
<item> DATA </item>
<item> DATABASE </item>
<item> DATAFILE </item>
<item> DATAFILES </item>
<item> DBA </item>
<item> DDL </item>
<item> DEALLOCATE </item>
<item> DEBUG </item>
<item> DECLARE </item>
<item> DEFAULT </item>
<item> DEFERRABLE </item>
<item> DEFERRED </item>
<item> DEFINER </item>
<item> DEGREE </item>
<item> DELETE </item>
<item> DEMAND </item>
<item> DESC </item>
<item> DETERMINES </item>
<item> DICTIONARY </item>
<item> DIMENSION </item>
<item> DIRECTORY </item>
<item> DISABLE </item>
<item> DISASSOCIATE </item>
<item> DISCONNECT </item>
<item> DISKGROUP </item>
<item> DISMOUNT </item>
<item> DISTINCT </item>
<item> DISTRIBUTED </item>
<item> DOMAIN </item>
<item> DROP </item>
<item> DYNAMIC </item>
<item> EACH </item>
<item> ELSE </item>
<item> ELSIF </item>
<item> EMPTY </item>
<item> ENABLE </item>
<item> END </item>
<item> ENFORCE </item>
<item> ENTRY </item>
<item> ESCAPE </item>
<item> ESTIMATE </item>
<item> EVENTS </item>
<item> EXCEPT </item>
<item> EXCEPTION </item>
<item> EXCEPTIONS </item>
<item> EXCHANGE </item>
<item> EXCLUDING </item>
<item> EXCLUSIVE </item>
<item> EXEC </item>
<item> EXECUTE </item>
<item> EXISTS </item>
<item> EXPIRE </item>
<item> EXPLAIN </item>
<item> EXPLOSION </item>
<item> EXTENDS </item>
<item> EXTENT </item>
<item> EXTENTS </item>
<item> EXTERNALLY </item>
<item> FAILED_LOGIN_ATTEMPTS </item>
<item> FALSE </item>
<item> FAST </item>
<item> FILE </item>
<item> FILTER </item>
<item> FIRST_ROWS </item>
<item> FLAGGER </item>
<item> FLASHBACK </item>
<item> FLUSH </item>
<item> FOLLOWING </item>
<item> FOR </item>
<item> FORCE </item>
<item> FOREIGN </item>
<item> FREELIST </item>
<item> FREELISTS </item>
<item> FRESH </item>
<item> FROM </item>
<item> FULL </item>
<item> FUNCTION </item>
<item> FUNCTIONS </item>
<item> GENERATED </item>
<item> GLOBAL </item>
<item> GLOBALLY </item>
<item> GLOBAL_NAME </item>
<item> GRANT </item>
<item> GROUP </item>
<item> GROUPS </item>
<item> HASH </item>
<item> HASHKEYS </item>
<item> HAVING </item>
<item> HEADER </item>
<item> HEAP </item>
<item> HIERARCHY </item>
<item> HOUR </item>
<item> ID </item>
<item> IDENTIFIED </item>
<item> IDENTIFIER </item>
<item> IDGENERATORS </item>
<item> IDLE_TIME </item>
<item> IF </item>
<item> IMMEDIATE </item>
<item> IN </item>
<item> INCLUDING </item>
<item> INCREMENT </item>
<item> INCREMENTAL </item>
<item> INDEX </item>
<item> INDEXED </item>
<item> INDEXES </item>
<item> INDEXTYPE </item>
<item> INDEXTYPES </item>
<item> INDICATOR </item>
<item> INITIAL </item>
<item> INITIALIZED </item>
<item> INITIALLY </item>
<item> INITRANS </item>
<item> INNER </item>
<item> INSERT </item>
<item> INSTANCE </item>
<item> INSTANCES </item>
<item> INSTEAD </item>
<item> INTERMEDIATE </item>
<item> INTERSECT </item>
<item> INTO </item>
<item> INVALIDATE </item>
<item> IS </item>
<item> ISOLATION </item>
<item> ISOLATION_LEVEL </item>
<item> JAVA </item>
<item> JOIN </item>
<item> KEEP </item>
<item> KEY </item>
<item> KILL </item>
<item> LABEL </item>
<item> LAYER </item>
<item> LEADING </item>
<item> LEFT </item>
<item> LESS </item>
<item> LEVEL </item>
<item> LIBRARY </item>
<item> LIKE </item>
<item> LIMIT </item>
<item> LINK </item>
<item> LIST </item>
<item> LOCAL </item>
<item> LOCATOR </item>
<item> LOCK </item>
<item> LOCKED </item>
<item> LOGFILE </item>
<item> LOGGING </item>
<item> LOGICAL_READS_PER_CALL </item>
<item> LOGICAL_READS_PER_SESSION </item>
<item> LOGOFF </item>
<item> LOGON </item>
<item> LOOP </item>
<item> MANAGE </item>
<item> MANAGED </item>
<item> MANAGEMENT </item>
<item> MASTER </item>
<item> MATERIALIZED </item>
<item> MAXARCHLOGS </item>
<item> MAXDATAFILES </item>
<item> MAXEXTENTS </item>
<item> MAXINSTANCES </item>
<item> MAXLOGFILES </item>
<item> MAXLOGHISTORY </item>
<item> MAXLOGMEMBERS </item>
<item> MAXSIZE </item>
<item> MAXTRANS </item>
<item> MAXVALUE </item>
<item> METHOD </item>
<item> MEMBER </item>
<item> MERGE </item>
<item> MINIMIZE </item>
<item> MINIMUM </item>
<item> MINEXTENTS </item>
<item> MINUS </item>
<item> MINUTE </item>
<item> MINVALUE </item>
<item> MODE </item>
<item> MODIFY </item>
<item> MONITORING </item>
<item> MOUNT </item>
<item> MOVE </item>
<item> MOVEMENT </item>
<item> MTS_DISPATCHERS </item>
<item> MULTISET </item>
<item> NAMED </item>
<item> NATURAL </item>
<item> NEEDED </item>
<item> NESTED </item>
<item> NESTED_TABLE_ID </item>
<item> NETWORK </item>
<item> NEVER </item>
<item> NEW </item>
<item> NEXT </item>
<item> NLS_CALENDAR </item>
<item> NLS_CHARACTERSET </item>
<item> NLS_COMP </item>
<item> NLS_CURRENCY </item>
<item> NLS_DATE_FORMAT </item>
<item> NLS_DATE_LANGUAGE </item>
<item> NLS_ISO_CURRENCY </item>
<item> NLS_LANG </item>
<item> NLS_LANGUAGE </item>
<item> NLS_NUMERIC_CHARACTERS </item>
<item> NLS_SORT </item>
<item> NLS_SPECIAL_CHARS </item>
<item> NLS_TERRITORY </item>
<item> NO </item>
<item> NOARCHIVELOG </item>
<item> NOAUDIT </item>
<item> NOCACHE </item>
<item> NOCOMPRESS </item>
<item> NOCYCLE </item>
<item> NOFORCE </item>
<item> NOLOGGING </item>
<item> NOMAXVALUE </item>
<item> NOMINIMIZE </item>
<item> NOMINVALUE </item>
<item> NOMONITORING </item>
<item> NONE </item>
<item> NOORDER </item>
<item> NOOVERRIDE </item>
<item> NOPARALLEL </item>
<item> NORELY </item>
<item> NORESETLOGS </item>
<item> NOREVERSE </item>
<item> NORMAL </item>
<item> NOSEGMENT </item>
<item> NOSORT </item>
<item> NOT </item>
<item> NOTHING </item>
<item> NOVALIDATE </item>
<item> NOWAIT </item>
<item> NULL </item>
<item> NULLS </item>
<item> OBJNO </item>
<item> OBJNO_REUSE </item>
<item> OF </item>
<item> OFF </item>
<item> OFFLINE </item>
<item> OID </item>
<item> OIDINDEX </item>
<item> OLD </item>
<item> ON </item>
<item> ONLINE </item>
<item> ONLY </item>
<item> OPCODE </item>
<item> OPEN </item>
<item> OPERATOR </item>
<item> OPTIMAL </item>
<item> OPTIMIZER_GOAL </item>
<item> OPTION </item>
<item> OR </item>
<item> ORDER </item>
<item> ORGANIZATION </item>
<item> OUT </item>
<item> OUTER </item>
<item> OUTLINE </item>
<item> OVER </item>
<item> OVERFLOW </item>
<item> OVERLAPS </item>
<item> OWN </item>
<item> PACKAGE </item>
<item> PACKAGES </item>
<item> PARALLEL </item>
<item> PARAMETERS </item>
<item> PARENT </item>
<item> PARTITION </item>
<item> PARTITIONS </item>
<item> PARTITION_HASH </item>
<item> PARTITION_RANGE </item>
<item> PASSWORD </item>
<item> PASSWORD_GRACE_TIME </item>
<item> PASSWORD_LIFE_TIME </item>
<item> PASSWORD_LOCK_TIME </item>
<item> PASSWORD_REUSE_MAX </item>
<item> PASSWORD_REUSE_TIME </item>
<item> PASSWORD_VERIFY_FUNCTION </item>
<item> PCTFREE </item>
<item> PCTINCREASE </item>
<item> PCTTHRESHOLD </item>
<item> PCTUSED </item>
<item> PCTVERSION </item>
<item> PERCENT </item>
<item> PERMANENT </item>
<item> PLAN </item>
<item> PLSQL_DEBUG </item>
<item> POST_TRANSACTION </item>
<item> PREBUILT </item>
<item> PRECEDING </item>
<item> PREPARE </item>
<item> PRESENT </item>
<item> PRESERVE </item>
<item> PREVIOUS </item>
<item> PRIMARY </item>
<item> PRIOR </item>
<item> PRIVATE </item>
<item> PRIVATE_SGA </item>
<item> PRIVILEGE </item>
<item> PRIVILEGES </item>
<item> PROCEDURE </item>
<item> PROFILE </item>
<item> PUBLIC </item>
<item> PURGE </item>
<item> QUERY </item>
<item> QUEUE </item>
<item> QUOTA </item>
<item> RANDOM </item>
<item> RANGE </item>
<item> RBA </item>
<item> READ </item>
<item> READS </item>
<item> REBUILD </item>
<item> RECORDS_PER_BLOCK </item>
<item> RECOVER </item>
<item> RECOVERABLE </item>
<item> RECOVERY </item>
<item> RECYCLE </item>
<item> REDUCED </item>
<item> REFERENCES </item>
<item> REFERENCING </item>
<item> REFRESH </item>
<item> RELY </item>
<item> RENAME </item>
<item> REPLACE </item>
<item> RESET </item>
<item> RESETLOGS </item>
<item> RESIZE </item>
<item> RESOLVE </item>
<item> RESOLVER </item>
<item> RESOURCE </item>
<item> RESTRICT </item>
<item> RESTRICTED </item>
<item> RESUME </item>
<item> RETURN </item>
<item> RETURNING </item>
<item> REUSE </item>
<item> REVERSE </item>
<item> REVOKE </item>
<item> REWRITE </item>
<item> RIGHT </item>
<item> ROLE </item>
<item> ROLES </item>
<item> ROLLBACK </item>
<item> ROLLUP </item>
<item> ROW </item>
<item> ROWNUM </item>
<item> ROWS </item>
<item> RULE </item>
<item> SAMPLE </item>
<item> SAVEPOINT </item>
<item> SCAN </item>
<item> SCAN_INSTANCES </item>
<item> SCHEMA </item>
<item> SCN </item>
<item> SCOPE </item>
<item> SD_ALL </item>
<item> SD_INHIBIT </item>
<item> SD_SHOW </item>
<item> SEGMENT </item>
<item> SEG_BLOCK </item>
<item> SEG_FILE </item>
<item> SELECT </item>
<item> SELECTIVITY </item>
<item> SEQUENCE </item>
<item> SERIALIZABLE </item>
<item> SERVERERROR </item>
<item> SESSION </item>
<item> SESSION_CACHED_CURSORS </item>
<item> SESSIONS_PER_USER </item>
<item> SET </item>
<item> SHARE </item>
<item> SHARED </item>
<item> SHARED_POOL </item>
<item> SHRINK </item>
<item> SHUTDOWN </item>
<item> SINGLETASK </item>
<item> SIZE </item>
<item> SKIP </item>
<item> SKIP_UNUSABLE_INDEXES </item>
<item> SNAPSHOT </item>
<item> SOME </item>
<item> SORT </item>
<item> SOURCE </item>
<item> SPECIFICATION </item>
<item> SPLIT </item>
<item> SQL_TRACE </item>
<item> STANDBY </item>
<item> START </item>
<item> STARTUP </item>
<item> STATEMENT_ID </item>
<item> STATISTICS </item>
<item> STATIC </item>
<item> STOP </item>
<item> STORAGE </item>
<item> STORE </item>
<item> STRUCTURE </item>
<item> SUBMULTISET </item>
<item> SUBPARTITION </item>
<item> SUBPARTITIONS </item>
<item> SUCCESSFUL </item>
<item> SUMMARY </item>
<item> SUPPLEMENTAL </item>
<item> SUSPEND </item>
<item> SWITCH </item>
<item> SYS_OP_BITVEC </item>
<item> SYS_OP_ENFORCE_NOT_NULL$ </item>
<item> SYS_OP_NOEXPAND </item>
<item> SYS_OP_NTCIMG$ </item>
<item> SYNONYM </item>
<item> SYSDBA </item>
<item> SYSOPER </item>
<item> SYSTEM </item>
<item> TABLE </item>
<item> TABLES </item>
<item> TABLESPACE </item>
<item> TABLESPACE_NO </item>
<item> TABNO </item>
<item> TEMPFILE </item>
<item> TEMPORARY </item>
<item> THAN </item>
<item> THE </item>
<item> THEN </item>
<item> THREAD </item>
<item> THROUGH </item>
<item> TIMEOUT </item>
<item> TIMEZONE_HOUR </item>
<item> TIMEZONE_MINUTE </item>
<item> TIME_ZONE </item>
<item> TO </item>
<item> TOPLEVEL </item>
<item> TRACE </item>
<item> TRACING </item>
<item> TRAILING </item>
<item> TRANSACTION </item>
<item> TRANSITIONAL </item>
<item> TRIGGER </item>
<item> TRIGGERS </item>
<item> TRUE </item>
<item> TRUNCATE </item>
<item> TYPE </item>
<item> TYPES </item>
<item> UNARCHIVED </item>
<item> UNBOUND </item>
<item> UNBOUNDED </item>
<item> UNDO </item>
<item> UNIFORM </item>
<item> UNION </item>
<item> UNIQUE </item>
<item> UNLIMITED </item>
<item> UNLOCK </item>
<item> UNRECOVERABLE </item>
<item> UNTIL </item>
<item> UNUSABLE </item>
<item> UNUSED </item>
<item> UPD_INDEXES </item>
<item> UPDATABLE </item>
<item> UPDATE </item>
<item> UPPPER </item>
<item> USAGE </item>
<item> USE </item>
<item> USE_STORED_OUTLINES </item>
<item> USER_DEFINED </item>
<item> USING </item>
<item> VALIDATE </item>
<item> VALIDATION </item>
<item> VALUES </item>
<item> VIEW </item>
<item> WHEN </item>
<item> WHENEVER </item>
<item> WHERE </item>
<item> WITH </item>
<item> WITHOUT </item>
<item> WORK </item>
<item> WRITE </item>
</list>
<list name="operators">
<item> + </item>
<item> - </item>
<item> * </item>
<item> / </item>
<item> || </item>
<item> = </item>
<item> != </item>
<item> &lt;&gt; </item>
<item> &lt; </item>
<item> &lt;= </item>
<item> &gt; </item>
<item> &gt;= </item>
<item> ~= </item>
<item> ^= </item>
<item> := </item>
<item> =&gt; </item>
<item> ** </item>
<item> .. </item>
</list>
<list name="functions">
<item> ABS </item>
<item> ACOS </item>
<item> ADD_MONTHS </item>
<item> ASCII </item>
<item> ASCIISTR </item>
<item> ASIN </item>
<item> ATAN </item>
<item> ATAN2 </item>
<item> AVG </item>
<item> BFILENAME </item>
<item> BIN_TO_NUM </item>
<item> BITAND </item>
<item> CARDINALITY </item>
<item> CAST </item>
<item> CEIL </item>
<item> CHARTOROWID </item>
<item> CHR </item>
<item> COALESCE </item>
<item> COLLECT </item>
<item> COMPOSE </item>
<item> CONCAT </item>
<item> CONVERT </item>
<item> CORR </item>
<item> CORR_K </item>
<item> CORR_S </item>
<item> COS </item>
<item> COSH </item>
<item> COUNT </item>
<item> COVAR_POP </item>
<item> COVAR_SAMP </item>
<item> CUME_DIST </item>
<item> CURRENT_DATE </item>
<item> CURRENT_TIMESTAMP </item>
<item> CV </item>
<item> DBTIMEZONE </item>
<item> DECODE </item>
<item> DECOMPOSE </item>
<item> DENSE_RANK </item>
<item> DEPTH </item>
<item> DEREF </item>
<item> DUMP </item>
<item> EMPTY_BLOB </item>
<item> EMPTY_CLOB </item>
<item> EXISTSNODE </item>
<item> EXP </item>
<item> EXTRACT </item>
<item> EXTRACTVALUE </item>
<item> FIRST </item>
<item> FIRST_VALUE </item>
<item> FLOOR </item>
<item> FROM_TZ </item>
<item> GREATEST </item>
<item> GROUP_ID </item>
<item> GROUPING </item>
<item> GROUPING_ID </item>
<item> HEXTORAW </item>
<item> INITCAP </item>
<item> INSTR </item>
<item> INSTRB </item>
<item> LAG </item>
<item> LAST </item>
<item> LAST_DAY </item>
<item> LAST_VALUE </item>
<item> LEAD </item>
<item> LEAST </item>
<item> LENGTH </item>
<item> LENGTHB </item>
<item> LN </item>
<item> LNNVL </item>
<item> LOCALTIMESTAMP </item>
<item> LOG </item>
<item> LOWER </item>
<item> LPAD </item>
<item> LTRIM </item>
<item> MAKE_REF </item>
<item> MAX </item>
<item> MEDIAN </item>
<item> MIN </item>
<item> MOD </item>
<item> MONTHS_BETWEEN </item>
<item> NANVL </item>
<item> NCHR </item>
<item> NEW_TIME </item>
<item> NEXT_DAY </item>
<item> NLS_CHARSET_DECL_LEN </item>
<item> NLS_CHARSET_ID </item>
<item> NLS_CHARSET_NAME </item>
<item> NLS_INITCAP </item>
<item> NLS_LOWER </item>
<item> NLS_UPPER </item>
<item> NLSSORT </item>
<item> NTILE </item>
<item> NULLIF </item>
<item> NUMTODSINTERVAL </item>
<item> NUMTOYMINTERVAL </item>
<item> NVL </item>
<item> NVL2 </item>
<item> ORA_HASH </item>
<item> ORA_ROWSCN </item>
<item> PERCENT_RANK </item>
<item> PERCENTILE_CONT </item>
<item> PERCENTILE_DISC </item>
<item> POWER </item>
<item> POWERMULTISET </item>
<item> POWERMULTISET_BY_CARDINALITY </item>
<item> PRESENTNNV </item>
<item> PRESENTV </item>
<item> RANK </item>
<item> RATIO_TO_REPORT </item>
<item> RAWTOHEX </item>
<item> RAWTONHEX </item>
<item> REF </item>
<item> REFTOHEX </item>
<item> REGEXP_INSTR </item>
<item> REGEXP_LIKE </item>
<item> REGEXP_REPLACE </item>
<item> REGEXP_SUBSTR </item>
<item> REGR_SLOPE </item>
<item> REGR_INTERCEPT </item>
<item> REGR_COUNT </item>
<item> REGR_R2 </item>
<item> REGR_AVGX </item>
<item> REGR_AVGY </item>
<item> REGR_SXX </item>
<item> REGR_SYY </item>
<item> REGR_SXY </item>
<item> REMAINDER </item>
<item> ROUND </item>
<item> ROW_NUMBER </item>
<item> ROWIDTOCHAR </item>
<item> ROWIDTONCHAR </item>
<item> RPAD </item>
<item> RTRIM </item>
<item> SCN_TO_TIMESTAMP </item>
<item> SESSIONTIMEZONE </item>
<item> SIGN </item>
<item> SIN </item>
<item> SINH </item>
<item> SOUNDEX </item>
<item> SQRT </item>
<item> STATS_BINOMIAL_TEST </item>
<item> STATS_CROSSTAB </item>
<item> STATS_F_TEST </item>
<item> STATS_KS_TEST </item>
<item> STATS_MODE </item>
<item> STATS_MW_TEST </item>
<item> STATS_ONE_WAY_ANOVA </item>
<item> STATS_T_TEST_ONE </item>
<item> STATS_T_TEST_PAIRED </item>
<item> STATS_T_TEST_INDEP </item>
<item> STATS_T_TEST_INDEPU </item>
<item> STATS_WSR_TEST </item>
<item> STDDEV </item>
<item> STDDEV_POP </item>
<item> STDDEV_SAMP </item>
<item> SUBSTR </item>
<item> SUBSTRB </item>
<item> SUM </item>
<item> SYS_CONNECT_BY_PATH </item>
<item> SYS_CONTEXT </item>
<item> SYS_DBURIGEN </item>
<item> SYS_EXTRACT_UTC </item>
<item> SYS_GUID </item>
<item> SYS_TYPEID </item>
<item> SYS_XMLAGG </item>
<item> SYS_XMLGEN </item>
<item> SYSDATE </item>
<item> SYSTIMESTAMP </item>
<item> TAN </item>
<item> TANH </item>
<item> TIMESTAMP_TO_SCN </item>
<item> TO_BINARY_DOUBLE </item>
<item> TO_BINARY_FLOAT </item>
<item> TO_CHAR </item>
<item> TO_CLOB </item>
<item> TO_DATE </item>
<item> TO_DSINTERVAL </item>
<item> TO_LOB </item>
<item> TO_MULTI_BYTE </item>
<item> TO_NCHAR </item>
<item> TO_NCLOB </item>
<item> TO_NUMBER </item>
<item> TO_SINGLE_BYTE </item>
<item> TO_TIMESTAMP </item>
<item> TO_TIMESTAMP_TZ </item>
<item> TO_YMINTERVAL </item>
<item> TRANSLATE </item>
<item> TREAT </item>
<item> TRIM </item>
<item> TRUNC </item>
<item> TZ_OFFSET </item>
<item> UID </item>
<item> UNISTR </item>
<item> UPDATEXML </item>
<item> UPPER </item>
<item> USER </item>
<item> USERENV </item>
<item> VALUE </item>
<item> VAR_POP </item>
<item> VAR_SAMP </item>
<item> VARIANCE </item>
<item> VSIZE </item>
<item> WIDTH_BUCKET </item>
<item> XMLAGG </item>
<item> XMLCOLATTVAL </item>
<item> XMLCONCAT </item>
<item> XMLELEMENT </item>
<item> XMLFOREST </item>
<item> XMLSEQUENCE </item>
<item> XMLTRANSFORM </item>
</list>
<list name="types">
<item> ANYDATA </item>
<item> ANYDATASET </item>
<item> ANYTYPE </item>
<item> ARRAY </item>
<item> BFILE </item>
<item> BINARY_DOUBLE </item>
<item> BINARY_FLOAT </item>
<item> BINARY_INTEGER </item>
<item> BLOB </item>
<item> BOOLEAN </item>
<item> CFILE </item>
<item> CHAR </item>
<item> CHARACTER </item>
<item> CLOB </item>
<item> DATE </item>
<item> DAY </item>
<item> DBURITYPE </item>
<item> DEC </item>
<item> DECIMAL </item>
<item> DOUBLE </item>
<item> FLOAT </item>
<item> FLOB </item>
<item> HTTPURITYPE </item>
<item> INT </item>
<item> INTEGER </item>
<item> INTERVAL </item>
<item> LOB </item>
<item> LONG </item>
<item> MLSLABEL </item>
<item> MONTH </item>
<item> NATIONAL </item>
<item> NCHAR </item>
<item> NCLOB </item>
<item> NUMBER </item>
<item> NUMERIC </item>
<item> NVARCHAR </item>
<item> OBJECT </item>
<item> PLS_INTEGER </item>
<item> PRECISION </item>
<item> RAW </item>
<item> RECORD </item>
<item> REAL </item>
<item> ROWID </item>
<item> SECOND </item>
<item> SINGLE </item>
<item> SMALLINT </item>
<item> TIME </item>
<item> TIMESTAMP </item>
<item> URIFACTORYTYPE </item>
<item> URITYPE </item>
<item> UROWID </item>
<item> VARCHAR </item>
<item> VARCHAR2 </item>
<item> VARYING </item>
<item> VARRAY </item>
<item> XMLTYPE </item>
<item> YEAR </item>
<item> ZONE </item>
</list>
<contexts>
<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
<keyword attribute="Keyword" String="keywords" context="#stay"/>
<keyword attribute="Operator" String="operators" context="#stay"/>
<keyword attribute="Function" String="functions" context="#stay"/>
<keyword attribute="Data Type" String="types" context="#stay"/>
<RegExpr attribute="Data Type" String="%bulk_exceptions\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%bulk_rowcount\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%found\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%isopen\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%notfound\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%rowcount\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%rowtype\b" insensitive="true" context="#stay"/>
<RegExpr attribute="Data Type" String="%type\b" insensitive="true" context="#stay"/>
<Float attribute="Float" context="#stay"/>
<Int attribute="Decimal" context="#stay"/>
<DetectChar attribute="String" context="String literal" char="'"/>
<Detect2Chars attribute="Comment" context="Singleline PL/SQL-style comment" char="-" char1="-"/>
<Detect2Chars attribute="Comment" context="Multiline C-style comment" char="/" char1="*"/>
<RegExpr attribute="Comment" context="SQL*Plus remark directive" String="^rem\b" insensitive="true" column="0"/>
<DetectChar attribute="Identifier" context="User-defined identifier" char="&quot;"/>
<RegExpr attribute="External Variable" context="#stay" String="(:|&amp;&amp;?)\w+"/>
<RegExpr attribute="Symbol" context="#stay" String="^/$" column="0"/>
<RegExpr attribute="Preprocessor" context="SQL*Plus directive to include file" String="^@@?[^@ \t\r\n]" column="0"/>
</context>
<context name="String literal" attribute="String" lineEndContext="#stay">
<Detect2Chars attribute="String" context="#pop" char="\" char1="'" />
<HlCStringChar attribute="String Char" context="#stay"/>
<RegExpr attribute="External Variable" context="#stay" String="&amp;&amp;?\w+"/>
<Detect2Chars attribute="String Char" context="#stay" char="'" char1="'" />
<DetectChar attribute="String" context="#pop" char="'"/>
</context>
<context name="Singleline PL/SQL-style comment" attribute="Comment" lineEndContext="#pop"/>
<context name="Multiline C-style comment" attribute="Comment" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
</context>
<context name="SQL*Plus remark directive" attribute="Comment" lineEndContext="#pop"/>
<context name="User-defined identifier" attribute="Identifier" lineEndContext="#pop">
<DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
</context>
<context name="SQL*Plus directive to include file" attribute="Preprocessor" lineEndContext="#pop"/>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal"/>
<itemData name="Keyword" defStyleNum="dsKeyword"/>
<itemData name="Operator" defStyleNum="dsNormal"/>
<itemData name="Function" defStyleNum="dsFunction"/>
<itemData name="Data Type" defStyleNum="dsDataType"/>
<itemData name="Decimal" defStyleNum="dsDecVal"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="String Char" defStyleNum="dsChar"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="Identifier" defStyleNum="dsOthers"/>
<itemData name="External Variable" defStyleNum="dsChar"/>
<itemData name="Symbol" defStyleNum="dsChar"/>
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="--"/>
<comment name="multiLine" start="/*" end="*/"/>
</comments>
<keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:."/>
</general>
</language>

View File

@@ -1,536 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- Authors: Alexander Dederer & JM. Philippe -->
<!-- Copyright: BSD copyright & Irsid - Arcelor Innovation R&D -->
<!-- Ported to Kate 2.0/ KWrite 4.0 by Joseph Wenninger (Updated by Simon Robins)-->
<!--
Updated by Pawel Salawa (boogie at scripts dot one dot pl)
Revision history:
1.10:
- Fixed problem with single ':' character after variable name (it's no longer variable,
because only double-colon is namespace delimiter and can be part of variable name).
- Fixed problem with matching quote character next to regular character, for example:
puts {"string"}
In that case left bracked was marked as string, but it's no longer like that.
- Fixed problem with variable names like: ${text\}test}
It whole is valid variable name, because of escape character.
- Fixed problem with marking ';' character as a comment when '#' character was after the ';'.
- Fixed problem with marking options. '-' character after word-delimiter character caused
marking that word-delimiter character as option too, even it wasn't white-space.
- Few other minor optimalizations.
1.09:
- Added fast comments support (Ctrl+d or whatever your shortcut is)
- Fixed single-character variables detection
- Fixed detection of varaibles with names containing serval namespace delimiters (::)
-->
<language name="Tcl/Tk" version="1.10" kateversion="2.4" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl">
<highlighting>
<list name="keywords">
<item> after </item>
<item> append </item>
<item> AppleScript </item>
<item> argv </item>
<item> argc </item>
<item> array </item>
<item> auto_execk </item>
<item> auto_load </item>
<item> auto_mkindex </item>
<item> auto_path </item>
<item> auto_reset </item>
<item> beep </item>
<item> bell </item>
<item> binary </item>
<item> bind </item>
<item> bindtags </item>
<item> bgerror </item>
<item> break </item>
<item> button </item>
<item> canvas </item>
<item> case </item>
<item> catch </item>
<item> cd </item>
<item> checkbutton </item>
<item> clipboard </item>
<item> clock </item>
<item> close </item>
<item> concat </item>
<item> console </item>
<item> continue </item>
<item> dde </item>
<item> destroy </item>
<item> else </item>
<item> elseif </item>
<item> encoding </item>
<item> entry </item>
<item> env </item>
<item> eof </item>
<item> error </item>
<item> errorCode </item>
<item> errorInfo </item>
<item> eval </item>
<item> event </item>
<item> exec </item>
<item> exit </item>
<item> expr </item>
<item> fblocked </item>
<item> fconfigure </item>
<item> fcopy </item>
<item> file </item>
<item> fileevent </item>
<item> flush </item>
<item> focus </item>
<item> font </item>
<item> for </item>
<item> foreach </item>
<item> format </item>
<item> frame </item>
<item> gets </item>
<item> glob </item>
<item> global </item>
<item> grab </item>
<item> grid </item>
<item> history </item>
<item> if </item>
<item> image </item>
<item> incr </item>
<item> info </item>
<item> interp </item>
<item> join </item>
<item> label </item>
<item> lappend </item>
<item> lindex </item>
<item> linsert </item>
<item> list </item>
<item> listbox </item>
<item> llength </item>
<item> load </item>
<item> lower </item>
<item> lrange </item>
<item> lreplace </item>
<item> lsearch </item>
<item> lsort </item>
<item> menu </item>
<item> menubutton </item>
<item> message </item>
<item> namespace </item>
<item> open </item>
<item> option </item>
<item> OptProc </item>
<item> pack </item>
<item> package </item>
<item> parray </item>
<item> pid </item>
<item> place </item>
<item> pkg_mkindex </item>
<item> proc </item>
<item> puts </item>
<item> pwd </item>
<item> radiobutton </item>
<item> raise </item>
<item> read </item>
<item> regexp </item>
<item> registry </item>
<item> regsub </item>
<item> rename </item>
<item> resource </item>
<item> return </item>
<item> scale </item>
<item> scan </item>
<item> scrollbar </item>
<item> seek </item>
<item> selection </item>
<item> send </item>
<item> set </item>
<item> socket </item>
<item> source </item>
<item> split </item>
<item> string </item>
<item> subst </item>
<item> switch </item>
<item> tclLog </item>
<item> tcl_endOfWord </item>
<item> tcl_findLibrary </item>
<item> tcl_library </item>
<item> tcl_patchLevel </item>
<item> tcl_platform </item>
<item> tcl_precision </item>
<item> tcl_rcFileName </item>
<item> tcl_rcRsrcName </item>
<item> tcl_startOfNextWord </item>
<item> tcl_startOfPreviousWord </item>
<item> tcl_traceCompile </item>
<item> tcl_traceExec </item>
<item> tcl_version </item>
<item> tcl_wordBreakAfter </item>
<item> tcl_wordBreakBefore </item>
<item> tell </item>
<item> text </item>
<item> time </item>
<item> tk </item>
<item> tkTabToWindow </item>
<item> tkwait </item>
<item> tk_chooseColor </item>
<item> tk_chooseDirectory </item>
<item> tk_focusFollowMouse </item>
<item> tk_focusNext </item>
<item> tk_focusPrev </item>
<item> tk_getOpenFile </item>
<item> tk_getSaveFile </item>
<item> tk_library </item>
<item> tk_messageBox </item>
<item> tk_optionMenu </item>
<item> tk_patchLevel </item>
<item> tk_popup </item>
<item> tk_strictMotif </item>
<item> tk_version </item>
<item> toplevel </item>
<item> trace </item>
<item> unknown </item>
<item> unset </item>
<item> update </item>
<item> uplevel </item>
<item> upvar </item>
<item> variable </item>
<item> vwait </item>
<item> while </item>
<item> winfo </item>
<item> wm </item>
</list>
<list name="keywords-opt">
<item> add </item>
<item> args </item>
<item> atime </item>
<item> attributes </item>
<item> body </item>
<item> bytelength </item>
<item> cancel </item>
<item> channels </item>
<item> clicks </item>
<item> cmdcount </item>
<item> commands </item>
<item> compare </item>
<item> complete </item>
<item> convertfrom </item>
<item> convertto </item>
<item> copy </item>
<item> default </item>
<item> delete </item>
<item> dirname </item>
<item> equal </item>
<item> executable </item>
<item> exists </item>
<item> extension </item>
<item> first </item>
<item> forget </item>
<item> format </item>
<item> functions </item>
<item> globals </item>
<item> hostname </item>
<item> idle </item>
<item> ifneeded </item>
<item> index </item>
<item> info </item>
<item> is </item>
<item> isdirectory </item>
<item> isfile </item>
<item> join </item>
<item> last </item>
<item> length </item>
<item> level </item>
<item> library </item>
<item> link </item>
<item> loaded </item>
<item> locals </item>
<item> lstat </item>
<item> map </item>
<item> match </item>
<item> mkdir </item>
<item> mtime </item>
<item> nameofexecutable </item>
<item> names </item>
<item> nativename </item>
<item> normalize </item>
<item> number </item>
<item> owned </item>
<item> patchlevel </item>
<item> pathtype </item>
<item> present </item>
<item> procs </item>
<item> provide </item>
<item> range </item>
<item> readable </item>
<item> readlink </item>
<item> remove </item>
<item> rename </item>
<item> repeat </item>
<item> replace </item>
<item> require </item>
<item> rootname </item>
<item> scan </item>
<item> script </item>
<item> seconds </item>
<item> separator </item>
<item> sharedlibextension </item>
<item> size </item>
<item> split </item>
<item> stat </item>
<item> system </item>
<item> tail </item>
<item> tclversion </item>
<item> tolower </item>
<item> totitle </item>
<item> toupper </item>
<item> trim </item>
<item> trimleft </item>
<item> trimright </item>
<item> type </item>
<item> unknown </item>
<item> variable </item>
<item> vars </item>
<item> vcompare </item>
<item> vdelete </item>
<item> versions </item>
<item> vinfo </item>
<item> volumes </item>
<item> vsatisfies </item>
<item> wordend </item>
<item> wordstart </item>
<item> writable </item>
<item> activate </item>
<item> actual </item>
<item> addtag </item>
<item> append </item>
<item> appname </item>
<item> aspect </item>
<item> atom </item>
<item> atomname </item>
<item> bbox </item>
<item> bind </item>
<item> broadcast </item>
<item> canvasx </item>
<item> canvasy </item>
<item> caret </item>
<item> cells </item>
<item> cget </item>
<item> children </item>
<item> class </item>
<item> clear </item>
<item> client </item>
<item> clone </item>
<item> colormapfull </item>
<item> colormapwindows </item>
<item> command </item>
<item> configure </item>
<item> containing </item>
<item> coords </item>
<item> create </item>
<item> current </item>
<item> curselection </item>
<item> dchars </item>
<item> debug </item>
<item> deiconify </item>
<item> delta </item>
<item> depth </item>
<item> deselect </item>
<item> dlineinfo </item>
<item> dtag </item>
<item> dump </item>
<item> edit </item>
<item> entrycget </item>
<item> entryconfigure </item>
<item> families </item>
<item> find </item>
<item> flash </item>
<item> focus </item>
<item> focusmodel </item>
<item> fpixels </item>
<item> fraction </item>
<item> frame </item>
<item> generate </item>
<item> geometry </item>
<item> get </item>
<item> gettags </item>
<item> grid </item>
<item> group </item>
<item> handle </item>
<item> height </item>
<item> hide </item>
<item> iconbitmap </item>
<item> iconify </item>
<item> iconmask </item>
<item> iconname </item>
<item> iconposition </item>
<item> iconwindow </item>
<item> icursor </item>
<item> id </item>
<item> identify </item>
<item> image </item>
<item> insert </item>
<item> interps </item>
<item> inuse </item>
<item> invoke </item>
<item> ismapped </item>
<item> itemcget </item>
<item> itemconfigure </item>
<item> keys </item>
<item> lower </item>
<item> manager </item>
<item> mark </item>
<item> maxsize </item>
<item> measure </item>
<item> metrics </item>
<item> minsize </item>
<item> move </item>
<item> name </item>
<item> nearest </item>
<item> overrideredirect </item>
<item> own </item>
<item> panecget </item>
<item> paneconfigure </item>
<item> panes </item>
<item> parent </item>
<item> pathname </item>
<item> pixels </item>
<item> pointerx </item>
<item> pointerxy </item>
<item> pointery </item>
<item> positionfrom </item>
<item> post </item>
<item> postcascade </item>
<item> postscript </item>
<item> protocol </item>
<item> proxy </item>
<item> raise </item>
<item> release </item>
<item> reqheight </item>
<item> reqwidth </item>
<item> resizable </item>
<item> rgb </item>
<item> rootx </item>
<item> rooty </item>
<item> scale </item>
<item> scaling </item>
<item> screen </item>
<item> screencells </item>
<item> screendepth </item>
<item> screenheight </item>
<item> screenmmheight </item>
<item> screenmmwidth </item>
<item> screenvisual </item>
<item> screenwidth </item>
<item> search </item>
<item> see </item>
<item> select </item>
<item> selection </item>
<item> server </item>
<item> set </item>
<item> show </item>
<item> sizefrom </item>
<item> stackorder </item>
<item> state </item>
<item> status </item>
<item> tag </item>
<item> title </item>
<item> toplevel </item>
<item> transient </item>
<item> types </item>
<item> unpost </item>
<item> useinputmethods </item>
<item> validate </item>
<item> values </item>
<item> viewable </item>
<item> visual </item>
<item> visualid </item>
<item> visualsavailable </item>
<item> vrootheight </item>
<item> vrootwidth </item>
<item> vrootx </item>
<item> vrooty </item>
<item> width </item>
<item> window </item>
<item> windowingsystem </item>
<item> withdraw </item>
<item> x </item>
<item> xview </item>
<item> y </item>
</list>
<contexts>
<context name = "Base" attribute = "Normal Text" lineEndContext="#stay">
<!-- Virtual blocks -->
<RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
<RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="region" firstNonSpace="true"/>
<!-- Standard -->
<keyword String = "keywords" attribute = "Keyword" context="#stay"/>
<keyword String = "keywords-opt" attribute = "Parameter" context="#stay"/>
<Float attribute = "Float" context="#stay"/>
<Int attribute ="Decimal" context="#stay"/>
<RegExpr String="\\." attribute = "Char" context = "#stay"/>
<!-- Options -->
<RegExpr String = "\s-\w+" attribute = "Parameter" context="#stay"/>
<!-- Variables -->
<RegExpr String = "\$\{([^\}]|\\\})+\}" attribute = "Variable" context="#stay"/>
<RegExpr String = "\$(::|\w)+" attribute = "Variable" context="#stay"/>
<!-- Strings -->
<RegExpr String = "&quot;{2}" attribute = "String" context="#stay"/>
<RegExpr String = "&quot;" attribute = "String" context="String"/>
<!-- Comments -->
<DetectChar char = ";" attribute = "Normal Text" context="New command line" />
<DetectChar char = "#" attribute = "Comment" context="Comment" firstNonSpace="true"/>
<!-- Braces, brackets, etc -->
<DetectChar char = "{" attribute = "Keyword" context="#stay" beginRegion="block"/>
<DetectChar char = "}" attribute = "Keyword" context="#stay" endRegion="block"/>
<DetectChar char = "[" attribute = "Keyword" context="#stay"/>
<DetectChar char = "]" attribute = "Keyword" context="#stay"/>
</context>
<context name = "String" attribute = "String" lineEndContext="#stay">
<RegExpr String="\\." attribute = "Char" context = "#stay"/>
<DetectChar char="&quot;" attribute = "String" context = "#pop"/>
<DetectChar char = "$" attribute = "Variable" context="#stay"/>
</context>
<context name = "Comment" attribute = "Comment" lineEndContext="#pop"/>
<context name = "New command line" attribute = "Normal Text" lineEndContext="#stay">
<RegExpr String = "\s*#" attribute="Comment" context="Comment" />
<RegExpr String = "." attribute="Normal Text" context="#pop" lookAhead="true" />
</context>
</contexts>
<itemDatas>
<itemData name = "Normal Text" defStyleNum = "dsNormal"/>
<itemData name = "Keyword" defStyleNum = "dsKeyword"/>
<itemData name = "Decimal" defStyleNum = "dsDecVal"/>
<itemData name = "Float" defStyleNum = "dsFloat"/>
<itemData name = "String" defStyleNum = "dsString"/>
<itemData name = "Comment" defStyleNum = "dsComment"/>
<itemData name = "Parameter" defStyleNum = "dsOthers"/>
<itemData name = "Variable" defStyleNum = "dsDataType"/>
<itemData name = "Char" defStyleNum="dsChar"/>
<itemData name = "Region Marker" defStyleNum="dsRegionMarker"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="singleLine" start="#" />
</comments>
<keywords casesensitive="1"/>
</general>
</language>

View File

@@ -1,147 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY name "[A-Za-z_:][\w.:_-]*">
<!ENTITY entref "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
]>
<language name="XML" version="1.97" kateversion="2.4" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
<highlighting>
<contexts>
<context name="Start" attribute="Normal Text" lineEndContext="#stay">
<IncludeRules context="FindXML" />
</context>
<context name="FindXML" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
<StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
<RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
<RegExpr attribute="Element" context="Element" String="&lt;&name;" beginRegion="element" />
<IncludeRules context="FindEntityRefs" />
<DetectIdentifier />
</context>
<context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
<AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
</context>
<context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
<RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
<AnyChar attribute="Error" context="#stay" String="&amp;%" />
</context>
<context name="Comment" attribute="Comment" lineEndContext="#stay">
<DetectSpaces />
<StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
<RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
</context>
<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
<DetectSpaces />
<DetectIdentifier />
<StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
<StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
</context>
<context name="PI" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
</context>
<context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
<DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
</context>
<context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
<RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Doctype" context="#pop" char="&gt;" />
<DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
<DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
</context>
<context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char="&quot;" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop" char="&apos;" />
<IncludeRules context="FindPEntityRefs" />
</context>
<context name="Element" attribute="Normal Text" lineEndContext="#stay">
<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="element" />
<DetectChar attribute="Element" context="El Content" char="&gt;" />
<RegExpr attribute="Attribute" context="Attribute" String="^&name;" />
<RegExpr attribute="Attribute" context="Attribute" String="\s+&name;" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="El Content" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Element" context="El End" String="&lt;/&name;" />
<IncludeRules context="FindXML" />
</context>
<context name="El End" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" endRegion="element" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="Attribute" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Attribute" context="Value" char="=" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="Value" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Value" context="Value DQ" char="&quot;" />
<DetectChar attribute="Value" context="Value SQ" char="&apos;" />
<RegExpr attribute="Error" context="#stay" String="\S" />
</context>
<context name="Value DQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop#pop#pop" char="&quot;" />
<IncludeRules context="FindEntityRefs" />
</context>
<context name="Value SQ" attribute="Value" lineEndContext="#stay">
<DetectChar attribute="Value" context="#pop#pop#pop" char="&apos;" />
<IncludeRules context="FindEntityRefs" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
<itemData name="Processing Instruction" defStyleNum="dsKeyword" />
<itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
<itemData name="Element" defStyleNum="dsKeyword" />
<itemData name="Attribute" defStyleNum="dsOthers" />
<itemData name="Value" defStyleNum="dsString" color="#a00" />
<itemData name="EntityRef" defStyleNum="dsDecVal" />
<itemData name="PEntityRef" defStyleNum="dsDecVal" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="multiLine" start="&lt;!--" end="--&gt;" />
</comments>
<indentation mode="xml" />
</general>
</language>

View File

@@ -47,8 +47,6 @@
#include <QtCore/QSharedPointer>
#include <QtCore/QFileInfo>
#include <QDebug>
using namespace GenericEditor;
using namespace Internal;
@@ -97,7 +95,7 @@ void Editor::configure()
try {
const QString &definitionId =
GenericEditorPlugin::instance()->definitionIdByMimeType(mimeType);
QSharedPointer<HighlightDefinition> definition =
const QSharedPointer<HighlightDefinition> &definition =
GenericEditorPlugin::instance()->definition(definitionId);
Highlighter *highlighter = new Highlighter(definition->initialContext());
@@ -112,9 +110,10 @@ void Editor::configure()
//@todo: It's possible to specify an indenter style in the definition file. However, this
// is not really being used because Kate recommends to configure indentation through
// another editor feature. Maybe we should provide something similar in Creator?
// For now the normal indenter is used.
// another feature. Maybe we should provide something similar in Creator? For now the
// normal indenter is used.
m_indenter.reset(new TextEditor::NormalIndenter);
} catch (const HighlighterException &) {
// No highlighter will be set.
}

View File

@@ -36,11 +36,9 @@
#include "editorfactory.h"
#include <coreplugin/icore.h>
#include <coreplugin/mimedatabase.h>
#include <texteditor/texteditorsettings.h>
#include <utils/qtcassert.h>
#include <cppeditor/cppeditorconstants.h>
#include <qmljseditor/qmljseditorconstants.h>
#include <qtconcurrent/QtConcurrentTools>
#include <QtCore/QtAlgorithms>
#include <QtCore/QtPlugin>
@@ -53,6 +51,8 @@
#include <QtCore/QDir>
#include <QtCore/QList>
#include <QtCore/QRegExp>
#include <QtCore/QFuture>
#include <QtCore/QtConcurrentRun>
#include <QtXml/QXmlSimpleReader>
#include <QtXml/QXmlInputSource>
#include <QtXml/QXmlStreamReader>
@@ -69,8 +69,7 @@ GenericEditorPlugin::GenericEditorPlugin() :
QTC_ASSERT(!m_instance, return);
m_instance = this;
connect(Core::ICore::instance(), SIGNAL(coreOpened()),
this, SLOT(lookforAvailableDefinitions()));
connect(Core::ICore::instance(), SIGNAL(coreOpened()), this, SLOT(registerMimeTypes()));
}
GenericEditorPlugin::~GenericEditorPlugin()
@@ -158,7 +157,16 @@ const QSharedPointer<HighlightDefinition> &GenericEditorPlugin::definition(const
bool GenericEditorPlugin::isBuildingDefinition(const QString &id) const
{ return m_isBuilding.contains(id); }
void GenericEditorPlugin::lookforAvailableDefinitions()
void GenericEditorPlugin::registerMimeTypes()
{
QFuture<Core::MimeType> future =
QtConcurrent::run(&GenericEditorPlugin::gatherDefinitionsMimeTypes, this);
m_watcher.setFuture(future);
connect(&m_watcher, SIGNAL(resultReadyAt(int)), this, SLOT(registerMimeType(int)));
}
void GenericEditorPlugin::gatherDefinitionsMimeTypes(QFutureInterface<Core::MimeType> &future)
{
QDir definitionsDir(Core::ICore::instance()->resourcePath() +
QLatin1String("/generic-highlighter"));
@@ -167,11 +175,50 @@ void GenericEditorPlugin::lookforAvailableDefinitions()
definitionsDir.setNameFilters(filter);
const QFileInfoList &filesInfo = definitionsDir.entryInfoList();
foreach (const QFileInfo &fileInfo, filesInfo)
parseDefinitionMetadata(fileInfo);
foreach (const QFileInfo &fileInfo, filesInfo) {
QString comment;
QStringList mimeTypes;
QStringList patterns;
parseDefinitionMetadata(fileInfo, &comment, &mimeTypes, &patterns);
// A definition can specify multiple MIME types and file extensions/patterns. However, each
// thing is done with a single string. Then, there is no direct way to tell which patterns
// belong to which MIME types nor whether a MIME type is just an alias for the other.
// Currently, I associate all expressions/patterns with all MIME types from a definition.
static const QStringList textPlain(QLatin1String("text/plain"));
QList<QRegExp> expressions;
foreach (const QString &type, mimeTypes) {
Core::MimeType mimeType = Core::ICore::instance()->mimeDatabase()->findByType(type);
if (mimeType.isNull()) {
if (expressions.isEmpty()) {
foreach (const QString &pattern, patterns)
expressions.append(QRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard));
}
mimeType.setType(type);
mimeType.setSubClassesOf(textPlain);
mimeType.setComment(comment);
mimeType.setGlobPatterns(expressions);
future.reportResult(mimeType);
}
}
}
}
void GenericEditorPlugin::parseDefinitionMetadata(const QFileInfo &fileInfo)
void GenericEditorPlugin::registerMimeType(int index) const
{
const Core::MimeType &mimeType = m_watcher.resultAt(index);
Core::ICore::instance()->mimeDatabase()->addMimeType(mimeType);
m_factory->m_mimeTypes.append(mimeType.type());
}
void GenericEditorPlugin::parseDefinitionMetadata(const QFileInfo &fileInfo,
QString *comment,
QStringList *mimeTypes,
QStringList *patterns)
{
static const QLatin1Char kSemiColon(';');
static const QLatin1Char kSlash('/');
@@ -194,24 +241,24 @@ void GenericEditorPlugin::parseDefinitionMetadata(const QFileInfo &fileInfo)
reader.name() == kLanguage) {
const QXmlStreamAttributes &attr = reader.attributes();
const QString &name = attr.value(kName).toString();
m_idByName.insert(name, id);
*comment = attr.value(kName).toString();
m_idByName.insert(*comment, id);
const QStringList &patterns =
attr.value(kExtensions).toString().split(kSemiColon, QString::SkipEmptyParts);
*patterns = attr.value(kExtensions).toString().split(kSemiColon,
QString::SkipEmptyParts);
QStringList mimeTypes =
attr.value(kMimeType).toString().split(kSemiColon, QString::SkipEmptyParts);
if (mimeTypes.isEmpty()) {
*mimeTypes = attr.value(kMimeType).toString().split(kSemiColon,
QString::SkipEmptyParts);
if (mimeTypes->isEmpty()) {
// There are definitions which do not specify a MIME type, but specify file
// patterns. Creating an artificial MIME type is a workaround.
QString mimeType(kArtificial);
mimeType.append(kSlash).append(name);
m_idByMimeType.insert(mimeType, id);
mimeTypes.append(mimeType);
QString artificialType(kArtificial);
artificialType.append(kSlash).append(*comment);
m_idByMimeType.insert(artificialType, id);
mimeTypes->append(artificialType);
} else {
foreach (const QString &mimeType, mimeTypes)
m_idByMimeType.insert(mimeType, id);
foreach (const QString &type, *mimeTypes)
m_idByMimeType.insert(type, id);
}
// The priority below should not be confused with the priority used when matching files
@@ -220,7 +267,6 @@ void GenericEditorPlugin::parseDefinitionMetadata(const QFileInfo &fileInfo)
// multiple ones associated with the same MIME type (should not happen in general).
m_priorityComp.m_priorityById.insert(id, attr.value(kPriority).toString().toInt());
registerMimeTypes(name, mimeTypes, patterns);
break;
}
}
@@ -228,35 +274,4 @@ void GenericEditorPlugin::parseDefinitionMetadata(const QFileInfo &fileInfo)
definitionFile.close();
}
void GenericEditorPlugin::registerMimeTypes(const QString &comment,
const QStringList &types,
const QStringList &patterns)
{
static const QStringList textPlain(QLatin1String("text/plain"));
// A definition can specify multiple MIME types and file extensions/patterns. However, each
// thing is done with a single string. Then, there is no direct way to tell which extensions/
// patterns belong to which MIME types nor whether a MIME type is just an alias for the other.
// Currentl y, I associate all expressions/patterns with all MIME types from a definition.
QList<QRegExp> expressions;
foreach (const QString &type, types) {
Core::MimeType mimeType = Core::ICore::instance()->mimeDatabase()->findByType(type);
if (mimeType.isNull()) {
if (expressions.isEmpty()) {
foreach (const QString &pattern, patterns)
expressions.append(QRegExp(pattern, Qt::CaseSensitive, QRegExp::Wildcard));
}
mimeType.setType(type);
mimeType.setSubClassesOf(textPlain);
mimeType.setComment(comment);
mimeType.setGlobPatterns(expressions);
Core::ICore::instance()->mimeDatabase()->addMimeType(mimeType);
m_factory->m_mimeTypes.append(type);
}
}
}
Q_EXPORT_PLUGIN(GenericEditorPlugin)

View File

@@ -30,27 +30,28 @@
#ifndef GENERICEDITORPLUGIN_H
#define GENERICEDITORPLUGIN_H
#include <coreplugin/mimedatabase.h>
#include <extensionsystem/iplugin.h>
#include <texteditor/texteditoractionhandler.h>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QLatin1String>
#include <QtCore/QHash>
#include <QtCore/QMultiHash>
#include <QtCore/QSet>
#include <QtCore/QSharedPointer>
#include <QtCore/QFutureWatcher>
QT_BEGIN_NAMESPACE
class QFileInfo;
class QStringList;
template <class> class QFutureInterface;
QT_END_NAMESPACE
namespace GenericEditor {
namespace Internal {
class HighlightDefinition;
class HighlightDefinitionMetadata;
class Editor;
class EditorFactory;
@@ -75,17 +76,19 @@ public:
const QSharedPointer<HighlightDefinition> &definition(const QString &id);
private slots:
void lookforAvailableDefinitions();
void registerMimeTypes();
void registerMimeType(int index) const;
private:
Q_DISABLE_COPY(GenericEditorPlugin)
static GenericEditorPlugin *m_instance;
void parseDefinitionMetadata(const QFileInfo &fileInfo);
void registerMimeTypes(const QString &comment,
const QStringList &types,
const QStringList &patterns);
void gatherDefinitionsMimeTypes(QFutureInterface<Core::MimeType> &future);
void parseDefinitionMetadata(const QFileInfo &fileInfo,
QString *comment,
QStringList *mimeTypes,
QStringList *patterns);
struct PriorityCompare
{
@@ -100,6 +103,8 @@ private:
EditorFactory *m_factory;
QFutureWatcher<Core::MimeType> m_watcher;
QHash<QString, QString> m_idByName;
QMultiHash<QString, QString> m_idByMimeType;
QHash<QString, QSharedPointer<HighlightDefinition> > m_definitions;

View File

@@ -109,9 +109,6 @@ private:
QString m_multiLineCommentRegion;
Qt::CaseSensitivity m_keywordCaseSensitivity;
QString m_languageName;
QString m_fileExtensions;
};
} // namespace Internal

View File

@@ -430,13 +430,13 @@ void HighlightDefinitionHandler::processIncludeRules(const QSharedPointer<Contex
// definition they are from.
QString externalName = QString::fromRawData(sourceName.unicode() + 2,
sourceName.length() - 2);
const QString id = GenericEditorPlugin::instance()->definitionIdByName(externalName);
const QString &id = GenericEditorPlugin::instance()->definitionIdByName(externalName);
// If there is an incorrect circular dependency among definitions this is skipped.
if (GenericEditorPlugin::instance()->isBuildingDefinition(id))
continue;
QSharedPointer<HighlightDefinition> externalDefinition =
const QSharedPointer<HighlightDefinition> &externalDefinition =
GenericEditorPlugin::instance()->definition(id);
sourceContext = externalDefinition->initialContext();
} else if (!sourceName.startsWith(kHash)) {

View File

@@ -36,7 +36,6 @@
#include <QtCore/QStringList>
#include <QtGui/QSyntaxHighlighter>
#include <QtGui/QTextBlockUserData>
#include <texteditor/basetextdocumentlayout.h>

View File

@@ -31,10 +31,7 @@
#define ITEMDATA_H
#include <QtCore/QString>
#include <QtGui/QColor>
#include <QtGui/QFont>
#include <QtGui/QTextCharFormat>
namespace GenericEditor {
namespace Internal {