bacon - 백그라운드 Rust 코드 체커 치트시트
bacon은 Rust를 위한 백그라운드 코드 체커입니다. 사이드 터미널에서 한 번 실행하고 소스 파일을 보면서, 모든 저장에서 cargo check, clippy 또는 테스트를 다시 실행하고 컴팩트한, 항상 현재의 오류와 경고 요약을 표시합니다. 설계 목표는 다시는 cargo check를 입력하지 않고 출력의 벽을 스크롤하지 않는 것입니다 — bacon은 첫 번째 오류를 두드러지게 표시하고 것을 수정함에 따라 제자리에서 업데이트합니다.
설치
| 방법 | 명령 |
|---|
| Cargo | cargo install --locked bacon |
| macOS (Homebrew) | brew install bacon |
| Arch Linux | pacman -S bacon |
| 확인 | bacon --version |
실행
| 명령 | 설명 |
|---|
bacon | 기본 작업 (보통 check) |
bacon clippy | 변경 시 clippy 실행 |
bacon test | 변경 시 테스트 실행 |
bacon check-all | 모든 대상/기능 확인 |
bacon doc | 문서 빌드 |
bacon --job clippy-all | 명명된 작업 |
bacon -- --features x | 추가 cargo 인수 전달 |
키보드 제어
| 키 | 동작 |
|---|
c | check로 전환 |
l | clippy로 전환 |
t | test로 전환 |
d | 문서 빌드 |
esc | 이전 작업으로 돌아가기 |
q / Ctrl+C | 종료 |
space | 지금 다시 실행 |
s | 요약 모드 토글 (컴팩트 목록) |
w | 줄 바꿈 토글 |
g/G | 위/아래로 스크롤 |
p | 변경 시 일시 중지 토글 |
요약 모드
요약 모드는 출력을 문제당 한 줄로 축약합니다 — 좁은 사이드 창에 이상적입니다.
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
s를 눌러 토글하세요; 항목에서 enter를 눌러 전체 진단을 펼치세요.
구성
# bacon.toml in the 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"
| 필드 | 목적 |
|---|
default_job | bacon이 인수 없이 실행 |
command | 실제 실행할 명령 |
need_stdout | 캡처 stdout (테스트) vs stderr만 (check) |
watch | 추가로 보기할 경로 |
keybindings | 작업을 전환하기 위한 맞춤형 키 |
일반적인 설치
# 두 창 워크플로: 왼쪽 에디터, 오른쪽 bacon
bacon clippy
# nextest로 테스트 지속 실행 (속도)
bacon test # 위에서 정의한 nextest 작업
# 워크스페이스 멤버만 보기
bacon -p my-crate
cargo watch가 아닌 이유?
| 측면 | bacon | cargo-watch |
|---|
| 출력 | 컴팩트한 제자리 요약 | 생 스크롤 출력 |
| 작업 전환 | 실시간 키바인딩 | 새 인수로 재시작 |
| 초점 | 첫 오류 강조됨 | 전체 로그 |
| 최고의 용도 | 지속적 피드백 창 | 일반 명령 보기 |
비Rust 또는 일반 파일 보기의 경우 watchexec를 사용하세요; 더 빠른 테스트 실행을 위해 cargo-nextest와 쌍을 이루세요.
리소스