diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-11-24 10:25:47 +0100 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2023-11-26 15:24:26 +0100 |
| commit | 1e74c34b668d0bbdd14492fc220974e4fc38dc6b (patch) | |
| tree | 849c90e2e8115a58180a29089655058a92d8fe03 | |
| parent | twig queries: add combined injections (#5721) (diff) | |
| download | nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar.gz nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar.bz2 nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar.lz nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar.xz nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.tar.zst nvim-treesitter-1e74c34b668d0bbdd14492fc220974e4fc38dc6b.zip | |
feat: add angular parser and queries
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/angular/highlights.scm | 67 | ||||
| -rw-r--r-- | queries/html_tags/injections.scm | 21 |
4 files changed, 99 insertions, 0 deletions
diff --git a/lockfile.json b/lockfile.json index 903bbf405..01d9ad274 100644 --- a/lockfile.json +++ b/lockfile.json @@ -5,6 +5,9 @@ "agda": { "revision": "c21c3a0f996363ed17b8ac99d827fe5a4821f217" }, + "angular": { + "revision": "624ff108fe949727217cddb302f20e4f16997b1c" + }, "apex": { "revision": "82ee140f4ee7652a4915ac9e9f60c4d66f7637d7" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index b012d514a..0c83e58f0 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -93,6 +93,14 @@ list.agda = { maintainers = { "@Decodetalkers" }, } +list.angular = { + install_info = { + url = "https://github.com/steelsojka/tree-sitter-angular", + files = { "src/parser.c" }, + }, + maintainers = {"@steelsojka"} +} + list.apex = { install_info = { url = "https://github.com/aheber/tree-sitter-sfapex", diff --git a/queries/angular/highlights.scm b/queries/angular/highlights.scm new file mode 100644 index 000000000..98c6f76e9 --- /dev/null +++ b/queries/angular/highlights.scm @@ -0,0 +1,67 @@ +(identifier) @variable +(pipe_sequence "|" @operator) +(string) @string +(number) @number +(pipe_call + name: (identifier) @function) +(pipe_call + arguments: (pipe_arguments + (identifier) @parameter)) + +(structural_assignment + operator: (identifier) @keyword) + +(member_expression + property: (identifier) @property) + +(call_expression + function: (identifier) @function) + +(call_expression + function: ((identifier) @function.builtin + (#eq? @function.builtin "$any"))) + +[ +"let" +"as" +] @keyword + +[ +"(" +")" +"[" +"]" +"{" +"}" +] @punctuation.bracket + +[ +";" +"." +"," +"?." +] @punctuation.delimiter + +((identifier) @boolean + (#vim-match? @boolean "^(true|false)$")) +((identifier) @variable.builtin + (#vim-match? @variable.builtin "^(this|\$event|null)$")) + +[ + "-" + "&&" + "+" + "<" + "<=" + "=" + "==" + "===" + "!=" + "!==" + ">" + ">=" + "*" + "/" + "||" + "%" +] @operator diff --git a/queries/html_tags/injections.scm b/queries/html_tags/injections.scm index 563e7453d..cef63ad8d 100644 --- a/queries/html_tags/injections.scm +++ b/queries/html_tags/injections.scm @@ -74,3 +74,24 @@ (#lua-match? @_name "^on[a-z]+$") (quoted_attribute_value (attribute_value) @injection.content) (#set! injection.language "javascript")) + +(attribute + ((attribute_name) @_name + (#lua-match? @_name "[%[%(].*[%)%]]")) + (quoted_attribute_value + (attribute_value) @injection.content) + (#set! injection.language "angular")) + +(attribute + ((attribute_name) @_name + (#lua-match? @_name "^%*")) + (quoted_attribute_value + ((attribute_value) @injection.content)) + (#set! injection.language "angular")) + +(element + ((text) @injection.content + (#lua-match? @injection.content "%{%{.*%}%}") + (#offset! @injection.content 0 2 0 -2)) + (#set! injection.language "angular")) + |
