# MakeupCel
A [Makeup](https://hex.pm/packages/makeup) lexer for Google's
[Common Expression Language (CEL)](https://cel.dev/).
Provides syntax highlighting for CEL expressions in ExDoc, Livebook,
and any tool that uses the Makeup highlighting pipeline.
## Installation
Add `makeup_cel` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:makeup_cel, "~> 0.1.0"}
]
end
```
## Usage
### ExDoc
CEL code blocks are highlighted automatically once the dependency is added:
````markdown
```cel
request.auth.claims.email.endsWith("@example.com")
```
````
### Standalone
```elixir
Makeup.highlight("x > 10 ? 'big' : 'small'", lexer: Makeup.Lexers.CelLexer)
```
## Supported syntax
Covers the full CEL lexical spec:
- Keywords: `true`, `false`, `null`, `in`
- Reserved words: `as`, `break`, `const`, `continue`, `else`, `for`, `function`, `if`, `import`, `let`, `loop`, `package`, `namespace`, `return`, `var`, `void`, `while`
- Literals: integers, unsigned integers, hex integers, floats, strings (single/double/triple-quoted), raw strings, bytes literals
- Operators: `+`, `-`, `*`, `/`, `%`, `<`, `<=`, `>=`, `>`, `==`, `!=`, `&&`, `||`, `!`
- Comments: `// single-line`
- Builtin functions and type names
## License
Apache-2.0 — see [LICENSE](LICENSE).