aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
m---------helix-syntax/languages/tree-sitter-tsq0
-rw-r--r--languages.toml8
-rw-r--r--runtime/queries/tsq/highlights.scm46
4 files changed, 58 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 95b3670b..a8e6481e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -126,3 +126,7 @@
path = helix-syntax/languages/tree-sitter-vue
url = https://github.com/ikatyang/tree-sitter-vue
shallow = true
+[submodule "helix-syntax/languages/tree-sitter-tsq"]
+ path = helix-syntax/languages/tree-sitter-tsq
+ url = https://github.com/tree-sitter/tree-sitter-tsq
+ shallow = true
diff --git a/helix-syntax/languages/tree-sitter-tsq b/helix-syntax/languages/tree-sitter-tsq
new file mode 160000
+Subproject b665659d3238e6036e22ed0e24935e60efb3941
diff --git a/languages.toml b/languages.toml
index 7715425b..60b996c0 100644
--- a/languages.toml
+++ b/languages.toml
@@ -328,3 +328,11 @@ language-server = { command = "swipl", args = [
"-g", "use_module(library(lsp_server))",
"-g", "lsp_server:main",
"-t", "halt", "--", "stdio"] }
+
+[[language]]
+name = "tsq"
+scope = "source.tsq"
+file-types = ["scm"]
+roots = []
+comment-token = ";"
+indent = { tab-width = 2, unit = " " }
diff --git a/runtime/queries/tsq/highlights.scm b/runtime/queries/tsq/highlights.scm
new file mode 100644
index 00000000..9ba5699a
--- /dev/null
+++ b/runtime/queries/tsq/highlights.scm
@@ -0,0 +1,46 @@
+; mark the string passed #match? as a regex
+(((predicate_name) @function
+ (capture)
+ (string) @string.regexp)
+ (#eq? @function "#match?"))
+
+; highlight inheritance comments
+((query . (comment) @keyword.directive)
+ (#match? @keyword.directive "^;\ +inherits *:"))
+
+[
+ "("
+ ")"
+ "["
+ "]"
+] @punctuation.bracket
+
+":" @punctuation.delimiter
+
+[
+ (one_or_more)
+ (zero_or_one)
+ (zero_or_more)
+] @operator
+
+[
+ (wildcard_node)
+ (anchor)
+] @constant.builtin
+
+[
+ (anonymous_leaf)
+ (string)
+] @string
+
+(comment) @comment
+
+(field_name) @property
+
+(capture) @label
+
+(predicate_name) @function
+
+(escape_sequence) @escape
+
+(node_name) @variable