diff --git a/README.md b/README.md index 480e243b3..15b97fb34 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [apex](https://github.com/aheber/tree-sitter-sfapex) (maintained by @aheber) - [x] [arduino](https://github.com/ObserverOfTime/tree-sitter-arduino) (maintained by @ObserverOfTime) - [x] [astro](https://github.com/virchau13/tree-sitter-astro) (maintained by @virchau13) +- [x] [authzed](https://github.com/mleonidas/tree-sitter-authzed) (maintained by @mattpolzin) - [ ] [awk](https://github.com/Beaglefoot/tree-sitter-awk) - [x] [bash](https://github.com/tree-sitter/tree-sitter-bash) (maintained by @TravonteD) - [x] [bass](https://github.com/amaanq/tree-sitter-bass) (maintained by @amaanq) diff --git a/lockfile.json b/lockfile.json index 72c9a3cfa..b05825591 100644 --- a/lockfile.json +++ b/lockfile.json @@ -14,6 +14,9 @@ "astro": { "revision": "e122a8fcd07e808a7b873bfadc2667834067daf1" }, + "authzed": { + "revision": "1dec7e1af96c56924e3322cd85fdce15d0a31d00" + }, "awk": { "revision": "374da90decaa60fea7a22490a77440ece6d4161d" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 26a2bf8f5..d8dfb7124 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -117,6 +117,14 @@ list.astro = { maintainers = { "@virchau13" }, } +list.authzed = { + install_info = { + url = "https://github.com/mleonidas/tree-sitter-authzed", + files = { "src/parser.c" }, + }, + maintainers = { "@mattpolzin" }, +} + list.awk = { install_info = { url = "https://github.com/Beaglefoot/tree-sitter-awk", diff --git a/queries/authzed/highlights.scm b/queries/authzed/highlights.scm new file mode 100644 index 000000000..7a4b85d1f --- /dev/null +++ b/queries/authzed/highlights.scm @@ -0,0 +1,58 @@ +(identifier) @function + +(block + (relation + (relation_literal) @function.builtin + (identifier) @constant)) + +(block + (permission + (permission_literal) @variable.builtin + (identifier) @type)) + +; relations +(rel_expression (identifier) @property) + +(relation + (rel_expression + (hash_literal) + . + (identifier) @constant)) + +; permissions +(perm_expression (identifier) @property) + +(call_expression + function: (selector_expression + operand: (identifier) @constant + field: (field_identifier) @function.method)) + +(perm_expression + (stabby) @operator + . + (identifier) @function) + +; misc +[ + (plus_literal) + (minus_literal) + (amp_literal) + (pipe_literal) +] @operator + +[ + (true) + (false) +] @boolean + +(nil) @constant.builtin + +[ + (caveat_literal) + (definition_literal) +] @keyword + +[ + (hash_literal) + (comment) +] @comment diff --git a/queries/authzed/injections.scm b/queries/authzed/injections.scm new file mode 100644 index 000000000..321c90add --- /dev/null +++ b/queries/authzed/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment"))