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="~-*/%+&amp;^|&lt;>=!" 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="&quot;&quot;&quot;" insensitive="true" context="Triple Q-string" beginRegion="Triple Q-region"/>
0240                                 <DetectChar attribute="String" char="'" context="Single A-string"/>
0241                                 <DetectChar attribute="String" char="&quot;" context="Single Q-string"/>
0242 
0243                         </context>
0244 
0245             <context name="VariableVariants" attribute="Normal Text" lineEndContext="#stay">
0246                 <Detect2Chars attribute="NodePath-String"  char="@" char1="&quot;" 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="\\[\\'&quot;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="&quot;&quot;&quot;" 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="&quot;" context="#pop!#CheckForString"/>
0310                         </context>
0311 
0312             <!-- Node Types -->
0313                         <context name="NodePath-String" attribute="NodePath-String" lineEndContext="#pop">
0314                                 <DetectChar attribute="String" char="&quot;" 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>