watch
Incrementally recompile Calor sources when files or effect manifests change
calor watch <files-or-directories...> [options]
Directories are scanned recursively for .calr files. bin, obj, and
reference directories are excluded. New, deleted, and renamed files are
re-enumerated on every rebuild, and effect-manifest changes invalidate the
cache.
calor watch src/
calor watch a.calr b.calr --verbose
calor watch src/ --format json
| Option | Description |
|---|---|
--format, -f | text or NDJSON json |
--debounce-ms | Quiet period before rebuilding; default 200 ms |
--no-cache | Recompile all files on every change |
--clear-cache | Remove build state before the initial compile |
--verbose, -v | Show compiled and cache-hit files |
--strict-api | Require breaking-change markers for public API changes |
--require-docs | Require documentation on public functions and types |
--no-enforce-effects | Opt out of default-on effect enforcement |
--strict-effects | Promote the "I cannot tell" effect warnings — Calor0411, Calor0419, Calor0425 — to errors |
--permissive-effects | Assume a call the compiler cannot look up does nothing: Calor0411 and Calor0425 go unreported and Calor0410 becomes a warning (details) |
--contract-mode | off, debug, or release |
The cache validates source bytes, generated-output hashes, compiler options,
and effect summaries. Diagnostic-bearing files are not cached, so their
messages reappear. Since 0.16, a file whose generated C# could not be checked
because a different file failed is not cached either, and no .g.cs is
written for it — see
When One File Fails. Watch is
compile-only; it has no --run mode.
JSON mode emits one schema 2.0 envelope per line, including clean and failed rebuilds. See Structured Output.