summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelianiva <dicha.arkana03@gmail.com>2021-02-05 13:45:26 +0700
committerStephan Seitz <stephan.lauf@yahoo.de>2021-02-23 16:27:16 +0100
commita73e200abf609663975c808f68d08a05d96e3b61 (patch)
tree2769a51db02e026b726f9fc83a8c143e8d039690
parent2d82a7fe07f3e4959219e231a58e0707d577262e (diff)
feat: add support for svelte
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/svelte/folds.scm9
-rw-r--r--queries/svelte/highlights.scm29
-rw-r--r--queries/svelte/indents.scm16
-rw-r--r--queries/svelte/injections.scm16
5 files changed, 79 insertions, 0 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 00d17a49..4b284267 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -446,6 +446,15 @@ list.devicetree = {
maintainers = { "@jedrzejboczar" },
}
+list.svelte = {
+ install_info = {
+ url = "https://github.com/Himujjal/tree-sitter-svelte",
+ files = { "src/parser.c", "src/scanner.cc" },
+ branch = "master",
+ },
+ maintainers = { "@elianiva" },
+}
+
local M = {
list = list
}
diff --git a/queries/svelte/folds.scm b/queries/svelte/folds.scm
new file mode 100644
index 00000000..795c32fc
--- /dev/null
+++ b/queries/svelte/folds.scm
@@ -0,0 +1,9 @@
+[
+ (style_element)
+ (script_element)
+ (element)
+ (if_statement)
+ (else_statement)
+ (each_statement)
+ (await_statement)
+] @fold
diff --git a/queries/svelte/highlights.scm b/queries/svelte/highlights.scm
new file mode 100644
index 00000000..f2f0b453
--- /dev/null
+++ b/queries/svelte/highlights.scm
@@ -0,0 +1,29 @@
+(tag_name) @tag
+(attribute_name) @property
+(attribute_value) @string
+(quoted_attribute_value) @string
+(comment) @comment
+
+[
+ (special_block_keyword)
+ (then)
+ (as)
+] @keyword
+
+[
+ "{"
+ "}"
+] @punctuation.bracket
+
+"=" @operator
+
+[
+ "<"
+ ">"
+ "</"
+ "/>"
+ "#"
+ ":"
+ "/"
+ "@"
+] @tag.delimiter
diff --git a/queries/svelte/indents.scm b/queries/svelte/indents.scm
new file mode 100644
index 00000000..9f97a018
--- /dev/null
+++ b/queries/svelte/indents.scm
@@ -0,0 +1,16 @@
+[
+ (element)
+ (if_statement)
+ (each_statement)
+ (await_statement)
+] @indent
+
+[
+ (end_tag)
+ (else_statement)
+ (if_end_expr)
+ (each_end_expr)
+ (await_end_expr)
+ ">"
+ "/>"
+] @branch
diff --git a/queries/svelte/injections.scm b/queries/svelte/injections.scm
new file mode 100644
index 00000000..2e16b0d1
--- /dev/null
+++ b/queries/svelte/injections.scm
@@ -0,0 +1,16 @@
+((style_element
+ (raw_text) @css))
+
+((script_element
+ (raw_text) @javascript))
+
+((raw_text_expr) @javascript)
+
+(
+ (script_element
+ (start_tag
+ (attribute
+ (quoted_attribute_value (attribute_value) @_lang)))
+ (raw_text) @typescript)
+ (#match? @_lang "(ts|typescript)")
+)