bacon - バックグラウンド Rust コードチェッカー チートシート
bacon は Rust 用バックグラウンドコードチェッカーです。サイドターミナルで 1 度実行し、ソースファイルを監視しながら、毎回保存時に 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 | 変更時の一時停止の切り替え |
サマリーモード
サマリーモードは出力を 1 行/問題に分割 — 狭いサイドペイン用に理想的。
✖ 3 errors · ⚠ 5 warnings
src/main.rs:42 mismatched types
src/lib.rs:17 unused variable: `x`
s を押して切り替え; エントリで enter を押して完全な診断を展開。
構成
# プロジェクトルート の bacon.toml
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 のみ (チェック) |
watch | 見守る追加パス |
keybindings | ジョブ切り替え用のカスタムキー |
一般的なセットアップ
# 2 ペインワークフロー: エディタ左、bacon 右
bacon clippy
# nextest 高速化で継続的にテスト実行
bacon test # 上で定義された nextest ジョブ付き
# ワークスペースメンバーのみ監視
bacon -p my-crate
なぜ cargo watch だけではないのか?
| 側面 | bacon | cargo-watch |
|---|
| 出力 | コンパクトで適切な概要 | 生スクロール出力 |
| ジョブ切り替え | ライブキーバインディング | 新しい引数で再開 |
| フォーカス | 最初のエラーハイライト | 完全ログ |
| 最適用途 | 継続的なフィードバックペイン | 汎用コマンド監視 |
非 Rust または汎用ファイル監視には watchexec を使用。高速テスト実行用に cargo-nextest とペアリング。
リソース