Skip to content

Commit

Permalink
Update queries for godot4 (helix-editor#6186)
Browse files Browse the repository at this point in the history
  • Loading branch information
erasin authored and wes-adams committed Jul 3, 2023
1 parent 7d33fbe commit a3947d8
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 29 deletions.
2 changes: 1 addition & 1 deletion languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1463,7 +1463,7 @@ indent = { tab-width = 4, unit = "\t" }

[[grammar]]
name = "gdscript"
source = { git = "https://github.com/PrestonKnopp/tree-sitter-gdscript", rev = "a56a6fcec3fb63ec3324bf9373aae7298861eb30" }
source = { git = "https://github.com/PrestonKnopp/tree-sitter-gdscript", rev = "a4b57cc3bcbfc24550e858159647e9238e7ad1ac" }

[[language]]
name = "godot-resource"
Expand Down
88 changes: 61 additions & 27 deletions runtime/queries/gdscript/highlights.scm
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
; Identifier naming conventions

((identifier) @constant
(#match? @constant "^[A-Z][A-Z_]*$"))
(
(identifier) @constant
(#match? @constant "^[A-Z][A-Z\\d_]+$"))

; class
(class_name_statement (name) @type)
Expand All @@ -11,32 +12,35 @@
; Function calls

(attribute_call (identifier) @function)

(base_call (identifier) @function)

(call (identifier) @function)

; Function definitions

(function_definition (name) @function)

(constructor_definition "_init" @function)


;; Literals
(integer) @constant.numeric.integer
(float) @constant.numeric.float
(comment) @comment
(string) @string
(escape_sequence) @constant.character.escape
(identifier) @variable

(type) @type
(expression_statement (array (identifier) @type))
(binary_operator (identifier) @type)

;; Literals
(variable_statement (identifier) @variable)
(get_node) @label

(const_statement (name) @constant)
(integer) @constant.numeric.integer
(float) @constant.numeric.float
(escape_sequence) @constant.character.escape
[
(true)
(false)
(null)
] @constant.builtin
] @constant.builtin.boolean
(null) @constant.builtin

[
"+"
Expand All @@ -62,37 +66,67 @@
"~"
"<<"
">>"
"and"
"or"
"not"
] @operator

(annotation (identifier) @keyword.storage.modifier)

[
(static_keyword)
(remote_keyword)
(tool_statement)
"var"
"func"
"setget"
"in"
"is"
"as"
"if"
"else"
"elif"
] @keyword.control.conditional

[
"while"
"for"
] @keyword.control.repeat

[
"return"
"pass"
"break"
"continue"
"pass"
] @keyword.control.return

[
"func"
] @keyword.control.function

[
"export"
] @keyword.control.import

[
"in"
"is"
"as"
"match"
"and"
"or"
"not"
] @keyword.operator

[
"var"
"class"
"class_name"
"enum"
] @keyword.storage.type


[
(remote_keyword)
(static_keyword)
"const"
"signal"
"@"
] @keyword.storage.modifier

[
"setget"
"onready"
"export"
"extends"
"const"
"set"
"get"
] @keyword

2 changes: 1 addition & 1 deletion runtime/queries/gdscript/indents.scm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

(dictionary (_))
(array (_))
(setget)
] @indent

[
Expand All @@ -25,7 +26,6 @@
(class_definition)
] @extend


[
(return_statement)
(break_statement)
Expand Down
16 changes: 16 additions & 0 deletions runtime/queries/godot-resource/injections.scm
Original file line number Diff line number Diff line change
@@ -1,2 +1,18 @@
((comment) @injection.content
(#set! injection.language "comment"))

; ((section) @injection.content
; (#set! injection.language "comment"))

((section
(attribute
(identifier) @_type
(string) @_is_shader)
(property
(path) @_is_code
(string) @injection.content))
(#match? @_type "type")
(#match? @_is_shader "Shader")
(#eq? @_is_code "code")
(#set! injection.language "glsl")
)

0 comments on commit a3947d8

Please sign in to comment.