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