bacon - Background Rust Code Checker
bacon é um verificador de código de background para Rust. Você o executa uma vez em um terminal lateral e ele monitora seus arquivos de source, reroda cargo check, clippy, ou seus testes em cada save e exibe um resumo compacto, sempre-atual de erros e avisos. O objetivo de design é que você nunca digite cargo check novamente e nunca role através de paredes de saída — bacon mostra o primeiro erro proeminentemente e atualiza no lugar conforme você corrige as coisas.
Instalação
| Método | Comando |
|---|
| Cargo | cargo install --locked bacon |
| macOS (Homebrew) | brew install bacon |
| Arch Linux | pacman -S bacon |
| Verificar | bacon --version |
Executando
| Comando | Descrição |
|---|
bacon | Job padrão (geralmente check) |
bacon clippy | Executar clippy em mudanças |
bacon test | Executar testes em mudanças |
bacon check-all | Verificar todos os targets/features |
bacon doc | Compilar docs |
bacon --job clippy-all | Job nomeado |
bacon -- --features x | Passar args extra de cargo |
Controles de Teclado
| Tecla | Ação |
|---|
c | Mudar para check |
l | Mudar para clippy |
t | Mudar para test |
d | Compilar docs |
esc | Voltar ao job anterior |
q / Ctrl+C | Sair |
space | Re-executar agora |
s | Alternar modo summary (lista compacta) |
w | Alternar wrapping |
g/G | Scroll para cima/baixo |
p | Alternar pause em mudanças |
Modo Summary
Modo summary colapsaí saída em uma linha por problema — ideal para um painel lateral estreito.
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
Pressione s para alternar; pressione enter em uma entrada para expandir o diagnóstico completo.
Configuração
# bacon.toml na raiz do projeto
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 | O que bacon executa sem args |
command | O comando real para executar |
need_stdout | Capturar stdout (testes) vs stderr apenas (check) |
watch | Caminhos adicionais para monitorar |
keybindings | Chaves customizadas para mudar jobs |
Setups Comuns
# Fluxo de trabalho de dois painéis: editor à esquerda, bacon à direita
bacon clippy
# Executar testes continuamente com nextest para velocidade
bacon test # com o job nextest definido acima
# Monitorar apenas um membro de workspace
bacon -p my-crate
Por que não apenas cargo watch?
| Aspecto | bacon | cargo-watch |
|---|
| Saída | Resumo compacto, in-place | Saída scrolling bruto |
| Mudança de job | Keybindings ao vivo | Reiniciar com novos args |
| Foco | Primeiro erro destacado | Log completo |
| Melhor para | Painel de feedback contínuo | Monitoramento de comando genérico |
Para não-Rust ou monitoramento de arquivo genérico, use watchexec; para runs de teste mais rápidos pareia com cargo-nextest.
Recursos