This commit is contained in:
Stefan VanBuren 2026-04-03 12:47:07 +02:00 committed by GitHub
commit 54cbebc6e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 143 additions and 0 deletions

View file

@ -36,6 +36,7 @@ Language | Tier | Queries | Maintainer
[caddy](https://github.com/opa-oz/tree-sitter-caddy) | unmaintained | `HFIJ ` |
[cairo](https://github.com/tree-sitter-grammars/tree-sitter-cairo) | unstable | `HFIJL` | @amaanq
[capnp](https://github.com/tree-sitter-grammars/tree-sitter-capnp) | unstable | `HFIJL` | @amaanq
[cel](https://github.com/bufbuild/tree-sitter-cel) | unstable | `HFIJL` | @stefanvanburen
[chatito](https://github.com/tree-sitter-grammars/tree-sitter-chatito) | unstable | `HFIJL` | @ObserverOfTime
[circom](https://github.com/Decurity/tree-sitter-circom) | unstable | `HF JL` | @alexandr-martirosyan
[clojure](https://github.com/sogaiu/tree-sitter-clojure) | unstable | `HF JL` | @NoahTheDuke

View file

@ -267,6 +267,14 @@ return {
maintainers = { '@jakestanger' },
tier = 2,
},
cel = {
install_info = {
revision = 'e0b695e6c318babff09de7e66e0de0adaab7b8ad',
url = 'https://github.com/bufbuild/tree-sitter-cel',
},
maintainers = { '@stefanvanburen' },
tier = 2,
},
cpon = {
install_info = {
revision = '594289eadfec719198e560f9d7fd243c4db678d5',

View file

@ -0,0 +1,10 @@
; Code folding queries for CEL (Common Expression Language).
; Marks collection literals as foldable regions.
; Fold map expressions
(map_expression) @fold
; Fold list expressions
(list_expression) @fold
; Fold struct expressions
(struct_expression) @fold

View file

@ -0,0 +1,95 @@
; Syntax highlighting queries for CEL (Common Expression Language).
; Maps CEL grammar nodes to standard tree-sitter highlight capture names.
; Operators
[
"-"
"!"
"*"
"/"
"&&"
"%"
"+"
"<"
"<="
"!="
"=="
">"
">="
"||"
] @operator
; Ternary operator
"?" @operator
(conditional_expression
":" @operator)
(map_entry
":" @punctuation.delimiter)
(field_initializer
":" @punctuation.delimiter)
; Punctuation
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
"," @punctuation.delimiter
"." @punctuation.delimiter
; Keywords
"in" @keyword.operator
(reserved_keyword) @keyword
; Function calls
(call_expression
function: (identifier) @function.call)
(absolute_expression
name: (identifier) @function.call
arguments: (arguments))
(member_call_expression
function: [
(identifier)
(reserved_keyword)
] @function.method.call)
; Member access
(select_expression
member: [
(identifier)
(reserved_keyword)
] @variable.member)
; Variables
(identifier) @variable
; Literals
[
(string_literal)
(bytes_literal)
] @string
[
(int_literal)
(uint_literal)
] @number
(float_literal) @number.float
[
(true)
(false)
(null)
] @constant.builtin
(comment) @comment @spell

View file

@ -0,0 +1,16 @@
; Indentation queries for CEL (Common Expression Language).
; Marks nodes that should increase or decrease indentation level.
; Indent after opening delimiters of collection literals and function arguments
[
(map_expression)
(list_expression)
(struct_expression)
(arguments)
] @indent.begin
; Dedent before closing delimiters
[
"}"
"]"
")"
] @indent.dedent

View file

@ -0,0 +1,4 @@
; Inject the "comment" language into comments to enable highlighting of
; TODO, FIXME, etc. markers within CEL comment text.
((comment) @injection.content
(#set! injection.language "comment"))

View file

@ -0,0 +1,9 @@
; CEL is a pure expression language — variables are provided by the evaluation
; environment rather than declared in the expression itself. We mark the root
; expression as a scope and all identifiers as references so that editors can
; apply local-variable highlighting and scope-aware navigation.
; Scopes
(expr) @local.scope
; References
(identifier) @local.reference