const e=Object.freeze({displayName:"GDScript",fileTypes:["gd"],name:"gdscript",patterns:[{include:"#statement"},{include:"#expression"}],repository:{annotated_parameter:{begin:`(?x) \\s* ([a-zA-Z_]\\w*) \\s* (:)\\s* ([a-zA-Z_]\\w*)? `,beginCaptures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.annotation.gdscript"},3:{name:"entity.name.type.class.builtin.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"}]},annotations:{captures:{1:{name:"entity.name.function.decorator.gdscript"},2:{name:"entity.name.function.decorator.gdscript"}},match:"(@)(export|export_color_no_alpha|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|icon|onready|rpc|tool|warning_ignore|abstract)\\b"},any_method:{match:"\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",name:"support.function.any-method.gdscript"},any_property:{captures:{1:{name:"punctuation.accessor.gdscript"},2:{name:"constant.language.gdscript"},3:{name:"variable.other.property.gdscript"}},match:"\\b(\\.)\\s*(?|\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~|!",name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:"=",name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#const_vars"},{include:"#keywords"},{include:"#logic_operator"},{include:"#compare_operator"},{include:"#arithmetic_operator"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#builtin_classes"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},builtin_classes:{match:"(?=|==|<|>|!=",name:"keyword.operator.comparison.gdscript"},const_vars:{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.gdscript"},control_flow:{match:"\\b(?:if|elif|else|while|break|continue|pass|return|match|yield|await)\\b",name:"keyword.control.gdscript"},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{1:{name:"keyword.language.gdscript"},2:{name:"entity.other.inherited-class.gdscript"}},match:"(extends)\\s+([a-zA-Z_]\\w*\\.[a-zA-Z_]\\w*)?"},func:{match:"\\bfunc\\b",name:"keyword.language.gdscript"},function_arguments:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.gdscript"},{captures:{1:{name:"variable.parameter.function-call.gdscript"},2:{name:"keyword.operator.assignment.gdscript"}},match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{1:{name:"punctuation.definition.arguments.end.gdscript"},2:{name:"punctuation.definition.arguments.begin.gdscript"}},match:"\\s*(\\))\\s*(\\()"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:`(?x) \\b(?= ([a-zA-Z_]\\w*) \\s* (\\() ) `,beginCaptures:{2:{name:"punctuation.definition.arguments.begin.gdscript"}},comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:`(?x) \\s* (func) \\s+ ([a-zA-Z_]\\w*) \\s* (?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{comment:"Some color schemas support meta.function-call.generic scope",match:`(?x) \\b ([a-zA-Z_]\\w*) \\b `,name:"support.function.any-method.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{1:{name:"entity.name.function.gdscript"}},match:"\\b(get):"},{begin:`(?x) \\s+ (set) \\s* (?=\\()`,beginCaptures:{1:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:"\\b(for)\\b",captures:{1:{name:"keyword.control.gdscript"}},end:":",patterns:[{match:"\\bin\\b",name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:"\\bin\\b",name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:"\\b(?:class|class_name|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},lambda_declaration:{begin:"(func)\\s?(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`(:|(?=[#'"\\n]))`,end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:"\\b(?:true|false|null)\\b",name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.gdscript"},2:{name:"invalid.illegal.line.continuation.gdscript"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.gdscript"}},end:`(?x) (?=^\\s*$) | (?! (\\s* [rR]? (\\'\\'\\'|\\"\\"\\"|\\'|\\")) | (\\G $) (?# '\\G' is necessary for ST) ) `,patterns:[{include:"#base_expression"}]}]},logic_operator:{match:"\\b(and|or|not|!)\\b",name:"keyword.operator.wordlike.gdscript"},loose_default:{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},nodepath_function:{begin:"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"},2:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:"%",name:"keyword.control.flow"}]}]},nodepath_object:{begin:"(NodePath)\\s*(?:\\()",beginCaptures:{1:{name:"support.class.library.gdscript"}},end:"(?:\\))",name:"meta.literal.nodepath.gdscript",patterns:[{begin:`("|')`,end:"\\1",name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:"0b[01_]+",name:"constant.numeric.integer.binary.gdscript"},{match:"0x[0-9A-Fa-f_]+",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"[-]?([0-9][0-9_]+\\.[0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?(\\.[0-9][0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?([0-9][0-9_]*e[\\-\\+]?\\[0-9_])",name:"constant.numeric.float.gdscript"},{match:"[-]?[0-9][0-9_]*",name:"constant.numeric.integer.gdscript"}]},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.parameters.gdscript"}},match:`(?x) ([a-zA-Z_]\\w*) \\s* (?: (,) | (?=[)#\\n=])) `},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:"\\b([A-Z][a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b",name:"entity.name.type.class.gdscript"},round_braces:{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.gdscript"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:"\\bself\\b",name:"variable.language.gdscript"},signal_declaration:{begin:`(?x) \\s* (signal) \\s+ ([a-zA-Z_]\\w*) \\s* (?=\\()`,beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:`((?=[#'"\\n]))`,name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},match:`(?x) \\s* (signal) \\s+ ([a-zA-Z_]\\w*)(?=[\\n\\s])`,name:"meta.signal.gdscript"},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:`(?x) \\b(?