Warning, /frameworks/syntax-highlighting/data/syntax/nim.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language> 0003 0004 <!-- 0005 Improvements: 0006 0007 - fixed typo: "lamba" is now "lambda" 0008 - added bind, func, typed, untyped, on, off 0009 - added multiline strings 0010 - added multiline comments (with stacking!) 0011 - added support for hex, binary, and octal numbers 0012 - added support for numerical literal suffixes (e.g. 'f64) 0013 - added triple-quote strings, raw strings and regex strings 0014 - made escape sequences in strings work slightly better (still needs work) 0015 - changed pragma syntax highlighting to dsAttribute instead of dsDataType 0016 - doc comments 0017 - TODO/BUG/FIXME/HACK/XXXX/NOTE comments 0018 0019 --> 0020 0021 <language 0022 name="Nim" 0023 version="4" 0024 kateversion="5.53" 0025 section="Sources" 0026 extensions="*.nim;*.nims;*.nimble" 0027 mimetype="text/x-nim" 0028 indenter="python" 0029 author="github.com/juancarlospaco" 0030 license="WTFPL"> 0031 0032 <highlighting> 0033 <list name="keywords"> 0034 <item>const</item> 0035 <item>export</item> 0036 <item>import</item> 0037 <item>include</item> 0038 <item>lambda</item> 0039 <item>let</item> 0040 <item>var</item> 0041 </list> 0042 0043 <list name="controls"> 0044 <item>assert</item> <!-- system --> 0045 <item>asm</item> 0046 <item>atomic</item> 0047 <item>block</item> 0048 <item>break</item> 0049 <item>case</item> 0050 <item>cast</item> 0051 <item>compiles</item> <!-- system --> 0052 <item>continue</item> 0053 <item>declared</item> <!-- system --> 0054 <item>declaredinscope</item> <!-- system --> 0055 <item>defined</item> <!-- system --> 0056 <item>discard</item> 0057 <item>do</item> 0058 <item>echo</item> <!-- system --> 0059 <item>elif</item> 0060 <item>else</item> 0061 <item>end</item> 0062 <item>except</item> 0063 <item>finally</item> 0064 <item>for</item> 0065 <item>from</item> 0066 <item>if</item> 0067 <item>mixin</item> 0068 <item>bind</item> 0069 <item>new</item> <!-- system --> 0070 <item>raise</item> 0071 <item>return</item> 0072 <item>sizeof</item> <!-- system --> 0073 <item>try</item> 0074 <item>when</item> 0075 <item>while</item> 0076 <item>quit</item> <!-- system --> 0077 <item>using</item> 0078 <item>yield</item> 0079 </list> 0080 0081 <list name="operators"> 0082 <item>addr</item> 0083 <item>and</item> 0084 <item>as</item> 0085 <item>div</item> 0086 <item>in</item> 0087 <item>is</item> 0088 <item>isnot</item> 0089 <item>mod</item> 0090 <item>not</item> 0091 <item>notin</item> 0092 <item>of</item> 0093 <item>or</item> 0094 <item>shl</item> 0095 <item>shr</item> 0096 <item>xor</item> 0097 </list> 0098 0099 <list name="types"> 0100 <item>array</item> 0101 <item>bool</item> 0102 <item>byte</item> 0103 <item>cchar</item> 0104 <item>cdouble</item> 0105 <item>char</item> 0106 <item>cfloat</item> 0107 <item>cint</item> 0108 <item>clong</item> 0109 <item>cshort</item> 0110 <item>cstring</item> 0111 <item>cuint</item> 0112 <item>distinct</item> 0113 <item>expr</item> 0114 <item>float</item> 0115 <item>float32</item> 0116 <item>float64</item> 0117 <item>generic</item> 0118 <item>int</item> 0119 <item>int8</item> 0120 <item>int16</item> 0121 <item>int32</item> 0122 <item>int64</item> 0123 <item>interface</item> 0124 <item>openarray</item> 0125 <item>pointer</item> 0126 <item>set</item> 0127 <item>seq</item> 0128 <item>stmt</item> 0129 <item>string</item> 0130 <item>tuple</item> 0131 <item>typedesc</item> 0132 <item>uint</item> 0133 <item>uint8</item> 0134 <item>uint16</item> 0135 <item>uint32</item> 0136 <item>uint64</item> 0137 <item>varargs</item> 0138 <item>void</item> 0139 <item>untyped</item> 0140 <item>typed</item> 0141 </list> 0142 0143 <list name="attrs"> 0144 <item>out</item> 0145 <item>ptr</item> 0146 <item>ref</item> 0147 <item>shared</item> 0148 <item>static</item> 0149 </list> 0150 0151 <list name="consts"> 0152 <item>false</item> 0153 <item>inf</item> 0154 <item>nil</item> 0155 <item>true</item> 0156 <item>on</item> 0157 <item>off</item> 0158 </list> 0159 0160 <list name="others"> 0161 <item>result</item> 0162 </list> 0163 0164 <list name="proctar"> 0165 <item>converter</item> 0166 <item>iterator</item> 0167 <item>macro</item> 0168 <item>method</item> 0169 <item>proc</item> 0170 <item>func</item> 0171 <item>template</item> 0172 </list> 0173 0174 <list name="typetar"> 0175 <item>type</item> 0176 <item>concept</item> 0177 <item>object</item> 0178 <item>enum</item> 0179 </list> 0180 0181 <contexts> 0182 <context name="Normal" attribute="Normal Text" lineEndContext="#stay"> 0183 <DetectSpaces/> 0184 <keyword context="#stay" attribute="Keywords" String="keywords"/> 0185 <keyword context="#stay" attribute="Controls" String="controls"/> 0186 <keyword context="#stay" attribute="Operators" String="operators"/> 0187 <keyword context="#stay" attribute="Types" String="types"/> 0188 <keyword context="#stay" attribute="Attrs" String="attrs"/> 0189 <keyword context="#stay" attribute="Others" String="others"/> 0190 <keyword context="#stay" attribute="Constants" String="consts"/> 0191 0192 <keyword context="Start-Proctar" attribute="Keywords" String="proctar"/> 0193 <keyword context="Start-Typetar" attribute="Keywords" String="typetar"/> 0194 0195 <StringDetect context="DocComment2" attribute="DocComment" String="##[" beginRegion="DocComment"/> 0196 <Detect2Chars context="DocComment1" attribute="DocComment" char="#" char1="#"/> 0197 <Detect2Chars context="Comment2" attribute="Comment" char="#" char1="[" beginRegion="Comment"/> 0198 <DetectChar context="Comment1" attribute="Comment" char="#"/> 0199 0200 <StringDetect context="tripleq-string" attribute="String" String=""""" beginRegion="String"/> 0201 <DetectChar context="string" attribute="String" char=""" beginRegion="String"/> 0202 <StringDetect context="re-string" attribute="String" String="re"" beginRegion="String"/> 0203 <Detect2Chars context="raw-string" attribute="String" char="r" char1=""" beginRegion="String"/> 0204 0205 <RegExpr context="#stay" attribute="Hex" String="0[xX][0-9A-Fa-f][0-9A-Fa-f_]*(?:'(?:(?:[ui](?:8|16|32|64))|(?:f(?:32|64|128))|[ufd]))?"/> 0206 <RegExpr context="#stay" attribute="Octal" String="0o[0-7][0-7_]*(?:'(?:(?:[ui](?:8|16|32|64))|(?:f(?:32|64|128))|[ufd]))?"/> 0207 <RegExpr context="#stay" attribute="Binary" String="0[bB][01][01_]*(?:'(?:(?:[ui](?:8|16|32|64))|(?:f(?:32|64|128))|[ufd]))?"/> 0208 <RegExpr context="#stay" attribute="Decimal" String="\b\d+(?=\.\.)"/> 0209 <Float context="#stay" attribute="Float"/> 0210 <Int context="#stay" attribute="Decimal"/> 0211 0212 <RegExpr context="#stay" attribute="Types" String="\b_*[A-Z](?:\w|\._*[A-Z])*\b"/> 0213 <RegExpr context="#stay" attribute="Funcs" String="\b\w+\b\s*(?=(?:\[.*\]\w*)?(?:\(|(?:[ ](?![,+\-*/=!^&<>|?]|and|as|div|in|is|isnot|mod|notin|of|or|shl|shr|xor))))|\b\w+(?=")"/> 0214 0215 <DetectIdentifier/> 0216 0217 <Detect2Chars context="Pragmatar" attribute="Pragmas" char="{" char1="."/> 0218 <RegExpr context="Proptar" attribute="Brackets" String="\.(?!\d)"/> 0219 <RegExpr context="#stay" attribute="Float" String="\.(?=\d)"/> 0220 0221 <AnyChar context="#stay" attribute="Brackets" String="()[]{},:;"/> 0222 <AnyChar context="#stay" attribute="Symbols" String="+-*/=!@$%^&<>|?"/> 0223 <HlCChar context="#stay" attribute="Char"/> 0224 </context> 0225 0226 <context name="stringescape" attribute="String" lineEndContext="#stay"> 0227 <RegExpr attribute="String Char" String="\\["abfnrtv\\]" context="#stay"/> 0228 </context> 0229 0230 <context name="string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0231 <IncludeRules context="stringescape"/> 0232 <DetectChar context="#pop" attribute="String" char=""" endRegion="String"/> 0233 </context> 0234 <context name="tripleq-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0235 <StringDetect context="#pop" attribute="String" String=""""" endRegion="String"/> 0236 </context> 0237 <context name="raw-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0238 <Detect2Chars context="#stay" attribute="String Char" char=""" char1="""/> 0239 <DetectChar context="#pop" attribute="String" char=""" endRegion="String"/> 0240 </context> 0241 <context name="re-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0242 <DetectChar context="#pop" attribute="String" char=""" endRegion="String"/> 0243 <DetectChar context="#stay" attribute="String" char="/"/> <!-- Avoid closing string by JavaScript --> 0244 <IncludeRules context="Regular Expression##JavaScript"/> 0245 </context> 0246 0247 <context name="Comment1" attribute="Comment" lineEndContext="#pop"> 0248 <LineContinue attribute="Comment" context="#stay"/> 0249 <IncludeRules context="##Comments"/> 0250 </context> 0251 0252 <context name="DocComment1" attribute="DocComment" lineEndContext="#pop"> 0253 <LineContinue attribute="DocComment" context="#stay"/> 0254 </context> 0255 0256 <context name="DocComment2" attribute="DocComment" lineEndContext="#stay" noIndentationBasedFolding="true"> 0257 <LineContinue attribute="DocComment" context="#stay"/> 0258 <StringDetect attribute="DocComment" context="DocComment2" String="##[" beginRegion="DocComment"/> 0259 <StringDetect attribute="DocComment" context="#pop" String="]##" endRegion="DocComment"/> 0260 </context> 0261 0262 <context name="Comment2" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true"> 0263 <LineContinue attribute="Comment" context="#stay"/> 0264 <Detect2Chars attribute="Comment" context="Comment2" char="#" char1="[" beginRegion="Comment"/> 0265 <Detect2Chars attribute="Comment" context="#pop" char="]" char1="#" endRegion="Comment"/> 0266 <IncludeRules context="##Comments"/> 0267 </context> 0268 0269 <context name="Start-Typetar" attribute="TypeDefs" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!Typetar"> 0270 <DetectSpaces context="#stay" attribute="Normal Text"/> 0271 </context> 0272 <context name="Typetar" attribute="TypeDefs" lineEndContext="#pop"> 0273 <DetectChar context="#stay" attribute="Brackets" char="."/> 0274 <DetectChar context="#pop" char="#" lookAhead="true"/> 0275 <DetectSpaces context="#pop" attribute="Normal Text"/> 0276 <AnyChar context="#pop" attribute="Brackets" String="()[]{},:;"/> 0277 <AnyChar context="#pop" attribute="Symbols" String="+-*/=!@$%^&<>"/> 0278 <keyword context="#pop" attribute="Operators" String="operators"/> 0279 </context> 0280 0281 <context name="Start-Proctar" attribute="TypeDefs" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!Proctar"> 0282 <DetectSpaces context="#stay" attribute="Normal Text"/> 0283 </context> 0284 <context name="Proctar" attribute="ProcDefs" lineEndContext="#pop"> 0285 <DetectChar context="QuoteProctar" attribute="ProcDefs" char="`"/> 0286 <DetectChar context="#stay" attribute="Brackets" char="."/> 0287 <DetectChar context="#pop" char="#" lookAhead="true"/> 0288 <DetectSpaces context="#pop" attribute="Normal Text"/> 0289 <AnyChar context="#pop" attribute="Brackets" String="()[]{},:;"/> 0290 <AnyChar context="#pop" attribute="Symbols" String="+-*/=!@$%^&<>"/> 0291 </context> 0292 0293 <context name="QuoteProctar" attribute="ProcDefs" lineEndContext="#pop"> 0294 <DetectChar context="#pop" attribute="ProcDefs" char="`"/> 0295 </context> 0296 0297 <context name="Pragmatar" attribute="Pragmas" lineEndContext="#stay" noIndentationBasedFolding="true"> 0298 <Detect2Chars context="#pop" attribute="Pragmas" char="." char1="}"/> 0299 </context> 0300 0301 <context name="Proptar" attribute="Props" lineEndContext="#pop"> 0302 <keyword context="#pop" attribute="Types" String="types"/> 0303 <RegExpr context="#pop" attribute="Types" String="_*[A-Z]\w*"/> 0304 <RegExpr context="#pop" attribute="Funcs" String="_*[a-z]\w*(?=\()"/> 0305 <RegExpr context="#pop" attribute="Props" String="_*[a-z]\w*"/> 0306 <RegExpr context="#pop" attribute="Brackets" String="\.+"/> 0307 </context> 0308 </contexts> 0309 0310 <itemDatas> 0311 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> 0312 <itemData name="Keywords" defStyleNum="dsKeyword" spellChecking="false"/> 0313 <itemData name="Controls" defStyleNum="dsControlFlow" spellChecking="false"/> 0314 <itemData name="Pragmas" defStyleNum="dsAttribute" spellChecking="false"/> 0315 <itemData name="Types" defStyleNum="dsAttribute" spellChecking="false"/> 0316 <itemData name="Props" defStyleNum="dsAttribute" spellChecking="false"/> 0317 <itemData name="Funcs" defStyleNum="dsFunction" spellChecking="false"/> 0318 <itemData name="Attrs" defStyleNum="dsDataType" spellChecking="false"/> 0319 <itemData name="Others" defStyleNum="dsOthers" spellChecking="false"/> 0320 <itemData name="Operators" defStyleNum="dsComment" spellChecking="false" bold="true" italic="false"/> 0321 <itemData name="Constants" defStyleNum="dsConstant" spellChecking="false" bold="true"/> 0322 0323 <itemData name="TypeDefs" defStyleNum="dsDataType" spellChecking="false" bold="true"/> 0324 <itemData name="ProcDefs" defStyleNum="dsString" spellChecking="false" bold="true"/> 0325 0326 <itemData name="Brackets" defStyleNum="dsKeyword" spellChecking="false"/> 0327 <itemData name="Symbols" defStyleNum="dsComment" spellChecking="false" italic="false"/> 0328 0329 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/> 0330 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 0331 <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/> 0332 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 0333 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 0334 <itemData name="Char" defStyleNum="dsChar" spellChecking="false"/> 0335 <itemData name="String" defStyleNum="dsString" spellChecking="false"/> 0336 <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/> 0337 <itemData name="Comment" defStyleNum="dsComment" /> 0338 <itemData name="DocComment" defStyleNum="dsDocumentation" spellChecking="true"/> 0339 </itemDatas> 0340 </highlighting> 0341 0342 <general> 0343 <comments> 0344 <comment name="singleLine" start="#" position="afterwhitespace"/> 0345 <comment name="multiLine" start="#[" end="]#" region="Comment"/> 0346 </comments> 0347 <folding indentationsensitive="true"/> 0348 <keywords casesensitive="0"/> 0349 </general> 0350 0351 </language> 0352 <!-- kate: replace-tabs off; -->