# libtmux.query:compile-filter

- **Package:** libtmux/query
- **Language:** Common Lisp
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-lisp/blob/c2e5fc4ed3befda21f45dfa5d5868c38fd138311/src/query.lisp#L534
- **Public owner:** libtmux.query
- **Page:** https://libtmux.org/en/lisp/latest/reference/libtmux-query-compile-filter/

```
(compile-filter model form &key (max-depth +default-max-depth+) (max-input-visits +default-max-input-visits+) (max-membership +default-max-membership+) (max-string-length +default-max-string-length+) (max-retained-characters +default-max-retained-characters+) (max-execution-visits +default-max-execution-visits+))
```

Compile FORM for captured MODEL into an owned local filter.
Scalar and registered relation operators perform no I/O and never evaluate
FORM as Lisp code. Regex operators require the optional regex system.
Keyword limits bound container depth, input visits, membership size, copied
character counts and later predicate execution. Limit failures signal
QUERY-LIMIT-EXCEEDED; malformed or mistyped forms signal INVALID-FILTER.

## Parameters

- `model`
- `form`
- `max-depth?`
- `max-input-visits?`
- `max-membership?`
- `max-string-length?`
- `max-retained-characters?`
- `max-execution-visits?`

## Guides

Pages that discuss `compile-filter`.

- [Native queries](/en/lisp/latest/guides/queries/)
