bacon - Background Rust Code Checker Cheatsheet
bacon ist ein Background Code Checker für Rust. Du führst es einmal in einem Side Terminal aus und es beobachtet deine Source-Dateien, rerunning cargo check, clippy oder deine Tests auf jedem Save und anzeigend eine kompakte, immer-aktuelle Zusammenfassung von Fehlern und Warnungen. Das Design-Ziel ist, dass du nie cargo check wieder tippst und nie Walls von Ausgabe scrollst — Bacon zeigt den Ersten Fehler prominent und update in-place, wenn du Dinge fixierst.
Installation
| Methode | Befehl |
|---|
| Cargo | cargo install --locked bacon |
| macOS (Homebrew) | brew install bacon |
| Arch Linux | pacman -S bacon |
| Verifikation | bacon --version |
Running
| Befehl | Beschreibung |
|---|
bacon | Default Job (normalerweise check) |
bacon clippy | Führe clippy auf Changes aus |
bacon test | Führe Tests auf Changes aus |
bacon check-all | Check alle Targets/Features |
bacon doc | Build Docs |
bacon --job clippy-all | Named Job |
bacon -- --features x | Pass Extra Cargo Args |
Tastatur-Kontrollmittel
| Taste | Action |
|---|
c | Switch zu check |
l | Switch zu clippy |
t | Switch zu test |
d | Build Docs |
esc | Back zum Vorigen Job |
q / Ctrl+C | Beende |
space | Re-run Jetzt |
s | Toggle Summary Mode (Compact List) |
w | Toggle Wrapping |
g/G | Scroll zu Top/Bottom |
p | Toggle Pause auf Changes |
Summary Mode
Summary Mode Collapses Output in eine Linie pro Problem — ideal für ein Narrow Side Pane.
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
Press s zum Toggle; Press enter auf einem Entry zum Expand die Vollständige Diagnostic.
Konfiguration
# bacon.toml in der 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"
| Feld | Zweck |
|---|
default_job | Was bacon ohne Args lauft |
command | Der aktuelle Befehl zum Ausführen |
need_stdout | Capture Stdout (Tests) vs Stderr only (check) |
watch | Extra Paths zum Beobachten |
keybindings | Custom Keys zum Switching Jobs |
Common Setups
# Two-Pane Workflow: Editor auf der Left, Bacon auf der Right
bacon clippy
# Run Tests Continuously mit Nextest für Speed
bacon test # mit dem Nextest Job, das oberhalb definiert ist
# Watch ein Workspace Member nur
bacon -p my-crate
Warum nicht Just cargo watch?
| Aspekt | Bacon | Cargo-Watch |
|---|
| Output | Kompakt, In-Place Zusammenfassung | Raw Scrolling Output |
| Job Switching | Live Keybindings | Restart mit neuen Args |
| Focus | Erste Error Highlighted | Full Log |
| Am besten für | Continuous Feedback Pane | Generic Command Watching |
Für Non-Rust oder Generisches File-Watching, nutze watchexec; für schnellere Test Runs, pair mit cargo-nextest.
Ressourcen