From d7c7589fd5d4dc307f37e23bdac1e5fec4ded4fc Mon Sep 17 00:00:00 2001
From: iko <mail@iko.soy>
Date: Mon, 12 Feb 2024 15:36:14 +0000
Subject: [PATCH] Add Hoon (#9190)

* Added Hoon

* Added highlights.scm

* Updated docs

* Update runtime/queries/hoon/highlights.scm

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
---
 book/src/generated/lang-support.md  |  1 +
 languages.toml                      | 12 +++++++++++
 runtime/queries/hoon/highlights.scm | 32 +++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+)
 create mode 100644 runtime/queries/hoon/highlights.scm

diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 9131ff58..bfe6d6b1 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -70,6 +70,7 @@
 | hcl | ✓ |  | ✓ | `terraform-ls` |
 | heex | ✓ | ✓ |  | `elixir-ls` |
 | hocon | ✓ |  | ✓ |  |
+| hoon | ✓ |  |  |  |
 | hosts | ✓ |  |  |  |
 | html | ✓ |  |  | `vscode-html-language-server` |
 | hurl | ✓ |  | ✓ |  |
diff --git a/languages.toml b/languages.toml
index 6fc81181..d7b8e0d9 100644
--- a/languages.toml
+++ b/languages.toml
@@ -3055,6 +3055,18 @@ file-types = ["log"]
 name = "log"
 source = { git = "https://github.com/Tudyx/tree-sitter-log", rev = "62cfe307e942af3417171243b599cc7deac5eab9" }
 
+[[language]]
+name = "hoon"
+scope = "source.hoon"
+injection-regex = "hoon"
+file-types = ["hoon"]
+comment-token = "::"
+indent = {tab-width = 2, unit = "  "}
+
+[[grammar]]
+name = "hoon"
+source = { git = "https://github.com/urbit-pilled/tree-sitter-hoon", rev = "1d5df35af3e0afe592832a67b9fb3feeeba1f7b6" }
+
 [[language]]
 name = "hocon"
 scope = "source.conf"
diff --git a/runtime/queries/hoon/highlights.scm b/runtime/queries/hoon/highlights.scm
new file mode 100644
index 00000000..91e6b854
--- /dev/null
+++ b/runtime/queries/hoon/highlights.scm
@@ -0,0 +1,32 @@
+(number) @constant.numeric
+
+(string) @string
+
+[
+  "("
+  ")"
+  "["
+  "]"
+]  @punctuation.bracket
+
+[
+  (coreTerminator)
+  (seriesTerminator)
+] @punctuation.delimiter
+
+
+(rune) @keyword
+
+(term) @constant
+
+(aura) @constant.builtin
+
+(Gap) @comment
+
+(boolean) @constant.builtin
+
+(date) @constant.builtin
+(mold) @constant.builtin
+(specialIndex) @constant.builtin
+(lark) @operator
+(fullContext) @constant.builtin