bacon - Cheatsheet del Verificatore di Codice Rust in Background
bacon è un verificatore di codice in background per Rust. Lo esegui una volta in un terminale laterale e osserva i tuoi file sorgente, rieseguendo cargo check, clippy o i tuoi test a ogni salvataggio e mostrando un compatto, sempre aggiornato riepilogo di errori e avvertimenti. L”obiettivo di progettazione è che tu non digiti mai più cargo check e non scorra mai muri di output — bacon mostra il primo errore in modo prominente e si aggiorna sul posto mentre correggi le cose.
Installation
| Method | Command |
|---|
| Cargo | cargo install --locked bacon |
| macOS (Homebrew) | brew install bacon |
| Arch Linux | pacman -S bacon |
| Verify | bacon --version |
Running
| Command | Description |
|---|
bacon | Job predefinito (di solito check) |
bacon clippy | Esegui clippy sui cambiamenti |
bacon test | Esegui test sui cambiamenti |
bacon check-all | Controlla tutti i target/le funzionalità |
bacon doc | Costruisci i doc |
bacon --job clippy-all | Named job |
bacon -- --features x | Passa argomenti di cargo extra |
Keyboard Controls
| Key | Action |
|---|
c | Passa a check |
l | Passa a clippy |
t | Passa a test |
d | Costruisci i doc |
esc | Torna al job precedente |
q / Ctrl+C | Esci |
space | Riesegui ora |
s | Attiva/disattiva la modalità di riepilogo (elenco compatto) |
w | Attiva/disattiva l”accaparramento |
g/G | Scorri in alto/in basso |
p | Attiva/disattiva la pausa sui cambiamenti |
Summary Mode
La modalità di riepilogo comprime l”output in una riga per problema — ideale per un riquadro laterale stretto.
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
Premi s per attivare/disattivare; premi enter su una voce per espandere la diagnostica completa.
Configuration
# bacon.toml in the project root
default_job = "clippy"
[jobs.clippy]
command = ["cargo", "clippy", "--all-targets", "--color", "always"]
need_stdout = false
[jobs.test]
command = ["cargo", "nextest", "run", "--color", "always"]
need_stdout = true
[jobs.check-win]
command = ["cargo", "check", "--target", "x86_64-pc-windows-msvc"]
[keybindings]
n = "job:check-win"
| Field | Purpose |
|---|
default_job | Cosa esegue bacon senza argomenti |
command | Il comando effettivo da eseguire |
need_stdout | Cattura stdout (test) vs stderr solo (check) |
watch | Percorsi extra da osservare |
keybindings | Tasti personalizzati per passare ai job |
Common Setups
# Two-pane workflow: editor on the left, bacon on the right
bacon clippy
# Run tests continuously with nextest for speed
bacon test # with the nextest job defined above
# Watch a workspace member only
bacon -p my-crate
Why Not Just cargo watch?
| Aspect | bacon | cargo-watch |
|---|
| Output | Compatto, riepilogo sul posto | Output grezzo che scorre |
| Job switching | Tasti live | Riavvia con nuovi argomenti |
| Focus | Primo errore evidenziato | Log completo |
| Best for | Riquadro di feedback continuo | Osservazione generica di comando |
Per non-Rust o osservazione generica di file, usa watchexec; per test più veloci abbina con cargo-nextest.
Resources