From af8409931b7191d2145c18288f8a84e7fa25de6c Mon Sep 17 00:00:00 2001 From: Edmondo Porcu Date: Fri, 19 Sep 2025 14:56:22 -0400 Subject: [PATCH] Adding cedars policy language with queries --- lua/nvim-treesitter/parsers.lua | 10 +++++++ queries/cedar/folds.scm | 6 ++++ queries/cedar/highlights.scm | 51 +++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 queries/cedar/folds.scm create mode 100644 queries/cedar/highlights.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 31b691209..a53cb41d4 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -265,6 +265,16 @@ list.capnp = { maintainers = { "@amaanq" }, } +list.cedar = { + install_info = { + url = "https://github.com/chrnorm/tree-sitter-cedar", + branch = "main", + files = { "src/parser.c" }, + }, + filetype = "cedar", + maintainers = { "@edmondop" }, +} + list.chatito = { install_info = { url = "https://github.com/ObserverOfTime/tree-sitter-chatito", diff --git a/queries/cedar/folds.scm b/queries/cedar/folds.scm new file mode 100644 index 000000000..b2f77ffbe --- /dev/null +++ b/queries/cedar/folds.scm @@ -0,0 +1,6 @@ +[ + (policy) + (record_literal) + (set_literal) + (condition) +] @fold diff --git a/queries/cedar/highlights.scm b/queries/cedar/highlights.scm new file mode 100644 index 000000000..4ca36fe18 --- /dev/null +++ b/queries/cedar/highlights.scm @@ -0,0 +1,51 @@ + +; Main policy structure +(policy) @keyword +(effect) @keyword +(scope) @keyword + +; Expressions +(binary_expression) @operator +(unary_expression) @operator +(call_expression) @function.call +(ext_fun_call) @function.call +(selector_expression) @property +(has_expression) @operator +(like_expression) @operator +(contains_expression) @operator +(contains_all_expression) @operator +(is_expression) @operator + +; Literals +(record_literal) @punctuation.bracket +(set_literal) @punctuation.bracket +(entity) @constant + +; Conditions +(condition) @keyword + +; Annotations +(annotation) @attribute + +; Constraints +(principal_constraint) @variable.builtin +(action_constraint) @variable.builtin +(resource_constraint) @variable.builtin + +; Basic punctuation +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +[ + "," + ";" + "." + "::" + "@" +] @punctuation.delimiter