diff options
| author | elianiva <dicha.arkana03@gmail.com> | 2021-02-05 13:45:26 +0700 |
|---|---|---|
| committer | Stephan Seitz <stephan.lauf@yahoo.de> | 2021-02-23 16:27:16 +0100 |
| commit | a73e200abf609663975c808f68d08a05d96e3b61 (patch) | |
| tree | 2769a51db02e026b726f9fc83a8c143e8d039690 | |
| parent | 2d82a7fe07f3e4959219e231a58e0707d577262e (diff) | |
feat: add support for svelte
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 9 | ||||
| -rw-r--r-- | queries/svelte/folds.scm | 9 | ||||
| -rw-r--r-- | queries/svelte/highlights.scm | 29 | ||||
| -rw-r--r-- | queries/svelte/indents.scm | 16 | ||||
| -rw-r--r-- | queries/svelte/injections.scm | 16 |
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)") +) |
