コンテンツにスキップ

bacon - バックグラウンド Rust コードチェッカー チートシート

bacon - バックグラウンド Rust コードチェッカー チートシート

bacon は Rust 用バックグラウンドコードチェッカーです。サイドターミナルで 1 度実行し、ソースファイルを監視しながら、毎回保存時に cargo checkclippy、またはテストを再実行して、コンパクトで常に最新のエラー と警告の概要を表示します。設計目標は、cargo check を再度入力しないようにし、出力の壁を決してスクロールしないようにすることです。bacon はエラーを目立たせて表示し、修正時にインプレース更新します。

インストール

方法コマンド
Cargocargo install --locked bacon
macOS (Homebrew)brew install bacon
Arch Linuxpacman -S bacon
確認bacon --version

実行

コマンド説明
baconデフォルトジョブ (通常 check)
bacon clippy変更時に clippy を実行
bacon test変更時にテストを実行
bacon check-allすべてのターゲット/機能をチェック
bacon docドキュメントをビルド
bacon --job clippy-all名前付きジョブ
bacon -- --features x追加 cargo 引数を渡す

キーボード制御

キーアクション
ccheck に切り替え
lclippy に切り替え
ttest に切り替え
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_stdoutstdout をキャプチャ (テスト) vs stderr のみ (チェック)
watch見守る追加パス
keybindingsジョブ切り替え用のカスタムキー

一般的なセットアップ

# 2 ペインワークフロー: エディタ左、bacon 右
bacon clippy

# nextest 高速化で継続的にテスト実行
bacon test          # 上で定義された nextest ジョブ付き

# ワークスペースメンバーのみ監視
bacon -p my-crate

なぜ cargo watch だけではないのか?

側面baconcargo-watch
出力コンパクトで適切な概要生スクロール出力
ジョブ切り替えライブキーバインディング新しい引数で再開
フォーカス最初のエラーハイライト完全ログ
最適用途継続的なフィードバックペイン汎用コマンド監視

非 Rust または汎用ファイル監視には watchexec を使用。高速テスト実行用に cargo-nextest とペアリング。

リソース