Warning, /frameworks/syntax-highlighting/data/syntax/kotlin.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004     <!ENTITY int "(?:[0-9]++(_++[0-9]++)*+)">
0005     <!ENTITY hex "(?:[0-9a-fA-F]++(_++[0-9a-fA-F]++)*+)">
0006     <!ENTITY exp "(?:[eE][-+]?&int;)">
0007     <!ENTITY float "(\b&int;(\.((&int;&exp;?+|&exp;)[fF]?\b|[fF]\b)?|&exp;[fF]?\b|[fF]\b)|\.&int;&exp;?[fF]?\b)">
0008     <!ENTITY hexfloat "\b0[xX](&hex;\.?+&hex;?+|\.&hex;?)[pP][-+]?&int;[fF]?\b">
0009 ]>
0010 <!-- kotlin language syntax http://kotlinlang.org -->
0011 <language name="Kotlin" version="11" kateversion="5.62" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">
0012     <highlighting>
0013         <list name="keywords">
0014             <item>package</item>
0015             <item>import</item>
0016 
0017             <item>sealed</item>
0018             <item>data</item>
0019             <item>class</item>
0020             <item>enum</item>
0021             <item>interface</item>
0022             <item>companion</item>
0023             <item>object</item>
0024 
0025             <item>private</item>
0026             <item>public</item>
0027             <item>protected</item>
0028             <item>internal</item>
0029             <item>open</item>
0030             <item>final</item>
0031 
0032             <item>get</item>
0033             <item>set</item>
0034             <item>fun</item>
0035             <item>var</item>
0036             <item>val</item>
0037             <item>constructor</item>
0038 
0039             <item>inline</item>
0040             <item>reified</item>
0041             <item>crossinline</item>
0042             <item>tailrec</item>
0043 
0044             <item>in</item>
0045             <item>out</item>
0046             <item>is</item>
0047             <item>as</item>
0048             <item>by</item>
0049             <item>where</item>
0050 
0051             <item>vararg</item>
0052             <item>get</item>
0053             <item>set</item>
0054 
0055             <item>return</item>
0056             <item>throw</item>
0057 
0058             <item>typealias</item>
0059             <item>typeof</item>
0060             <item>override</item>
0061             <item>abstract</item>
0062             <item>infix</item>
0063             <item>operator</item>
0064 
0065             <item>annotation</item>
0066             <item>const</item>
0067             <item>lateinit</item>
0068             <item>inner</item>
0069             <item>external</item>
0070             <item>noinline</item>
0071         </list>
0072         <list name="controlFlowKeyword">
0073             <item>if</item>
0074             <item>else</item>
0075             <item>when</item>
0076 
0077             <item>for</item>
0078             <item>while</item>
0079             <item>do</item>
0080 
0081             <item>try</item>
0082             <item>catch</item>
0083             <item>finally</item>
0084 
0085             <item>continue</item>
0086             <item>break</item>
0087             <item>yield</item>
0088         </list>
0089         <list name="predeclared">
0090             <item>this</item>
0091             <item>super</item>
0092             <item>null</item>
0093             <item>true</item>
0094             <item>false</item>
0095         </list>
0096         <list name="types">
0097             <item>Unit</item>
0098             <item>Nothing</item>
0099 
0100             <item>String</item>
0101             <item>Char</item>
0102 
0103             <item>Int</item>
0104             <item>Long</item>
0105             <item>Byte</item>
0106             <item>Short</item>
0107             <item>Float</item>
0108             <item>Double</item>
0109 
0110             <item>Boolean</item>
0111 
0112             <item>dynamic</item>
0113         </list>
0114 
0115         <contexts>
0116             <context attribute="Normal Text" lineEndContext="#stay" name="Start" fallthroughContext="Normal">
0117                 <Detect2Chars attribute="Comment" context="Shebang" char="#" char1="!" />
0118             </context>
0119             <context attribute="Normal Text" lineEndContext="#pop!Normal" name="Shebang">
0120             </context>
0121 
0122             <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
0123                 <DetectSpaces context="#stay"/>
0124 
0125                 <DetectChar attribute="Symbol" context="Dot" char="." lookAhead="1"/>
0126                 <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
0127                 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
0128                 <DetectChar attribute="Annotation" context="Annotation" char="@" />
0129 
0130                 <IncludeRules context="Comment"/>
0131 
0132                 <AnyChar attribute="Symbol" context="#stay" String="()[]&amp;|+,-/*&lt;=&gt;;!%?:~^"/>
0133 
0134                 <AnyChar context="Number" String="0123456789" lookAhead="1"/>
0135 
0136                 <DetectChar context="String" char="&quot;" lookAhead="1"/>
0137                 <DetectChar context="Char" char="'" lookAhead="1"/>
0138 
0139                 <WordDetect attribute="Keyword" context="VariableDeclaration" String="val"/>
0140                 <WordDetect attribute="Keyword" context="VariableDeclaration" String="var"/>
0141 
0142                 <WordDetect attribute="Keyword" context="FunctionDeclaration" String="fun"/>
0143 
0144                 <WordDetect attribute="Keyword" context="Imports" String="package"/>
0145                 <WordDetect attribute="Keyword" context="Imports" String="import"/>
0146 
0147                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="object"/>
0148                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="class"/>
0149                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="interface"/>
0150 
0151                 <keyword attribute="Keyword" context="#stay" String="predeclared"/>
0152                 <keyword attribute="Keyword" context="#stay" String="keywords"/>
0153                 <keyword attribute="ControlFlowKeyword" context="#stay" String="controlFlowKeyword"/>
0154                 <keyword attribute="Keyword" context="#stay" String="types"/>
0155 
0156                 <DetectIdentifier attribute="Normal Text"/>
0157             </context>
0158 
0159             <context attribute="Normal Text" lineEndContext="#stay" name="Comment">
0160                 <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
0161                 <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
0162             </context>
0163 
0164             <context attribute="Normal Text" lineEndContext="#stay" name="Number">
0165                 <IncludeRules context="FindFloat"/>
0166                 <RegExpr attribute="Hex" context="#pop" String="\b0[xX]&hex;[lL]?\b"/>
0167                 <RegExpr attribute="Binary" context="#pop" String="\b0[bB][01]++(_++[01]++)*+[uUlL]?\b"/>
0168                 <RegExpr attribute="Decimal" context="#pop" String="\b(0|[1-9][0-9]*+(_++[0-9_]++)*+)[uUlL]?\b"/>
0169                 <AnyChar attribute="Error" context="#pop" String="0123456789"/>
0170             </context>
0171             <context attribute="Normal Text" lineEndContext="#stay" name="FindFloat">
0172                 <RegExpr attribute="Float" context="#pop" String="&float;|&hexfloat;"/>
0173             </context>
0174 
0175             <context attribute="Normal Text" lineEndContext="#stay" name="Dot">
0176                 <IncludeRules context="FindFloat"/>
0177                 <DetectChar attribute="Symbol" context="#pop" char="." />
0178             </context>
0179 
0180             <context attribute="Normal Text" lineEndContext="#pop" name="Annotation" fallthroughContext="#pop">
0181                 <DetectIdentifier attribute="Annotation"/>
0182                 <DetectChar attribute="Symbol" char=":"/>
0183                 <RangeDetect attribute="Annotation" context="#pop" char="[" char1="]"/>
0184                 <IncludeRules context="Comment"/>
0185             </context>
0186 
0187             <context attribute="Normal Text" lineEndContext="#stay" name="Char">
0188                 <HlCChar attribute="Char" context="#pop"/>
0189                 <RegExpr attribute="Char" context="#pop" String="'\\u[0-9a-fA-F]{4}'"/>
0190                 <RegExpr attribute="Error" context="#pop" String="'(\\(u[0-9a-fA-F]*|.))?'?"/>
0191             </context>
0192 
0193             <context attribute="String" lineEndContext="#pop" name="String">
0194                 <StringDetect attribute="String" context="#pop!MultiLineString" String="&quot;&quot;&quot;" beginRegion="MultiLineString"/>
0195                 <DetectChar attribute="String" context="#pop!SingleLineString" char="&quot;"/>
0196             </context>
0197             <context attribute="String" lineEndContext="#pop" name="SingleLineString">
0198                 <DetectChar context="StringEscapedChar" char="\" lookAhead="1"/>
0199                 <DetectChar context="Interpolation" char="$" lookAhead="1"/>
0200                 <DetectChar attribute="String" context="#pop" char="&quot;"/>
0201             </context>
0202             <context attribute="String" lineEndContext="#stay" name="MultiLineString">
0203                 <DetectChar context="StringEscapedChar" char="\" lookAhead="1"/>
0204                 <DetectChar context="Interpolation" char="$" lookAhead="1"/>
0205                 <DetectChar context="MultiLineStringFinal" char="&quot;" lookAhead="1"/>
0206             </context>
0207             <context attribute="String" lineEndContext="#stay" name="MultiLineStringFinal">
0208                 <StringDetect context="MultiLineStringNoFinal" String="&quot;&quot;&quot;&quot;" lookAhead="1"/>
0209                 <StringDetect attribute="String" context="#pop#pop" String="&quot;&quot;&quot;" endRegion="MultiLineString"/>
0210                 <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="&quot;"/>
0211                 <DetectChar attribute="String" context="#pop" char="&quot;"/>
0212             </context>
0213             <context attribute="String" lineEndContext="#stay" name="MultiLineStringNoFinal">
0214                 <DetectChar attribute="String" context="#pop" char="&quot;"/>
0215             </context>
0216             <context attribute="String" lineEndContext="#pop" name="StringEscapedChar">
0217                 <HlCStringChar attribute="String Char" context="#pop"/>
0218                 <Detect2Chars attribute="String Char" context="#pop" char="\" char1="$"/>
0219                 <RegExpr attribute="String Char" context="#pop" String="\\u[0-9a-fA-F]{4}"/>
0220                 <RegExpr attribute="Error" context="#pop" String="\\(u[0-9a-fA-F]*|.)?"/>
0221             </context>
0222 
0223             <context attribute="String" lineEndContext="#stay" name="Interpolation">
0224                 <Detect2Chars attribute="String Interpolation" context="#pop!InInterpolation" char="$" char1="{"/>
0225                 <DetectChar attribute="String Interpolation" context="#pop!Variable" char="$"/>
0226             </context>
0227             <context attribute="String Interpolation" lineEndContext="#stay" name="InInterpolation">
0228                 <DetectChar attribute="String Interpolation" context="#pop" char="}"/>
0229                 <IncludeRules context="Normal"/>
0230             </context>
0231             <context attribute="String" lineEndContext="#pop" name="Variable" fallthroughContext="#pop">
0232                 <DetectIdentifier attribute="String Interpolation" context="#pop"/>
0233             </context>
0234 
0235             <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
0236                 <AnyChar attribute="Symbol" context="#stay" String=".*"/>
0237                 <WordDetect attribute="Keyword" context="TypeName" String="as" />
0238                 <DetectIdentifier attribute="Imports" context="#stay"/>
0239                 <DetectChar attribute="Symbol" context="#pop" char=";"/>
0240                 <IncludeRules context="Comment"/>
0241             </context>
0242 
0243             <context name="VariableDeclaration" lineEndContext="#stay" attribute="Normal Text">
0244                 <DetectIdentifier attribute="Variable" context="#pop" />
0245                 <IncludeRules context="Comment"/>
0246             </context>
0247 
0248             <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text">
0249                 <keyword attribute="Keyword" context="#stay" String="keywords"/>
0250 
0251                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
0252                 <DetectChar attribute="Symbol" context="Parameters" char="(" />
0253                 <DetectChar attribute="Symbol" context="SuperTypes" char=":" />
0254                 <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />
0255 
0256                 <IncludeRules context="Comment"/>
0257             </context>
0258 
0259             <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text">
0260                 <keyword attribute="Keyword" context="#pop#pop" String="keywords" lookAhead="true" />
0261 
0262                 <DetectChar attribute="Symbol" context="#stay" char="," />
0263                 <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />
0264                 <DetectChar attribute="Symbol" context="Parameters" char="(" />
0265                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
0266 
0267                 <DetectIdentifier attribute="Data Type" context="#stay"/>
0268 
0269                 <IncludeRules context="Comment"/>
0270             </context>
0271 
0272             <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text">
0273                 <keyword attribute="Keyword" context="#stay" String="keywords"/>
0274                 <DetectChar attribute="Annotation" context="Annotation" char="@" />
0275                 <DetectChar attribute="Symbol" context="#stay" char="." />
0276                 <DetectChar attribute="Symbol" context="Parameters" char="(" />
0277                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
0278                 <DetectChar attribute="Symbol" context="TypeName" char=":" />
0279 
0280                 <AnyChar attribute="Symbol" context="#pop" String="{=" lookAhead="true" />
0281 
0282                 <DetectIdentifier attribute="Function" context="#stay"/>
0283 
0284                 <IncludeRules context="Comment"/>
0285             </context>
0286 
0287             <context name="TypeParameters" lineEndContext="#stay" attribute="Normal Text">
0288                 <keyword attribute="Keyword" context="#stay" String="keywords"/>
0289 
0290                 <DetectChar attribute="Symbol" context="TypeName" char=":" />
0291                 <DetectChar attribute="Symbol" context="#stay" char="*" />
0292 
0293                 <DetectChar attribute="Symbol" context="#pop" char="&gt;" />
0294                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
0295 
0296                 <DetectIdentifier attribute="Data Type" context="DataTypeSuffix"/>
0297 
0298                 <IncludeRules context="Comment"/>
0299             </context>
0300             <context name="DataTypeSuffix" lineEndContext="#pop" attribute="Normal Text" fallthroughContext="#pop">
0301                 <DetectChar attribute="Symbol" context="#pop" char="?"/>
0302 
0303                 <IncludeRules context="Comment"/>
0304             </context>
0305 
0306             <context name="Parameters" lineEndContext="#stay" attribute="Normal Text">
0307                 <keyword attribute="Keyword" context="#stay" String="keywords" />
0308                 <DetectChar attribute="Symbol" context="#pop" char=")" />
0309                 <DetectChar attribute="Symbol" context="TypeName" char=":" />
0310                 <DetectChar attribute="Symbol" context="Expression" char="=" />
0311                 <DetectIdentifier attribute="Variable" context="#stay"/>
0312                 <DetectChar attribute="Symbol" context="#stay" char=","/>
0313                 <IncludeRules context="Comment"/>
0314             </context>
0315 
0316             <context name="TypeName" lineEndContext="#stay" attribute="Normal Text">
0317                 <AnyChar attribute="Symbol" context="#pop" String=",*" />
0318                 <DetectChar attribute="Symbol" context="FunctionType" char="(" />
0319                 <Detect2Chars attribute="Symbol" context="#stay" char="-" char1="&gt;" />
0320                 <DetectIdentifier attribute="Data Type" context="#pop!DataTypeSuffix"/>
0321                 <IncludeRules context="Comment"/>
0322             </context>
0323 
0324             <context name="FunctionType" lineEndContext="#stay" attribute="Normal Text">
0325                 <DetectChar attribute="Symbol" context="#pop" char=")" />
0326                 <DetectIdentifier attribute="Data Type" context="DataTypeSuffix"/>
0327                 <Detect2Chars attribute="Symbol" context="#stay" char="-" char1="&gt;" />
0328                 <DetectChar attribute="Symbol" context="#stay" char="," />
0329                 <IncludeRules context="Comment"/>
0330             </context>
0331 
0332             <context name="Expression" lineEndContext="#stay" attribute="Normal Text">
0333                 <DetectChar attribute="Symbol" context="#pop" char=")" lookAhead="true" />
0334                 <DetectChar attribute="Error" context="#pop" char="}" />
0335                 <DetectChar attribute="Symbol" context="#pop" char=","/>
0336                 <IncludeRules context="FindSubExpression"/>
0337             </context>
0338             <context name="FindSubExpression" lineEndContext="#stay" attribute="Normal Text">
0339                 <DetectSpaces attribute="Normal Text"/>
0340 
0341                 <AnyChar attribute="Symbol" context="ExpressionInner" String="({" />
0342 
0343                 <DetectChar context="MaybeTypeParameters" char="&lt;" lookAhead="1" />
0344 
0345                 <DetectChar attribute="Symbol" context="Dot" char="." lookAhead="1"/>
0346                 <AnyChar context="Number" String="0123456789" lookAhead="1"/>
0347                 <DetectChar context="String" char="&quot;" lookAhead="1"/>
0348                 <DetectChar context="Char" char="'" lookAhead="1"/>
0349 
0350                 <IncludeRules context="Comment"/>
0351 
0352                 <DetectIdentifier attribute="Normal Text"/>
0353             </context>
0354             <context name="MaybeTypeParameters" lineEndContext="#pop" attribute="Normal Text">
0355                 <RegExpr context="#pop!TypeParameters" String="&lt;\w" lookAhead="1" />
0356                 <DetectChar attribute="Symbol" context="#pop" char="&lt;"/>
0357                 <IncludeRules context="Comment"/>
0358             </context>
0359 
0360             <context name="ExpressionInner" lineEndContext="#stay" attribute="Normal Text">
0361                 <AnyChar attribute="Symbol" context="#pop" String=")}" />
0362                 <IncludeRules context="FindSubExpression"/>
0363             </context>
0364 
0365             <context attribute="Comment" lineEndContext="#pop" name="CommentSingleLine">
0366                 <DetectSpaces />
0367                 <IncludeRules context="##Comments"/>
0368             </context>
0369             <context attribute="Comment" lineEndContext="#stay" name="CommentMultiline">
0370                 <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
0371                 <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
0372                 <DetectSpaces />
0373                 <IncludeRules context="##Comments"/>
0374             </context>
0375 
0376         </contexts>
0377 
0378         <itemDatas>
0379             <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
0380             <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
0381             <itemData name="ControlFlowKeyword" defStyleNum="dsControlFlow" spellChecking="false"/>
0382             <itemData name="Function"     defStyleNum="dsFunction" spellChecking="false"/>
0383             <itemData name="Variable"     defStyleNum="dsVariable" spellChecking="false"/>
0384             <itemData name="Imports"      defStyleNum="dsImport" spellChecking="false"/>
0385             <itemData name="Annotation"   defStyleNum="dsAttribute" spellChecking="false"/>
0386             <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
0387             <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
0388             <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
0389             <itemData name="Binary"       defStyleNum="dsBaseN" spellChecking="false"/>
0390             <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
0391             <itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
0392             <itemData name="String"       defStyleNum="dsString"/>
0393             <itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
0394             <itemData name="String Interpolation" defStyleNum="dsSpecialString"/>
0395             <itemData name="Comment"      defStyleNum="dsComment"/>
0396             <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false"/>
0397             <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
0398     </itemDatas>
0399     </highlighting>
0400     <general>
0401         <comments>
0402             <comment name="singleLine" start="//"/>
0403             <comment name="multiLine" start="/*" end="*/" region="Comment"/>
0404         </comments>
0405         <keywords casesensitive="1"/>
0406     </general>
0407 </language>
0408 <!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->