|
|
|
; Identifier naming conventions
|
|
|
|
|
|
|
|
(
|
|
|
|
(identifier) @constant
|
|
|
|
(#match? @constant "^[A-Z][A-Z\\d_]+$"))
|
|
|
|
|
|
|
|
; class
|
|
|
|
(class_name_statement (name) @type)
|
|
|
|
(class_definition (name) @type)
|
|
|
|
|
|
|
|
|
|
|
|
; Function calls
|
|
|
|
|
|
|
|
(attribute_call (identifier) @function)
|
|
|
|
(base_call (identifier) @function)
|
|
|
|
(call (identifier) @function)
|
|
|
|
|
|
|
|
; Function definitions
|
|
|
|
|
|
|
|
(function_definition
|
|
|
|
name: (name) @function
|
|
|
|
parameters: (parameters) @variable.parameter )
|
|
|
|
(constructor_definition "_init" @function)
|
|
|
|
(lambda (parameters) @variable.parameter)
|
|
|
|
|
|
|
|
|
|
|
|
;; Literals
|
|
|
|
(comment) @comment
|
|
|
|
(string) @string
|
|
|
|
|
|
|
|
(type) @type
|
|
|
|
(expression_statement (array (identifier) @type))
|
|
|
|
(binary_operator (identifier) @type)
|
|
|
|
(enum_definition (name) @type.enum)
|
|
|
|
(enumerator (identifier) @type.enum.variant)
|
|
|
|
[
|
|
|
|
(null)
|
|
|
|
(underscore)
|
|
|
|
] @type.builtin
|
|
|
|
|
|
|
|
|
|
|
|
(variable_statement (identifier) @variable)
|
|
|
|
(attribute
|
|
|
|
(identifier)
|
|
|
|
(identifier) @variable.other.member)
|
|
|
|
(attribute
|
|
|
|
(identifier) @type.builtin
|
|
|
|
(#match? @type.builtin "^(AABB|Array|Basis|bool|Callable|Color|Dictionary|float|int|NodePath|Object|Packed(Byte|Color|String)Array|PackedFloat(32|64)Array|PackedInt(32|64)Array|PackedVector(2|3)Array|Plane|Projection|Quaternion|Rect2([i]{0,1})|RID|Signal|String|StringName|Transform(2|3)D|Variant|Vector(2|3|4)([i]{0,1}))$"))
|
|
|
|
|
|
|
|
[
|
|
|
|
(string_name)
|
|
|
|
(node_path)
|
|
|
|
(get_node)
|
|
|
|
] @label
|
|
|
|
(signal_statement (name) @label)
|
|
|
|
|
|
|
|
(const_statement (name) @constant)
|
|
|
|
(integer) @constant.numeric.integer
|
|
|
|
(float) @constant.numeric.float
|
|
|
|
(escape_sequence) @constant.character.escape
|
|
|
|
[
|
|
|
|
(true)
|
|
|
|
(false)
|
|
|
|
] @constant.builtin.boolean
|
|
|
|
|
|
|
|
[
|
|
|
|
"+"
|
|
|
|
"-"
|
|
|
|
"*"
|
|
|
|
"/"
|
|
|
|
"%"
|
|
|
|
"=="
|
|
|
|
"!="
|
|
|
|
">"
|
|
|
|
"<"
|
|
|
|
">="
|
|
|
|
"<="
|
|
|
|
"="
|
|
|
|
"+="
|
|
|
|
"-="
|
|
|
|
"*="
|
|
|
|
"/="
|
|
|
|
"%="
|
|
|
|
"&"
|
|
|
|
"|"
|
|
|
|
"^"
|
|
|
|
"~"
|
|
|
|
"<<"
|
|
|
|
">>"
|
|
|
|
":="
|
|
|
|
] @operator
|
|
|
|
|
|
|
|
(annotation (identifier) @keyword.storage.modifier)
|
|
|
|
|
|
|
|
[
|
|
|
|
"if"
|
|
|
|
"else"
|
|
|
|
"elif"
|
|
|
|
"match"
|
|
|
|
] @keyword.control.conditional
|
|
|
|
|
|
|
|
[
|
|
|
|
"while"
|
|
|
|
"for"
|
|
|
|
] @keyword.control.repeat
|
|
|
|
|
|
|
|
[
|
|
|
|
"return"
|
|
|
|
"pass"
|
|
|
|
"break"
|
|
|
|
"continue"
|
|
|
|
] @keyword.control.return
|
|
|
|
|
|
|
|
[
|
|
|
|
"func"
|
|
|
|
] @keyword.control.function
|
|
|
|
|
|
|
|
[
|
|
|
|
"export"
|
|
|
|
] @keyword.control.import
|
|
|
|
|
|
|
|
[
|
|
|
|
"in"
|
|
|
|
"is"
|
|
|
|
"as"
|
|
|
|
"and"
|
|
|
|
"or"
|
|
|
|
"not"
|
|
|
|
] @keyword.operator
|
|
|
|
|
|
|
|
[
|
|
|
|
"var"
|
|
|
|
"class"
|
|
|
|
"class_name"
|
|
|
|
"enum"
|
|
|
|
] @keyword.storage.type
|
|
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
(remote_keyword)
|
|
|
|
(static_keyword)
|
|
|
|
"const"
|
|
|
|
"signal"
|
|
|
|
"@"
|
|
|
|
] @keyword.storage.modifier
|
|
|
|
|
|
|
|
[
|
|
|
|
"setget"
|
|
|
|
"onready"
|
|
|
|
"extends"
|
|
|
|
"set"
|
|
|
|
"get"
|
|
|
|
"await"
|
|
|
|
] @keyword
|
|
|
|
|