From fb514ca90fb8ead3b6483774aaa317e1e63b7a47 Mon Sep 17 00:00:00 2001
From: Chad Skeeters <chad.skeeters@gmail.com>
Date: Tue, 20 May 2025 14:43:21 -0500
Subject: [PATCH] Adds Typst syntax from hyrious/typst-syntax-highlight
---
.gitmodules | 3 ++
.../syntaxes/02_Extra/typst-syntax-highlight | 1 +
tests/syntax-tests/highlighted/Typst/test.typ | 28 +++++++++++++++++++
tests/syntax-tests/source/Typst/test.typ | 28 +++++++++++++++++++
4 files changed, 60 insertions(+)
create mode 160000 assets/syntaxes/02_Extra/typst-syntax-highlight
create mode 100644 tests/syntax-tests/highlighted/Typst/test.typ
create mode 100644 tests/syntax-tests/source/Typst/test.typ
diff --git a/.gitmodules b/.gitmodules
index 1eae9184..697b2500 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -269,3 +269,6 @@
[submodule "assets/syntaxes/02_Extra/sublime-odin"]
path = assets/syntaxes/02_Extra/sublime-odin
url = https://github.com/odin-lang/sublime-odin
+[submodule "assets/syntaxes/02_Extra/typst-syntax-highlight"]
+ path = assets/syntaxes/02_Extra/typst-syntax-highlight
+ url = https://github.com/hyrious/typst-syntax-highlight
diff --git a/assets/syntaxes/02_Extra/typst-syntax-highlight b/assets/syntaxes/02_Extra/typst-syntax-highlight
new file mode 160000
index 00000000..1bde1ea5
--- /dev/null
+++ b/assets/syntaxes/02_Extra/typst-syntax-highlight
@@ -0,0 +1 @@
+Subproject commit 1bde1ea511d86c622a0fd27d9e0db3e047d4094f
diff --git a/tests/syntax-tests/highlighted/Typst/test.typ b/tests/syntax-tests/highlighted/Typst/test.typ
new file mode 100644
index 00000000..c14a24fe
--- /dev/null
+++ b/tests/syntax-tests/highlighted/Typst/test.typ
@@ -0,0 +1,28 @@
+[38;2;249;38;114m#[0m[38;2;249;38;114mset[0m[38;2;248;248;242m [0m[38;2;102;217;239mtext[0m[38;2;248;248;242m([0m[38;2;190;132;255m9[0m[38;2;190;132;255m.[0m[38;2;190;132;255m5[0m[38;2;190;132;255mpt[0m[38;2;248;248;242m)[0m
+
+[38;2;253;151;31m=[0m[38;2;253;151;31m [0m[38;2;253;151;31mHeading[0m
+
+[38;2;248;248;242m-[0m[38;2;248;248;242m [0m[38;2;248;248;242mBullet 1[0m
+[38;2;248;248;242m-[0m[38;2;248;248;242m [0m[38;2;248;248;242mBullet 2[0m
+[38;2;248;248;242m-[0m[38;2;248;248;242m [0m[38;2;248;248;242mBullet 3[0m
+
+[38;2;248;248;242m+[0m[38;2;248;248;242m [0m[38;2;248;248;242mList 1[0m
+[38;2;248;248;242m+[0m[38;2;248;248;242m [0m[38;2;248;248;242mList 2[0m
+[38;2;248;248;242m+[0m[38;2;248;248;242m [0m[38;2;248;248;242mList 3[0m
+
+[38;2;248;248;242m#[0m[38;2;248;248;242mfigure[0m[38;2;248;248;242m([0m
+[38;2;248;248;242m [0m[38;2;102;217;239mtable[0m[38;2;248;248;242m([0m
+[38;2;248;248;242m [0m[3;38;2;253;151;31mcolumns[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;190;132;255mauto[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mauto[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m table[0m[38;2;248;248;242m.[0m[38;2;102;217;239mheader[0m[38;2;248;248;242m([0m
+[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242mName[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242mAge[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242mJohn[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242m50[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242mJane[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242m48[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m [0m[3;38;2;253;151;31mcaption[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m[[0m[38;2;248;248;242mPeople[0m[38;2;248;248;242m][0m[38;2;248;248;242m,[0m
+[38;2;248;248;242m)[0m
+
+[38;2;248;248;242m```[0m[38;2;190;132;255mpython[0m
+[38;2;174;129;255mdev[0m[38;2;174;129;255m [0m[38;2;174;129;255mfoo[0m[38;2;174;129;255m([0m[38;2;174;129;255m)[0m[38;2;174;129;255m:[0m
+[38;2;174;129;255m [0m[38;2;102;217;239mprint[0m[38;2;174;129;255m([0m[38;2;230;219;116m"[0m[38;2;230;219;116mhi[0m[38;2;230;219;116m"[0m[38;2;174;129;255m)[0m
+[38;2;248;248;242m```[0m
diff --git a/tests/syntax-tests/source/Typst/test.typ b/tests/syntax-tests/source/Typst/test.typ
new file mode 100644
index 00000000..395258f7
--- /dev/null
+++ b/tests/syntax-tests/source/Typst/test.typ
@@ -0,0 +1,28 @@
+#set text(9.5pt)
+
+= Heading
+
+- Bullet 1
+- Bullet 2
+- Bullet 3
+
++ List 1
++ List 2
++ List 3
+
+#figure(
+ table(
+ columns: (auto, auto),
+ table.header(
+ [Name], [Age],
+ ),
+ [John], [50],
+ [Jane], [48],
+ ),
+ caption: [People],
+)
+
+```python
+dev foo():
+ print("hi")
+```