bacon - Verificador de Código Rust en Segundo Plano Hoja de Trucos
bacon es un verificador de código en segundo plano para Rust. Lo ejecutas una vez en una terminal lateral y observa tus archivos de fuentes, re-ejecutando cargo check, clippy o tus pruebas en cada guardado y mostrando un resumen compacto, siempre actualizado de errores y advertencias. El objetivo de diseño es que nunca escribas cargo check de nuevo y nunca desplaces entre paredes de salida — bacon muestra el primer error prominentemente y actualiza en el lugar mientras corriges cosas.
Instalación
| Método | Comando |
|---|
| Cargo | cargo install --locked bacon |
| macOS (Homebrew) | brew install bacon |
| Arch Linux | pacman -S bacon |
| Verificar | bacon --version |
Ejecutando
| Comando | Descripción |
|---|
bacon | Job predeterminado (usualmente check) |
bacon clippy | Ejecutar clippy en cambios |
bacon test | Ejecutar pruebas en cambios |
bacon check-all | Verificar todos los objetivos/features |
bacon doc | Construir docs |
bacon --job clippy-all | Job nombrado |
bacon -- --features x | Pasar args extra de cargo |
Controles de Teclado
| Tecla | Acción |
|---|
c | Cambiar a check |
l | Cambiar a clippy |
t | Cambiar a test |
d | Construir docs |
esc | Volver al job anterior |
q / Ctrl+C | Salir |
space | Re-ejecutar ahora |
s | Alternar modo resumen (lista compacta) |
w | Alternar ajuste |
g/G | Desplazar a arriba/abajo |
p | Alternar pausa en cambios |
Modo Resumen
El modo resumen colapsa la salida en una línea por problema — ideal para un panel lateral estrecho.
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
Presiona s para alternar; presiona enter en una entrada para expandir el diagnóstico completo.
Configuración
# bacon.toml en la raíz del proyecto
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"
| Campo | Propósito |
|---|
default_job | Lo que ejecuta bacon sin args |
command | El comando actual a ejecutar |
need_stdout | Capturar stdout (pruebas) vs solo stderr (check) |
watch | Rutas extra a observar |
keybindings | Teclas personalizadas para cambiar jobs |
Configuraciones Comunes
# Flujo de dos paneles: editor a la izquierda, bacon a la derecha
bacon clippy
# Ejecutar pruebas continuamente con nextest para velocidad
bacon test # con el job de nextest definido arriba
# Observar solo un miembro del workspace
bacon -p my-crate
¿Por Qué No Solo cargo watch?
| Aspecto | bacon | cargo-watch |
|---|
| Salida | Resumen compacto, en el lugar | Salida bruta con scroll |
| Cambio de job | Keybindings vivo | Reiniciar con nuevos args |
| Enfoque | Primer error destacado | Log completo |
| Mejor para | Pane de retroalimentación continua | Observación de comando genérico |
Para no-Rust u observación genérica de archivos, usa watchexec; para ejecuciones de pruebas más rápidas empareja con cargo-nextest.
Recursos