diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 00d17a49a..4b2842678 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 000000000..795c32fc4 --- /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 000000000..f2f0b453f --- /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 000000000..9f97a018c --- /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 000000000..2e16b0d1b --- /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)") +)