ワークスペースツール

問題

どのプロジェクトにも、何がまずいかを教えてくれる道具はすでに入っています — tsc、dart analyze、ESLint、Clippy、go vet、Ruff。ただし、いま出た四十件の 警告を招いたのが自分の差分かは、どれも教えてくれません。Gitcito はどのファイル が汚れているかを知っているので、同じ一覧がその問いにトグル一つで答えます。

問題ドックとステータスバーのカウンター

ステータスバーがカウントを持ちます — エラー、警告、情報。VS Code が皆に読み方を 教えた三つの数字です。クリック(またはコマンドパレットの 問題)でドックが下に 開き、ファイルごとにまとまります。行をクリックすると、その場所でファイルが開きます。 最初のスイープの前は、ゼロではなくダッシュを表示します。まだ誰も見ていないのであって、三つのゼロはそれとは違うことを主張してしまうからです。

何を実行するか

リポジトリにあるもの Gitcito が実行するもの
pubspec.yaml dart analyze --format=machine
tsconfig.json tsc --noEmit
ESLint の設定 eslint -f json
Cargo.toml cargo clippy --message-format=short
go.mod go vet ./...
pyproject.toml または ruff.toml ruff check --output-format=json

Flutter は Dart の行に含まれます。 Flutter アプリは Dart プロジェクトであり、 flutter analyze が呼ぶのも dart analyze と同じアナライザーです。

プロジェクトはルートになくても構いません。 これらの目印は数階層下までも探すので、 mobile/ の Flutter アプリや apps/web のパッケージは見つかり、各アナライザーは 自分のプロジェクトのディレクトリで走ります。同じ種類の入れ子プロジェクトは、祖先が すでに覆っていればスキップします — ルートの tsconfig.json はまさにそれを言っています — そして一回のスイープは十二プロジェクトで止まります。モノレポが五十個のコンパイラを 立ち上げてよいわけがないからです。

node_modules/.bin のバイナリが PATH のものより優先されます — プロジェクト自身の スクリプトと同じ解決順です。すべて並行して走り、各ツールの出力は一つの形に直され、 重複を落として並べ替えられます。二つのアナライザーが同じ行を報告しても一行です。

勝手には走りません。 大きなリポジトリでの tsc --noEmit は数十秒であり、これ らのコマンドは Gitcito のものではなくリポジトリのツールチェーンです。ドックを開いた とき、または更新を押したときにだけ始まります。一覧がスナップショットなのもそのため で、ファイルを編集したら再実行するまで古いままです。

設定 → 一般 → コードアナライザーが積極性を決めます。ドックを開いたときに スイープする(既定)、更新を押したときだけ、あるいはオフ — オフはアナライザー側の 半分、ステータスバーのカウンター、コマンドをまとめて隠します。

生成物は落とします。 プロジェクトのルートに向けた道具は見つけたものを何でも 検査し、その中には .next/build/chunks、バンドルされた dist、取り込んだコピーも 入ります — 機械が書いたコードへの数百件の苦情が、あなたのコードへの数件を埋めて しまいます。Gitcito は git にどのファイルが無視対象かを尋ねて落としますが、 追跡されているファイルは決して落としません。生成物をコミットするのは一つの選択で あり、git check-ignore はそれを尊重します。node_modules はいずれにせよ外れます。

変更した分だけ

ヘッダーのトグルは、触っていないファイルの問題をすべて落とします。開いておく価値の あるのはこの表示です。コードベース全部の警告を並べた一覧は一週間で壁紙になりますが、 「この差分が足したのか」はコミット前に答える価値のある問いです。

重大度のチップも絞り込みます。消灯はすべて表示、点灯するとその重大度だけになります。

限界

  • 言語サーバーはありません。 これは一括スキャンであってデーモンではありません。 入力中の波線もなければ、頼む前に出る結果もありません。
  • 入っていないツールは隠さず名前を出します。 何が実行できなかったかをフッターが 言います。説明のない空の一覧は、理由のある短い一覧より悪いからです。
  • 機械可読な出力しか理解しません。 各アナライザーは文書化された機械形式から 読みます。別のものを出すよう設定されたツールは、ここでは見えません。
  • 上限は五千件です。 それを超えるとドックはそう伝えて止まります — その状態の リポジトリには、スクロールバーより大きな問題があります。

関連項目: ローカル CI · 統合ターミナル

この翻訳を GitHub で改善