<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <!-- Kate 2.5 (KDE 3.5) highlighting module for R based on an earlier version by E.L. Willighagen. Code folding code by Ben Goodrich version 2.0: (c) 2006 Thomas Friedrichsmeier, Arne Henningsen, and the RKWard Team license: GPL v2 Kate : http://kate.kde.org/ R : http://www.r-project.org/ RKWard : http://rkward.sourceforge.net/ --> <language version="2.07" kateversion="2.5" name="R Script" section="Scripts" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPL"> <highlighting> <list name="controls"> <item> for </item> <item> in </item> <item> next </item> <item> break </item> <item> while </item> <item> repeat </item> <item> if </item> <item> else </item> <item> switch </item> <item> function </item> </list> <list name="words"> <item> TRUE </item> <item> FALSE </item> <item> NULL </item> <item> NA </item> <item> NA_integer_ </item> <item> NA_real_ </item> <item> NA_complex_ </item> <item> NA_character_ </item> <item> Inf </item> <item> NaN </item> </list> <contexts> <!-- This context is really only good for detecting unexpected closing braces '}'. Since opening braces go to ctx0 (and nesting in there), this context is only active on the base level --> <context attribute="Normal Text" lineEndContext="#stay" name="level0"> <IncludeRules context="CommonRules"/> <DetectChar attribute="Error" context="#stay" char="}" /> <DetectChar attribute="Error" context="#stay" char=")"/> </context> <context attribute="Normal Text" lineEndContext="#stay" name="ctx0"> <IncludeRules context="CommonRules"/> <DetectChar attribute="Symbol" context="#pop" char="}" endRegion="Brace1" /> <DetectChar attribute="Error" context="#stay" char=")"/> </context> <context attribute="In Parenthesis" lineEndContext="#stay" name="parenthesis"> <LineContinue attribute="Boolean" context="#stay"/> <DetectChar attribute="Symbol" context="#pop" char=")"/> <RegExpr attribute="Identifier" context="#stay" String="[a-zA-Z_\.][0-9a-zA-Z_\.]*[\s]*=(?=([^=]|$))"/> <IncludeRules context="CommonRules"/> <DetectChar attribute="Error" context="#stay" char="}" /> </context> <context attribute="String" lineEndContext="#stay" name="string"> <DetectChar attribute="String" context="#pop" char="""/> <HlCStringChar attribute="String Char" context="#stay"/> </context> <context attribute="String" lineEndContext="#stay" name="string2"> <DetectChar attribute="String" context="#pop" char="'"/> <HlCStringChar attribute="String Char" context="#stay"/> </context> <context attribute="Identifier" lineEndContext="#stay" name="backquotedsymbol"> <DetectChar attribute="String" context="#pop" char="`"/> <HlCStringChar attribute="String Char" context="#stay"/> </context> <context attribute="Normal Text" lineEndContext="#stay" name="operator_rhs" fallthrough="true" fallthroughContext="#pop"> <!-- While there is nothing of interest, stay in the context --> <StringDetect attribute="Headline" context="Headline" String="##"/> <DetectChar attribute="Comment" context="Comment" char="#"/> <DetectChar attribute="String" context="#stay" char=" "/> <!-- Operators other than +, -, and ! directly after another operator are an error. --> <RegExpr attribute="Error" context="#stay" String="(\*|/|<|>|\!=|=|\||&|:|\^|@|\$|~)"/> </context> <context attribute="Headline" lineEndContext="#pop" name="Headline"/> <context attribute="Comment" lineEndContext="#pop" name="Comment"/> <!-- This context is not really used, but contains the common rules --> <context name="CommonRules" lineEndContext="#stay" attribute="Normal Text" > <DetectChar attribute="String" context="string" char="""/> <DetectChar attribute="String" context="string2" char="'"/> <DetectChar attribute="String" context="backquotedsymbol" char="`"/> <keyword attribute="Control Structure" context="#stay" String="controls"/> <keyword attribute="Reserved Words" context="#stay" String="words"/> <Float attribute="Float" context="#stay"/> <Int attribute="Int" context="#stay"/> <RegExpr attribute="Keyword" context="#stay" String="[a-zA-Z_]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/> <RegExpr attribute="Keyword" context="#stay" String="\.[a-zA-Z_\.]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/> <RegExpr attribute="Symbol" context="parenthesis" String="\("/> <StringDetect attribute="Headline" context="Headline" String="##"/> <DetectChar attribute="Comment" context="Comment" char="#"/> <!-- For (assignment) operators, enter a new context operator_rhs to check what follows (generally, that should not be another op) --> <RegExpr attribute="Assign" context="operator_rhs" String="[<]{1,2}\-"/> <RegExpr attribute="Assign" context="operator_rhs" String="\-[>]{1,2}"/> <RegExpr attribute="Assign" context="operator_rhs" String="=(?!=)"/> <RegExpr attribute="Operator" context="operator_rhs" String="(\+|\-|\*{1,2}|/|<=?|>=?|={1,2}|\!=?|\|{1,2}|&{1,2}|:{1,3}|\^|@|\$|~)"/> <RegExpr attribute="Operator" context="operator_rhs" String="%[^%]*%"/> <DetectChar attribute="Symbol" context="ctx0" char="{" beginRegion="Brace1" /> <!-- This is needed only to assist variable based indentation --> <DetectChar attribute="Symbol" context="#stay" char="[" /> <DetectChar attribute="Symbol" context="#stay" char="]" /> </context> </contexts> <itemDatas> <!-- KDE default colors: http://accessibility.kde.org/oxygen.php?color=white --> <itemData name="Normal Text" defStyleNum="dsNormal"/> <itemData name="Symbol" defStyleNum="dsNormal"/> <itemData name="Keyword" defStyleNum="dsKeyword"/> <itemData name="Identifier" defStyleNum="dsDataType"/> <itemData name="String" defStyleNum="dsString"/> <itemData name="Headline" defStyleNum="dsNormal" color="#b00000" selColor="#b00000" bold="1" italic="0"/> <!-- KDE default color: text 5 --> <itemData name="Comment" defStyleNum="dsComment"/> <itemData name="Assign" defStyleNum="dsNormal" color="#336366" selColor="#ccc099" bold="1" italic="0"/> <!-- KDE default color: text 7 --> <itemData name="Control Structure" defStyleNum="dsNormal" color="#0000bf" selColor="#bfbf00"/> <!-- KDE default color: text 2 --> <itemData name="Reserved Words" defStyleNum="dsOthers"/> <itemData name="Error" defStyleNum="dsError"/> <itemData name="Operator" defStyleNum="dsNormal" color="#803f00" selColor="#000077" bold="0" italic="0"/> <!-- KDE default color: focussed text --> <itemData name="String Char" defStyleNum="dsChar"/> <itemData name="Float" defStyleNum="dsFloat"/> <itemData name="Int" defStyleNum="dsDecVal"/> </itemDatas> </highlighting> <general> <comments> <comment name="singleLine" start="#" end=""/> </comments> <keywords casesensitive="true" weakDeliminator="." additionalDeliminator="$"/> </general> </language>