Warning, /frameworks/syntax-highlighting/data/syntax/gd-script.xml is written in an unsupported language. File is not indexed.
0001 <!-- 0002 0003 gd-script.xml: Mario Aichinger <aichingm@gmail.com> 2021 0004 0005 This file is derivatived from the python.xml file which has ATM no license notice. This means that same license which covers the file python.xml, which ever it may be, applies to this file. Besides the inherited license, the code I (Mario Aichinger) added, which is/was not part of the python.xml file, is covered by the MIT license. 0006 0007 --> 0008 <language name="Godot" version="3" style="godot" kateversion="5.0" section="Scripts" indenter="python" priority="5" extensions="*.gd" casesensitive="1" author="Mario Aichinger" > 0009 <highlighting> 0010 <list name="preprocessor"> 0011 <item>breakpoint</item> 0012 <item>preload</item> 0013 <item>assert</item> 0014 </list> 0015 <list name="consts"> 0016 <item>PI</item> 0017 <item>TAU</item> 0018 <item>INF</item> 0019 </list> 0020 <list name="defs"> 0021 <item>class</item> 0022 <item>class_name</item> 0023 <item>extends</item> 0024 <item>tool</item> 0025 <item>signal</item> 0026 <item>func</item> 0027 <item>static</item> 0028 <item>const</item> 0029 <item>enum</item> 0030 <item>var</item> 0031 <item>onready</item> 0032 <item>export</item> 0033 <item>setget</item> 0034 <item>remote</item> 0035 <item>master</item> 0036 <item>puppet</item> 0037 <item>remotesync</item> 0038 <item>mastersync</item> 0039 <item>puppetsync</item> 0040 </list> 0041 <list name="operators"> 0042 <item>is</item> 0043 <item>and</item> 0044 <item>or</item> 0045 <item>in</item> 0046 <item>not</item> 0047 <item>as</item> 0048 </list> 0049 <list name="flow"> 0050 <item>if</item> 0051 <item>elif</item> 0052 <item>else</item> 0053 <item>for</item> 0054 <item>while</item> 0055 <item>match</item> 0056 <item>break</item> 0057 <item>continue</item> 0058 <item>pass</item> 0059 <item>return</item> 0060 <item>yield</item> 0061 </list> 0062 <list name="builtinfuncs"> 0063 <item>min</item> 0064 <item>Color8</item> 0065 <item>ColorN</item> 0066 <item>abs</item> 0067 <item>acos</item> 0068 <item>asin</item> 0069 <item>atan</item> 0070 <item>atan2</item> 0071 <item>bytes2var</item> 0072 <item>cartesian2polar</item> 0073 <item>ceil</item> 0074 <item>char</item> 0075 <item>clamp</item> 0076 <item>convert</item> 0077 <item>cos</item> 0078 <item>cosh</item> 0079 <item>db2linear</item> 0080 <item>decimals</item> 0081 <item>dectime</item> 0082 <item>deg2rad</item> 0083 <item>dict2inst</item> 0084 <item>ease</item> 0085 <item>exp</item> 0086 <item>floor</item> 0087 <item>fmod</item> 0088 <item>fposmod</item> 0089 <item>funcref</item> 0090 <item>get_stack</item> 0091 <item>hash</item> 0092 <item>inst2dict</item> 0093 <item>instance_from_id</item> 0094 <item>inverse_lerp</item> 0095 <item>is_equal_approx</item> 0096 <item>is_inf</item> 0097 <item>is_instance_valid</item> 0098 <item>is_nan</item> 0099 <item>is_zero_approx</item> 0100 <item>len</item> 0101 <item>lerp</item> 0102 <item>lerp_angle</item> 0103 <item>linear2db</item> 0104 <item>load</item> 0105 <item>log</item> 0106 <item>max</item> 0107 <item>min</item> 0108 <item>move_toward</item> 0109 <item>nearest_po2</item> 0110 <item>ord</item> 0111 <item>parse_json</item> 0112 <item>polar2cartesian</item> 0113 <item>posmod</item> 0114 <item>pow</item> 0115 <item>print</item> 0116 <item>print_debug</item> 0117 <item>print_stack</item> 0118 <item>printerr</item> 0119 <item>printraw</item> 0120 <item>prints</item> 0121 <item>printt</item> 0122 <item>push_error</item> 0123 <item>push_warning</item> 0124 <item>rad2deg</item> 0125 <item>rand_range</item> 0126 <item>rand_seed</item> 0127 <item>randf</item> 0128 <item>randi</item> 0129 <item>randomize</item> 0130 <item>range</item> 0131 <item>range_lerp</item> 0132 <item>round</item> 0133 <item>seed</item> 0134 <item>sign</item> 0135 <item>sin</item> 0136 <item>sinh</item> 0137 <item>smoothstep</item> 0138 <item>sqrt</item> 0139 <item>step_decimals</item> 0140 <item>stepify</item> 0141 <item>str</item> 0142 <item>str2var</item> 0143 <item>tan</item> 0144 <item>tanh</item> 0145 <item>to_json</item> 0146 <item>type_exists</item> 0147 <item>typeof</item> 0148 <item>validate_json</item> 0149 <item>var2bytes</item> 0150 <item>var2str</item> 0151 <item>weakref</item> 0152 <item>wrapf</item> 0153 <item>wrapi</item> 0154 </list> 0155 <list name="specialvars"> 0156 <item>null</item> 0157 <item>self</item> 0158 <item>true</item> 0159 <item>false</item> 0160 </list> 0161 <list name="bindings"> 0162 <item>connect</item> 0163 </list> 0164 <list name="overloaders"> 0165 <item>_get</item> 0166 <item>_get_property_list</item> 0167 <item>_init</item> 0168 <item>_notification</item> 0169 <item>_set</item> 0170 <item>_to_string</item> 0171 <item>_enter_tree</item> 0172 <item>_exit_tree</item> 0173 <item>_get_configuration_warning</item> 0174 <item>_input</item> 0175 <item>_physics_process</item> 0176 <item>_process</item> 0177 <item>_ready</item> 0178 <item>_unhandled_input</item> 0179 <item>_unhandled_key_input</item> 0180 </list> 0181 <contexts> 0182 <context name="Normal" attribute="Normal Text" lineEndContext="#stay"> 0183 <DetectSpaces/> 0184 0185 0186 <keyword attribute="Preprocessor" String="preprocessor" context="#stay"/> 0187 <keyword attribute="Consts Keyword" String="consts" context="#stay"/> 0188 <keyword attribute="Definition Keyword" String="defs" context="#stay"/> 0189 <keyword attribute="Operator Keyword" String="operators" context="#stay"/> 0190 <keyword attribute="Flow Control Keyword" String="flow" context="#stay"/> 0191 <keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/> 0192 <keyword attribute="Special Variable" String="specialvars" context="#stay"/> 0193 <keyword attribute="Bindings" String="bindings" context="#stay"/> 0194 <keyword attribute="Overloaders" String="overloaders" context="#stay"/> 0195 0196 <IncludeRules context="FunctionCall"/> 0197 <IncludeRules context="UnusedVariable"/> 0198 0199 <RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/> 0200 0201 <!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 --> 0202 <RegExpr attribute="Hex" String="0x(?:_?[\da-fA-F])+\b" context="#stay"/> 0203 <RegExpr attribute="Binary" String="0b(?:_?[01])+\b" context="#stay"/> 0204 <RegExpr attribute="Octal" String="0o(?:_?[0-7])+\b" context="#stay"/> 0205 0206 <!-- Float: .1e3 ; 1.1e3 | Float: 1e3 ; 1.e3 ; | Float: 1.1 ; ; .1 --> 0207 <RegExpr attribute="Float" String="([0-9][_0-9]*(\.[0-9]([_0-9])*)e[\+\-]?[0-9][_0-9]*)|([0-9][_0-9]*\.?e[\+\-]?[0-9][_0-9]*)|(([0-9]([_0-9])*)?\.[0-9][_0-9]*)" context="#stay"/> 0208 0209 <!-- Decimal: 123 ; 000 --> 0210 <RegExpr attribute="Int" String="\d[_\d]*" context="#stay"/> 0211 0212 <DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/> 0213 <DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/> 0214 0215 <DetectChar attribute="Comment" char="#" context="Hash comment"/> 0216 0217 <IncludeRules context="StringVariants"/> 0218 0219 <IncludeRules context="VariableVariants"/> 0220 0221 <AnyChar attribute="Operator" String="~-*/%+&^|<>=!" context="#stay"/> 0222 0223 <DetectIdentifier/> 0224 </context> 0225 0226 <context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0227 <DetectSpaces/> 0228 <LineContinue attribute="Normal Text" context="CheckForStringNext"/> 0229 </context> 0230 0231 <context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 0232 <DetectSpaces/> 0233 <LineContinue attribute="Normal Text" context="CheckForStringNext"/> 0234 <IncludeRules context="StringVariants"/> 0235 </context> 0236 0237 <context name="StringVariants" attribute="Normal Text" lineEndContext="#stay"> 0238 <StringDetect attribute="String" String="'''" insensitive="true" context="Triple A-string" beginRegion="Triple A-region"/> 0239 <StringDetect attribute="String" String=""""" insensitive="true" context="Triple Q-string" beginRegion="Triple Q-region"/> 0240 <DetectChar attribute="String" char="'" context="Single A-string"/> 0241 <DetectChar attribute="String" char=""" context="Single Q-string"/> 0242 0243 </context> 0244 0245 <context name="VariableVariants" attribute="Normal Text" lineEndContext="#stay"> 0246 <Detect2Chars attribute="NodePath-String" char="@" char1=""" context="NodePath-String"/> 0247 <RegExpr attribute="NodePath-Var" String="\$[a-zA-Z0-9_]" insensitive="true" context="NodePath-Var"/> 0248 </context> 0249 0250 <context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 0251 <DetectSpaces/> 0252 <DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/> 0253 <IncludeRules context="Normal"/> 0254 </context> 0255 0256 <context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 0257 <DetectSpaces/> 0258 <DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/> 0259 <IncludeRules context="Normal"/> 0260 </context> 0261 0262 <!-- Comments --> 0263 0264 <context name="Hash comment" attribute="Comment" lineEndContext="#pop"> 0265 <DetectSpaces/> 0266 <IncludeRules context="##Comments"/> 0267 </context> 0268 0269 <!-- Strings --> 0270 0271 <!-- format characters --> 0272 <context name="stringformat" attribute="String Substitution" lineEndContext="#stay"> 0273 <Detect2Chars attribute="String" char="%" char1="%" context="#stay"/> 0274 <RegExpr attribute="String Substitution" String="%.?-?(([1-9][0-9]*)\*?)?(\.(([1-9][0-9]*)|\*))?[scdoxf]|\{(([a-zA-Z_][a-zA-Z_0-9]*)|[0-9]+)?\}" context="#stay"/> 0275 <Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay"/> 0276 <Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay"/> 0277 </context> 0278 0279 <!-- escape characters --> 0280 <context name="stringescape" attribute="String Char" lineEndContext="#stay"> 0281 <RegExpr attribute="String Char" String="\\[\\'"ntrabfv]|\\u[0-9A-Fa-f]{4}" context="#stay"/> 0282 </context> 0283 0284 <!-- Triple-quoted A-strings --> 0285 <context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0286 <IncludeRules context="stringescape"/> 0287 <IncludeRules context="stringformat"/> 0288 <StringDetect attribute="String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 0289 </context> 0290 0291 <!-- Triple-quoted Q-strings --> 0292 <context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true"> 0293 <IncludeRules context="stringescape"/> 0294 <IncludeRules context="stringformat"/> 0295 <StringDetect attribute="String" String=""""" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 0296 </context> 0297 0298 <!-- Single-quoted A-strings --> 0299 <context name="Single A-string" attribute="String" lineEndContext="#stay"> 0300 <IncludeRules context="stringescape"/> 0301 <IncludeRules context="stringformat"/> 0302 <DetectChar attribute="String" char="'" context="#pop!#CheckForString"/> 0303 </context> 0304 0305 <!-- Single-quoted Q-strings --> 0306 <context name="Single Q-string" attribute="String" lineEndContext="#stay"> 0307 <IncludeRules context="stringescape"/> 0308 <IncludeRules context="stringformat"/> 0309 <DetectChar attribute="String" char=""" context="#pop!#CheckForString"/> 0310 </context> 0311 0312 <!-- Node Types --> 0313 <context name="NodePath-String" attribute="NodePath-String" lineEndContext="#pop"> 0314 <DetectChar attribute="String" char=""" context="#pop!#CheckForString"/> 0315 </context> 0316 0317 <context name="NodePath-Var" attribute="NodePath-Var" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1"> 0318 <RegExpr attribute="NodePath-Var" String="[a-zA-Z0-9_]" context="#stay"/> 0319 </context> 0320 0321 <context name="UnusedVariable" attribute="UnusedVariable" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1"> 0322 <RegExpr attribute="Normal Text" lookAhead="true" String="_[a-zA-Z][a-zA-Z0-9_]+\w*\(" context="#pop"/> <!-- exclude function calls and definitions --> 0323 <RegExpr attribute="UnusedVariable" String="_[a-zA-Z][a-zA-Z0-9_]+" context="#stay"/> 0324 </context> 0325 0326 <context name="FunctionCall" attribute="Function Call" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1"> 0327 <RegExpr lookAhead="true" String="[a-zA-Z_][a-zA-Z0-9_]+\w*\(" context="FunctionCallName"/> <!-- exclude none function calls and definitions --> 0328 </context> 0329 0330 <context name="FunctionCallName" attribute="Function Call" lineEndContext="#pop" fallthroughContext="#pop" fallthrough="1"> 0331 <RegExpr attribute="Function Call" String="[a-zA-Z_][a-zA-Z0-9_]+" context="#pop"/> 0332 </context> 0333 0334 </contexts> 0335 0336 <itemDatas> 0337 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> 0338 <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/> 0339 <itemData name="Consts Keyword" defStyleNum="dsConstant" spellChecking="false"/> 0340 <itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 0341 <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/> 0342 <itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 0343 <itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/> 0344 <itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/> 0345 <itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/> 0346 <itemData name="Bindings" defStyleNum="dsBuiltIn" spellChecking="false"/> 0347 <itemData name="Overloaders" defStyleNum="dsBuiltIn" spellChecking="false"/> 0348 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 0349 <itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/> 0350 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 0351 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 0352 <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/> 0353 <itemData name="Comment" defStyleNum="dsComment"/> 0354 <itemData name="String" defStyleNum="dsString"/> 0355 <itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/> 0356 <itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/> 0357 <itemData name="NodePath-String" defStyleNum="dsSpecialString" spellChecking="false"/> 0358 <itemData name="NodePath-Var" defStyleNum="dsVariable" spellChecking="false"/> 0359 <itemData name="UnusedVariable" defStyleNum="dsComment" spellChecking="false"/> 0360 <itemData name="Function Call" defStyleNum="dsFunction" spellChecking="false"/> 0361 </itemDatas> 0362 </highlighting> 0363 <general> 0364 <folding indentationsensitive="1"/> 0365 <emptyLines> 0366 <emptyLine regexpr="(?:\s+|\s*#.*)"/> 0367 </emptyLines> 0368 <comments> 0369 <comment name="singleLine" start="#" position="afterwhitespace"/> 0370 </comments> 0371 <keywords casesensitive="1" additionalDeliminator="#'"/> 0372 </general> 0373 </language>