aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Davis2021-10-16 08:58:04 +0000
committerGitHub2021-10-16 08:58:04 +0000
commite069fb9dea0d41eedb9257050f2231b7b0b88d0e (patch)
tree15eaaec8b93a8eab941fa9515c851e3562287a06
parent43465926be77e6890203fe6a4942f674bfb2a8f4 (diff)
Add highlight support for tree-sitter-query language (tsq) (#845)
* add submodule on tree-sitter/tree-sitter-tsq mark tsq submodule as shallow * add tree-sitter-tsq to languages * add highlight queries for tsq * Update .gitmodules Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
-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