README.md

# 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).