diff options
| author | Hank Jackson <hjackson277@gmail.com> | 2024-03-29 04:47:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-29 09:47:26 +0100 |
| commit | f84887230af1f7581e29ccd5d93f59d98058d565 (patch) | |
| tree | ebcf4b847af075a873324ae90e88d944fd34758f | |
| parent | bot(lockfile): update mlir, v, wing (diff) | |
| download | nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar.gz nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar.bz2 nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar.lz nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar.xz nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.tar.zst nvim-treesitter-f84887230af1f7581e29ccd5d93f59d98058d565.zip | |
feat(liquid): add new parser tree-sitter-liquid (#6359)
(templating language)
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/liquid/highlights.scm | 130 | ||||
| -rw-r--r-- | queries/liquid/injections.scm | 22 |
5 files changed, 164 insertions, 0 deletions
@@ -299,6 +299,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [ledger](https://github.com/cbarrete/tree-sitter-ledger) (maintained by @cbarrete) - [x] [leo](https://github.com/r001/tree-sitter-leo) (maintained by @r001) - [x] [linkerscript](https://github.com/amaanq/tree-sitter-linkerscript) (maintained by @amaanq) +- [x] [liquid](https://github.com/hankthetank27/tree-sitter-liquid) (maintained by @hankthetank27) - [x] [liquidsoap](https://github.com/savonet/tree-sitter-liquidsoap) (maintained by @toots) - [x] [llvm](https://github.com/benwilliamgraham/tree-sitter-llvm) (maintained by @benwilliamgraham) - [x] [lua](https://github.com/MunifTanjim/tree-sitter-lua) (maintained by @muniftanjim) diff --git a/lockfile.json b/lockfile.json index 3fd6cb5ac..4fbfd8abf 100644 --- a/lockfile.json +++ b/lockfile.json @@ -377,6 +377,9 @@ "linkerscript": { "revision": "f99011a3554213b654985a4b0a65b3b032ec4621" }, + "liquid": { + "revision": "06a18b68eaa5665c6eeef30e355878835e473d15" + }, "liquidsoap": { "revision": "09a9e31e2af734a8974dad6ed349648f601eee8c" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 756c5408e..70379f1dd 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1131,6 +1131,14 @@ list.linkerscript = { maintainers = { "@amaanq" }, } +list.liquid = { + install_info = { + url = "https://github.com/hankthetank27/tree-sitter-liquid", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@hankthetank27" }, +} + list.liquidsoap = { install_info = { url = "https://github.com/savonet/tree-sitter-liquidsoap", diff --git a/queries/liquid/highlights.scm b/queries/liquid/highlights.scm new file mode 100644 index 000000000..a1bf61169 --- /dev/null +++ b/queries/liquid/highlights.scm @@ -0,0 +1,130 @@ +((comment) @comment @spell + (#set! priority 110)) + +(raw_statement + (raw_content) @spell + (#set! priority 110)) + +((identifier) @variable + (#set! priority 110)) + +((string) @string + (#set! priority 110)) + +((boolean) @boolean + (#set! priority 110)) + +((number) @number + (#set! priority 110)) + +(filter + name: (identifier) @function.call + (#set! priority 110)) + +([ + "as" + "assign" + "capture" + "decrement" + "echo" + "endcapture" + "endform" + "endjavascript" + "endraw" + "endschema" + "endstyle" + "form" + "increment" + "javascript" + "layout" + "liquid" + "raw" + "schema" + "style" + "with" +] @keyword + (#set! priority 110)) + +([ + "case" + "else" + "elsif" + "endcase" + "endif" + "endunless" + "if" + "unless" + "when" +] @keyword.conditional + (#set! priority 110)) + +([ + "break" + "by" + "continue" + "cycle" + "endfor" + "endpaginate" + "endtablerow" + "for" + "paginate" + "tablerow" +] @keyword.repeat + (#set! priority 110)) + +([ + "and" + "contains" + "in" + "or" +] @keyword.operator + (#set! priority 110)) + +([ + "{{" + "}}" + "{{-" + "-}}" + "{%" + "%}" + "{%-" + "-%}" +] @tag.delimiter + (#set! priority 110)) + +[ + "include" + "render" + "section" + "sections" +] @keyword.import + +[ + "|" + ":" + "=" + "+" + "-" + "*" + "/" + "%" + "^" + "==" + "<" + "<=" + "!=" + ">=" + ">" +] @operator + +[ + "]" + "[" + ")" + "(" +] @punctuation.bracket + +[ + "," + "." +] @punctuation.delimiter diff --git a/queries/liquid/injections.scm b/queries/liquid/injections.scm new file mode 100644 index 000000000..fa7457659 --- /dev/null +++ b/queries/liquid/injections.scm @@ -0,0 +1,22 @@ +((template_content) @injection.content + (#set! injection.language "html") + (#set! injection.combined)) + +; TODO we can switch to quantifiers once neovim 0.10 becomes stable +(javascript_statement + (js_content) @injection.content + (#set! injection.language "javascript") + (#set! injection.combined)) + +(schema_statement + (json_content) @injection.content + (#set! injection.language "json") + (#set! injection.combined)) + +(style_statement + (style_content) @injection.content + (#set! injection.language "css") + (#set! injection.combined)) + +((comment) @injection.content + (#set! injection.language "comment")) |
