Skip to content

Commit

Permalink
gdscript support (#1985)
Browse files Browse the repository at this point in the history
  • Loading branch information
EmmChriss authored Apr 15, 2022
1 parent 893963d commit 50df924
Show file tree
Hide file tree
Showing 5 changed files with 140 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
| erb || | | |
| erlang || | | `erlang_ls` |
| fish |||| |
| gdscript || || |
| git-commit || | | |
| git-config || | | |
| git-diff || | | |
Expand Down
15 changes: 15 additions & 0 deletions languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1150,3 +1150,18 @@ injection-regex = "sql"
[[grammar]]
name = "sql"
source = { git = "https://github.com/DerekStride/tree-sitter-sql", rev = "0caa7fa2ee00e0b770493a79d4efacc1fc376cc5" }

[[language]]
name = "gdscript"
scope = "source.gdscript"
injection-regex = "gdscript"
file-types = ["gd"]
shebangs = []
roots = ["project.godot"]
auto-format = true
comment-token = "#"
indent = { tab-width = 4, unit = " " }

[[grammar]]
name = "gdscript"
source = { git = "https://github.com/PrestonKnopp/tree-sitter-gdscript", rev = "2a6abdaa47fcb91397e09a97c7433fd995ea46c6" }
93 changes: 93 additions & 0 deletions runtime/queries/gdscript/highlights.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
; Identifier naming conventions

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

; 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

;; Literals
[
(true)
(false)
(null)
] @constant.builtin

[
"+"
"-"
"*"
"/"
"%"
"=="
"!="
">"
"<"
">="
"<="
"="
"+="
"-="
"*="
"/="
"%="
"&"
"|"
"^"
"~"
"<<"
">>"
"and"
"or"
"not"
] @operator

[
(static_keyword)
(remote_keyword)
(tool_statement)
"var"
"func"
"setget"
"in"
"is"
"as"
"if"
"else"
"elif"
"while"
"for"
"return"
"break"
"continue"
"pass"
"match"
"class"
"class_name"
"enum"
"signal"
"onready"
"export"
"extends"
"const"
] @keyword
26 changes: 26 additions & 0 deletions runtime/queries/gdscript/indents.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[
(_compound_statement)
(match_statement)
(parenthesized_expression)

(pattern_array)
(pattern_dictionary)
(argument_list)
(binary_operator)

(parameters)
(body)
(enumerator_list)

(function_definition)
(constructor_definition)
(class_definition)
] @indent

[
")",
"]",
"}",
(return_statement)
(pass_statement)
] @outdent
5 changes: 5 additions & 0 deletions runtime/queries/gdscript/tags.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(class_definition (name) @name) @definition.class

(function_definition (name) @name) @definition.function

(call (name) @name) @reference.call

0 comments on commit 50df924

Please sign in to comment.