Warning, /frameworks/syntax-highlighting/data/syntax/solidity.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 <language name="Solidity" section="Sources"
0006 version="6" kateversion="5.0"
0007 indenter="cstyle"
0008 mimetype=""
0009 extensions="*.sol"
0010 priority="5"
0011 author="Robert Kaiser (kairo@kairo.at)"
0012 license="MIT">
0013 <!--
0014 Solidity 0.5+ support, based on Solidity docs, see https://solidity.readthedocs.io/en/latest/index.html
0015 -->
0016 <highlighting>
0017 <!-- Types, see https://solidity.readthedocs.io/en/latest/types.html -->
0018 <list name="types">
0019 <item>bool</item>
0020 <item>uint</item>
0021 <item>uint8</item>
0022 <item>uint16</item>
0023 <item>uint24</item>
0024 <item>uint32</item>
0025 <item>uint40</item>
0026 <item>uint48</item>
0027 <item>uint56</item>
0028 <item>uint64</item>
0029 <item>uint72</item>
0030 <item>uint80</item>
0031 <item>uint88</item>
0032 <item>uint96</item>
0033 <item>uint104</item>
0034 <item>uint112</item>
0035 <item>uint120</item>
0036 <item>uint128</item>
0037 <item>uint136</item>
0038 <item>uint144</item>
0039 <item>uint152</item>
0040 <item>uint160</item>
0041 <item>uint168</item>
0042 <item>uint176</item>
0043 <item>uint184</item>
0044 <item>uint192</item>
0045 <item>uint200</item>
0046 <item>uint208</item>
0047 <item>uint216</item>
0048 <item>uint224</item>
0049 <item>uint232</item>
0050 <item>uint240</item>
0051 <item>uint248</item>
0052 <item>uint256</item>
0053 <item>int</item>
0054 <item>int8</item>
0055 <item>int16</item>
0056 <item>int24</item>
0057 <item>int32</item>
0058 <item>int40</item>
0059 <item>int48</item>
0060 <item>int56</item>
0061 <item>int64</item>
0062 <item>int72</item>
0063 <item>int80</item>
0064 <item>int88</item>
0065 <item>int96</item>
0066 <item>int104</item>
0067 <item>int112</item>
0068 <item>int120</item>
0069 <item>int128</item>
0070 <item>int136</item>
0071 <item>int144</item>
0072 <item>int152</item>
0073 <item>int160</item>
0074 <item>int168</item>
0075 <item>int176</item>
0076 <item>int184</item>
0077 <item>int192</item>
0078 <item>int200</item>
0079 <item>int208</item>
0080 <item>int216</item>
0081 <item>int224</item>
0082 <item>int232</item>
0083 <item>int240</item>
0084 <item>int248</item>
0085 <item>int256</item>
0086 <!-- the detailed fixed types are not listed for now, as the whole family is not fully supported -->
0087 <item>ufixed</item>
0088 <item>fixed</item>
0089 <item>address</item>
0090 <item>byte</item>
0091 <item>bytes</item>
0092 <item>bytes1</item>
0093 <item>bytes2</item>
0094 <item>bytes3</item>
0095 <item>bytes4</item>
0096 <item>bytes5</item>
0097 <item>bytes6</item>
0098 <item>bytes7</item>
0099 <item>bytes8</item>
0100 <item>bytes9</item>
0101 <item>bytes10</item>
0102 <item>bytes11</item>
0103 <item>bytes12</item>
0104 <item>bytes13</item>
0105 <item>bytes14</item>
0106 <item>bytes15</item>
0107 <item>bytes16</item>
0108 <item>bytes17</item>
0109 <item>bytes18</item>
0110 <item>bytes19</item>
0111 <item>bytes20</item>
0112 <item>bytes21</item>
0113 <item>bytes22</item>
0114 <item>bytes23</item>
0115 <item>bytes24</item>
0116 <item>bytes25</item>
0117 <item>bytes26</item>
0118 <item>bytes27</item>
0119 <item>bytes28</item>
0120 <item>bytes29</item>
0121 <item>bytes30</item>
0122 <item>bytes31</item>
0123 <item>bytes32</item>
0124 <item>string</item>
0125 <item>mapping</item>
0126 </list>
0127
0128 <!-- Units and global variables, see https://solidity.readthedocs.io/en/latest/units-and-global-variables.html -->
0129 <list name="units">
0130 <item>wei</item>
0131 <item>finney</item>
0132 <item>szabo</item>
0133 <item>ether</item>
0134 <item>seconds</item>
0135 <item>minutes</item>
0136 <item>hours</item>
0137 <item>days</item>
0138 <item>weeks</item>
0139 </list>
0140 <list name="globals">
0141 <item>block</item>
0142 <item>msg</item>
0143 <item>now</item>
0144 <item>tx</item>
0145 <item>this</item>
0146 <item>super</item>
0147 <!-- global functions, do they belong elswhere? -->
0148 <item>blockhash</item>
0149 <item>gasleft</item>
0150 <item>abi</item>
0151 <item>assert</item>
0152 <item>require</item>
0153 <item>revert</item>
0154 <item>addmod</item>
0155 <item>mulmod</item>
0156 <item>keccak256</item>
0157 <item>sha256</item>
0158 <item>ripemd160</item>
0159 <item>ecrecover</item>
0160 <item>selfdestruct</item>
0161 <item>type</item>
0162 <!-- Low-level log functions, see https://solidity.readthedocs.io/en/latest/contracts.html#low-level-interface-to-logs -->
0163 <item>log0</item>
0164 <item>log1</item>
0165 <item>log2</item>
0166 <item>log3</item>
0167 <item>log4</item>
0168 </list>
0169
0170 <!-- Keywords, see https://solidity.readthedocs.io/en/latest/miscellaneous.html#cheatsheet -->
0171 <!-- Some keywords that are about program flow were moved to control structures. -->
0172 <list name="keywords">
0173 <item>as</item>
0174 <item>from</item>
0175 <item>is</item>
0176 <item>using</item>
0177 <!-- Type-related, see https://solidity.readthedocs.io/en/latest/types.html -->
0178 <item>enum</item>
0179 <item>true</item>
0180 <item>false</item>
0181 <item>new</item>
0182 <item>struct</item>
0183 <item>constant</item>
0184 <!-- Function-related, see https://solidity.readthedocs.io/en/latest/types.html#function-types -->
0185 <item>internal</item>
0186 <item>external</item>
0187 <item>public</item>
0188 <item>private</item>
0189 <item>pure</item>
0190 <item>view</item>
0191 <item>payable</item>
0192 <item>returns</item>
0193 <!-- Data location, see https://solidity.readthedocs.io/en/latest/types.html#data-location -->
0194 <item>memory</item>
0195 <item>storage</item>
0196 <item>calldata</item>
0197 <!-- Operator? Variable-related, see https://solidity.readthedocs.io/en/latest/types.html -->
0198 <item>delete</item>
0199 <!-- Events, see https://solidity.readthedocs.io/en/latest/contracts.html#events -->
0200 <item>event</item>
0201 <item>indexed</item>
0202 </list>
0203
0204 <!-- Control structures and expressions, see https://solidity.readthedocs.io/en/latest/control-structures.html -->
0205 <list name="controlstructures">
0206 <item>if</item>
0207 <item>else</item>
0208 <item>while</item>
0209 <item>do</item>
0210 <item>for</item>
0211 <item>break</item>
0212 <item>continue</item>
0213 <item>return</item>
0214 <!-- moved from keywords -->
0215 <item>import</item>
0216 <item>contract</item>
0217 <item>library</item>
0218 <item>assembly</item>
0219 <item>function</item>
0220 <item>constructor</item>
0221 <item>modifier</item>
0222 <item>emit</item>
0223 </list>
0224
0225 <!-- Reserved keywords, see https://solidity.readthedocs.io/en/latest/miscellaneous.html#reserved-keywords -->
0226 <list name="reserved">
0227 <item>abstract</item>
0228 <item>after</item>
0229 <item>alias</item>
0230 <item>apply</item>
0231 <item>auto</item>
0232 <item>case</item>
0233 <item>catch</item>
0234 <item>copyof</item>
0235 <item>default</item>
0236 <item>define</item>
0237 <item>final</item>
0238 <item>immutable</item>
0239 <item>implements</item>
0240 <item>in</item>
0241 <item>inline</item>
0242 <item>let</item>
0243 <item>macro</item>
0244 <item>match</item>
0245 <item>mutable</item>
0246 <item>null</item>
0247 <item>of</item>
0248 <item>override</item>
0249 <item>partial</item>
0250 <item>promise</item>
0251 <item>reference</item>
0252 <item>relocatable</item>
0253 <item>sealed</item>
0254 <item>sizeof</item>
0255 <item>static</item>
0256 <item>supports</item>
0257 <item>switch</item>
0258 <item>try</item>
0259 <item>typedef</item>
0260 <item>typeof</item>
0261 <item>unchecked</item>
0262 </list>
0263
0264 <contexts>
0265 <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
0266 <DetectSpaces />
0267 <StringDetect attribute="Keyword" String="pragma" context="Pragma" firstNonSpace="true" insensitive="true" />
0268 <keyword attribute="Control Structures" context="#stay" String="controlstructures" />
0269 <keyword attribute="Keyword" context="#stay" String="keywords" />
0270 <keyword attribute="Data Type" context="#stay" String="types" />
0271 <keyword attribute="Unit" context="#stay" String="units" />
0272 <keyword attribute="Built-in" context="#stay" String="globals" />
0273 <keyword attribute="Error" context="#stay" String="reserved" />
0274 <DetectIdentifier />
0275 <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
0276 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
0277
0278 <HlCHex attribute="Hex" context="#stay" />
0279 <Float attribute="Decimal" context="#stay" />
0280 <Int attribute="Decimal" context="#stay" />
0281
0282 <HlCChar attribute="Char" context="#stay"/>
0283 <DetectChar attribute="String" context="String" char=""" />
0284
0285 <Detect2Chars attribute="Built-in" context="#stay" char="+" char1="+" />
0286 <Detect2Chars attribute="Built-in" context="#stay" char="-" char1="-" />
0287
0288 <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
0289 <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
0290 <AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]|~^;" />
0291 </context>
0292
0293 <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
0294 <IncludeRules context="##Doxygen" />
0295 <Detect2Chars attribute="Comment" context="#pop!Comment Single" char="/" char1="/" />
0296 <Detect2Chars attribute="Comment" context="#pop!Comment Multi" char="/" char1="*" beginRegion="Comment" />
0297 </context>
0298
0299 <context name="Pragma" attribute="Normal Text" lineEndContext="#pop">
0300 <WordDetect attribute="Built-in" String="solidity" context="Pragma Solidity" insensitive="true" />
0301 <WordDetect attribute="Built-in" String="experimental" context="Pragma Experimental" insensitive="true" />
0302 <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0303 </context>
0304
0305 <context name="Pragma Solidity" attribute="Normal Text" lineEndContext="#pop">
0306 <RegExpr attribute="Normal Text" context="#pop" String="[\^\. \-<>=\|\d\w]+" />
0307 <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0308 </context>
0309
0310 <context name="Pragma Experimental" attribute="Normal Text" lineEndContext="#pop">
0311 <WordDetect attribute="Built-in" context="#pop" String="ABIEncoderV2" />
0312 <WordDetect attribute="Built-in" context="#pop" String="SMTChecker" />
0313 <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0314 </context>
0315
0316 <context name="String" attribute="String" lineEndContext="#pop">
0317 <LineContinue attribute="String" context="#stay" />
0318 <HlCStringChar attribute="String Char" context="#stay" />
0319 <DetectChar attribute="String" context="#pop" char="""/>
0320 </context>
0321
0322 <context name="Comment Single" attribute="Comment" lineEndContext="#pop">
0323 <LineContinue attribute="Comment" context="#stay" />
0324 <DetectSpaces />
0325 <IncludeRules context="##Comments" />
0326 <DetectIdentifier />
0327 </context>
0328
0329 <context name="Comment Multi" attribute="Comment" lineEndContext="#stay">
0330 <DetectSpaces />
0331 <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
0332 <IncludeRules context="##Comments" />
0333 <DetectIdentifier />
0334 </context>
0335 </contexts>
0336
0337 <itemDatas>
0338 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
0339 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
0340 <!-- itemData name="Function" defStyleNum="dsFunction" spellChecking="false" / -->
0341 <itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false" />
0342 <!-- itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" / -->
0343 <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false" />
0344 <itemData name="Built-in" defStyleNum="dsBuiltIn" spellChecking="false" />
0345 <itemData name="Unit" defStyleNum="dsConstant" bold="0" spellChecking="false" />
0346 <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false" />
0347 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
0348 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
0349 <itemData name="String" defStyleNum="dsString" />
0350 <itemData name="Char" defStyleNum="dsChar" />
0351 <itemData name="String Char" defStyleNum="dsSpecialChar" />
0352 <itemData name="Comment" defStyleNum="dsComment" />
0353 <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
0354 </itemDatas>
0355 </highlighting>
0356
0357 <general>
0358 <comments>
0359 <comment name="singleLine" start="//" />
0360 <comment name="multiLine" start="/*" end="*/" region="Comment" />
0361 </comments>
0362 <keywords casesensitive="1" />
0363 </general>
0364
0365 </language>
0366 <!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->