diff --git a/README.md b/README.md index cb9c1e5dc..e8a9d3404 100644 --- a/README.md +++ b/README.md @@ -386,6 +386,7 @@ We are looking for maintainers to add more parsers and to write query files for - [ ] [racket](https://github.com/6cdh/tree-sitter-racket) - [x] [ralph](https://github.com/alephium/tree-sitter-ralph) (maintained by @tdroxler) - [x] [rasi](https://github.com/Fymyte/tree-sitter-rasi) (maintained by @Fymyte) +- [x] [razor](https://github.com/tris203/tree-sitter-razor) (maintained by @tris203) - [x] [rbs](https://github.com/joker1007/tree-sitter-rbs) (maintained by @joker1007) - [x] [re2c](https://github.com/amaanq/tree-sitter-re2c) (maintained by @amaanq) - [x] [readline](https://github.com/ribru17/tree-sitter-readline) (maintained by @ribru17) diff --git a/lockfile.json b/lockfile.json index f95804e77..abad98ee1 100644 --- a/lockfile.json +++ b/lockfile.json @@ -638,6 +638,9 @@ "rasi": { "revision": "6c9bbcfdf5f0f553d9ebc01750a3aa247a37b8aa" }, + "razor": { + "revision": "a47cd8ca148685629739a4ab69f58864800fbdab" + }, "rbs": { "revision": "de893b166476205b09e79cd3689f95831269579a" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ca2fb11b0..986f2a972 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1861,6 +1861,14 @@ list.rasi = { maintainers = { "@Fymyte" }, } +list.razor = { + install_info = { + url = "https://github.com/tris203/tree-sitter-razor", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@tris203" }, +} + list.rbs = { install_info = { url = "https://github.com/joker1007/tree-sitter-rbs", diff --git a/queries/razor/folds.scm b/queries/razor/folds.scm new file mode 100644 index 000000000..f026cb8ec --- /dev/null +++ b/queries/razor/folds.scm @@ -0,0 +1,14 @@ +[ + (razor_if) + (razor_switch) + (razor_for) + (razor_foreach) + (razor_while) + (razor_do_while) + (razor_try) + (razor_catch) + (razor_finally) + (razor_compound_using) + (razor_section) + (razor_block) +] @fold diff --git a/queries/razor/highlights.scm b/queries/razor/highlights.scm new file mode 100644 index 000000000..2050bde9c --- /dev/null +++ b/queries/razor/highlights.scm @@ -0,0 +1,58 @@ +; inherits: c_sharp + +[ + (razor_comment) + (html_comment) +] @comment @spell + +[ + "at_page" + "at_using" + "at_model" + "at_rendermode" + "at_inject" + "at_implements" + "at_layout" + "at_inherits" + "at_attribute" + "at_typeparam" + "at_namespace" + "at_preservewhitespace" + "at_block" + "at_at_escape" + "at_colon_transition" +] @constant.macro + +[ + "at_lock" + "at_section" +] @keyword + +[ + "at_if" + "at_switch" +] @keyword.conditional + +[ + "at_for" + "at_foreach" + "at_while" + "at_do" +] @keyword.repeat + +[ + "at_try" + "catch" + "finally" +] @keyword.exception + +[ + "at_implicit" + "at_explicit" +] @variable + +"at_await" @keyword.coroutine + +(razor_rendermode) @property + +(razor_attribute_name) @function diff --git a/queries/razor/injections.scm b/queries/razor/injections.scm new file mode 100644 index 000000000..fe28d8611 --- /dev/null +++ b/queries/razor/injections.scm @@ -0,0 +1,11 @@ +; inherits: c_sharp + +([ + (html_comment) + (razor_comment) +] @comment + (#set! injection.language "comment")) + +((element) @injection.content + (#set! injection.language "html") + (#set! injection.combined))