diff --git a/.gitmodules b/.gitmodules index fe3df9a2..c582187c 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/sublime-odin"] + path = assets/syntaxes/02_Extra/sublime-odin + url = https://github.com/odin-lang/sublime-odin 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/sublime-odin b/assets/syntaxes/02_Extra/sublime-odin new file mode 160000 index 00000000..5d6a0ed4 --- /dev/null +++ b/assets/syntaxes/02_Extra/sublime-odin @@ -0,0 +1 @@ +Subproject commit 5d6a0ed41e41ec3709ec74f40686dc3761d6596e diff --git a/tests/syntax-tests/highlighted/Odin/test.odin b/tests/syntax-tests/highlighted/Odin/test.odin new file mode 100644 index 00000000..ab13ed8c --- /dev/null +++ b/tests/syntax-tests/highlighted/Odin/test.odin @@ -0,0 +1,27 @@ +package main + +import "core:fmt" +import "core:math" + +Vector :: struct { + components: []f64, +} + +euclidean_distance :: proc(v1: Vector, v2: Vector) -> f64 { + if len(v1.components) != len(v2.components) { + panic("Vectors must be same dimension") + } + sum: f64 = 0.0; + for i, comp in v1.components { + diff := comp - v2.components[i]; + sum += diff * diff; + } + return math.sqrt(sum); +} + +main :: proc() { + v1: Vector = Vector{components = []f64{1.0, 2.0, 3.0}}; + v2: Vector = Vector{components = []f64{4.0, 6.0, 8.0}}; + dist: f64 = euclidean_distance(v1, v2); + fmt.println("Distance:", dist); +} diff --git a/tests/syntax-tests/source/Odin/test.odin b/tests/syntax-tests/source/Odin/test.odin new file mode 100644 index 00000000..dafcfcfd --- /dev/null +++ b/tests/syntax-tests/source/Odin/test.odin @@ -0,0 +1,27 @@ +package main + +import "core:fmt" +import "core:math" + +Vector :: struct { + components: []f64, +} + +euclidean_distance :: proc(v1: Vector, v2: Vector) -> f64 { + if len(v1.components) != len(v2.components) { + panic("Vectors must be same dimension") + } + sum: f64 = 0.0; + for i, comp in v1.components { + diff := comp - v2.components[i]; + sum += diff * diff; + } + return math.sqrt(sum); +} + +main :: proc() { + v1: Vector = Vector{components = []f64{1.0, 2.0, 3.0}}; + v2: Vector = Vector{components = []f64{4.0, 6.0, 8.0}}; + dist: f64 = euclidean_distance(v1, v2); + fmt.println("Distance:", dist); +}