Pular para o conteúdo

bacon - Background Rust Code Checker

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

Executando

ComandoDescrição
baconJob padrão (geralmente check)
bacon clippyExecutar clippy em mudanças
bacon testExecutar testes em mudanças
bacon check-allVerificar todos os targets/features
bacon docCompilar docs
bacon --job clippy-allJob nomeado
bacon -- --features xPassar args extra de cargo

Controles de Teclado

TeclaAção
cMudar para check
lMudar para clippy
tMudar para test
dCompilar docs
escVoltar ao job anterior
q / Ctrl+CSair
spaceRe-executar agora
sAlternar modo summary (lista compacta)
wAlternar wrapping
g/GScroll para cima/baixo
pAlternar 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"
CampoPropósito
default_jobO que bacon executa sem args
commandO comando real para executar
need_stdoutCapturar stdout (testes) vs stderr apenas (check)
watchCaminhos adicionais para monitorar
keybindingsChaves 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?

Aspectobaconcargo-watch
SaídaResumo compacto, in-placeSaída scrolling bruto
Mudança de jobKeybindings ao vivoReiniciar com novos args
FocoPrimeiro erro destacadoLog completo
Melhor paraPainel de feedback contínuoMonitoramento 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