diff --git a/.gitmodules b/.gitmodules index fe3df9a2..f51cea4f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -266,3 +266,6 @@ [submodule "assets/syntaxes/02_Extra/Idris2"] path = assets/syntaxes/02_Extra/Idris2 url = https://github.com/buzden/sublime-syntax-idris2 +[submodule "assets/syntaxes/02_Extra/GDScript-sublime"] + path = assets/syntaxes/02_Extra/GDScript-sublime + url = https://github.com/beefsack/GDScript-sublime diff --git a/CHANGELOG.md b/CHANGELOG.md index b4a8184c..fca20b2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - Map `ndjson` extension to JSON syntax, see #3209 (@keith-hall) - Map files with `csproj`, `vbproj`, `props` and `targets` extensions to XML syntax, see #3213 (@keith-hall) - Add debsources syntax to highlight `/etc/apt/sources.list` files, see #3215 (@keith-hall) +- Add syntax test file for GDScript highlighting, see #XYZ (@chetanjangir0) ## Themes diff --git a/assets/syntaxes/02_Extra/GDScript-sublime b/assets/syntaxes/02_Extra/GDScript-sublime new file mode 160000 index 00000000..96f5dcf2 --- /dev/null +++ b/assets/syntaxes/02_Extra/GDScript-sublime @@ -0,0 +1 @@ +Subproject commit 96f5dcf29728aa987123321e2544330eed991a3e diff --git a/tests/syntax-tests/source/GDScript/test.gd b/tests/syntax-tests/source/GDScript/test.gd new file mode 100644 index 00000000..7192dfec --- /dev/null +++ b/tests/syntax-tests/source/GDScript/test.gd @@ -0,0 +1,71 @@ +extends Node + +signal custom_signal(param) + +const PI = 3.14159 + +var untyped_var = "Hello, World!" +var typed_int: int = 42 +var typed_float: float = 3.14 +var typed_string: String = "GDScript Test" +var typed_array: Array = [1, 2, 3, 4] +var typed_dict: Dictionary = {"key": "value", "number": 100} + +onready var label = $Label + +func say_hello() -> void: + print("Hello from GDScript!") + +func add_numbers(a: int, b: int = 10) -> int: + return a + b + +func process_value(value: int) -> String: + if value < 0: + return "Negative" + elif value == 0: + return "Zero" + else: + return "Positive" + +func sum_array(arr: Array) -> int: + var total: int = 0 + for num in arr: + total += num + return total + +func describe_number(num: int) -> String: + match num: + 0: + return "Zero" + 1, 2, 3: + return "Small number" + _: + return "Large number" + +func long_description() -> String: + return """This is a test file for GDScript. +It covers variables, functions, control structures, loops, signals, inner classes, +multiline strings, arrays, and dictionaries.""" + +class InnerExample: + var inner_value: int = 99 + func show_value() -> void: + print("Inner value is:", inner_value) + +func test_inner_class() -> void: + var inner = InnerExample.new() + inner.show_value() + +func trigger_signal() -> void: + emit_signal("custom_signal", "TestParam") + +func _ready() -> void: + say_hello() + var result_add = add_numbers(5) + print("Add result:", result_add) + print("Process value for -5:", process_value(-5)) + print("Sum of array [10, 20, 30]:", sum_array([10, 20, 30])) + print("Description for 2:", describe_number(2)) + print("Long description:\n", long_description()) + test_inner_class() + trigger_signal()