aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Streit2022-09-13 06:53:55 +0000
committerGitHub2022-09-13 06:53:55 +0000
commitffb41a94f040e251a3269e0d13417b16bef244c0 (patch)
treec85e69faf3a869ea5631c8ecf5af98087a9bc6dc
parent0d8ffa6b4ae8de827b24df9aaccc4a2e43465d58 (diff)
feat: Syntax highlighting for Astro files (#3829)
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml12
-rw-r--r--runtime/queries/astro/highlights.scm3
-rw-r--r--runtime/queries/astro/injections.scm9
4 files changed, 25 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 37ceec16..78362384 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -1,5 +1,6 @@
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default LSP |
| --- | --- | --- | --- | --- |
+| astro | ✓ | | | |
| awk | ✓ | ✓ | | `awk-language-server` |
| bash | ✓ | | | `bash-language-server` |
| beancount | ✓ | | | |
diff --git a/languages.toml b/languages.toml
index 83e4affd..5e563178 100644
--- a/languages.toml
+++ b/languages.toml
@@ -1754,3 +1754,15 @@ language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"]
[[grammar]]
name = "jsonnet"
source = { git = "https://github.com/sourcegraph/tree-sitter-jsonnet", rev = "0475a5017ad7dc84845d1d33187f2321abcb261d" }
+
+[[language]]
+name = "astro"
+scope = "source.astro"
+injection-regex = "astro"
+file-types = ["astro"]
+roots = []
+indent = { tab-width = 2, unit = " " }
+
+[[grammar]]
+name = "astro"
+source = { git = "https://github.com/virchau13/tree-sitter-astro", rev = "5f5c3e73c45967df9aa42f861fad2d77cd4e0900" }
diff --git a/runtime/queries/astro/highlights.scm b/runtime/queries/astro/highlights.scm
new file mode 100644
index 00000000..3d0792b8
--- /dev/null
+++ b/runtime/queries/astro/highlights.scm
@@ -0,0 +1,3 @@
+; inherits: html
+
+["---"] @punctuation.delimiter
diff --git a/runtime/queries/astro/injections.scm b/runtime/queries/astro/injections.scm
new file mode 100644
index 00000000..e3cff178
--- /dev/null
+++ b/runtime/queries/astro/injections.scm
@@ -0,0 +1,9 @@
+; inherits: html
+
+((frontmatter
+ (raw_text) @injection.content)
+ (#set! injection.language "typescript"))
+
+((interpolation
+ (raw_text) @injection.content)
+ (#set! injection.language "tsx"))