Ir al contenido

bacon - Verificador de Código Rust en Segundo Plano Hoja de Trucos

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étodoComando
Cargocargo install --locked bacon
macOS (Homebrew)brew install bacon
Arch Linuxpacman -S bacon
Verificarbacon --version

Ejecutando

ComandoDescripción
baconJob predeterminado (usualmente check)
bacon clippyEjecutar clippy en cambios
bacon testEjecutar pruebas en cambios
bacon check-allVerificar todos los objetivos/features
bacon docConstruir docs
bacon --job clippy-allJob nombrado
bacon -- --features xPasar args extra de cargo

Controles de Teclado

TeclaAcción
cCambiar a check
lCambiar a clippy
tCambiar a test
dConstruir docs
escVolver al job anterior
q / Ctrl+CSalir
spaceRe-ejecutar ahora
sAlternar modo resumen (lista compacta)
wAlternar ajuste
g/GDesplazar a arriba/abajo
pAlternar 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"
CampoPropósito
default_jobLo que ejecuta bacon sin args
commandEl comando actual a ejecutar
need_stdoutCapturar stdout (pruebas) vs solo stderr (check)
watchRutas extra a observar
keybindingsTeclas 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?

Aspectobaconcargo-watch
SalidaResumen compacto, en el lugarSalida bruta con scroll
Cambio de jobKeybindings vivoReiniciar con nuevos args
EnfoquePrimer error destacadoLog completo
Mejor paraPane de retroalimentación continuaObservació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