Rust製のコンテンツに応じたdiffツール。tree-sitterでコードを構造的に比較するほか、画像、フォント、アーカイブ、PDFも比較します。
Wilfred/difftastic
行単位ではなく構文木でファイルを比較し、整形やコードの移動も正確に表示するコマンドラインdiffツール。
- スター
- 26,159
- フォーク
- 534
- 未解決の Issue
- 282
- 最終コミット
- 3 日前
これは何?
Difftasticは、2つのファイルを行ごとではなく構文に基づいて比較する構造的なdiffツールです。両方のファイルをパースし、コードが整形されたり複数行に分割されたりしていても、実際に変更された構文要素だけを強調表示します。
空白は、その言語で意味を持つ場合にのみ差分として扱うため、インデントだけの変更もそのように認識されます。認識できないファイル形式の場合は、単語を強調表示する行単位のdiffにフォールバックします。出力は、人が読みやすいように設計された左右並列表示で、パッチの生成には向いていません。
Difftasticはgitやその他のバージョン管理システムと連携でき、競合する両側をdiffすることでマージコンフリクトマーカーを解決できます。また、構文に変更があったかどうかに応じた終了ステータスを返す、チェック専用モードも備えています。
主な機能
- 01構文木でコードを比較するため、整形によるノイズの多いdiffを防ぎます。
- 0230以上のプログラミング言語に対応しています。
- 03構文上意味を持つ場合にのみ、空白の変更を強調表示します。
- 04gitやその他のバージョン管理システムと連携できます。
- 05競合する両側を比較して、マージコンフリクトマーカーをdiffします。
- 06完全なdiffを表示せずに構文上の変更を検出できる、チェック専用モードを備えています。
ユースケース
- コードが整形または再構成されたコミットのレビュー。
- Rust、JavaScript、HTMLなどの大規模なリファクタリングのdiffを読む。
- CIで、ファイルの2つのバージョンに構文上の違いがあるかを確認する。
- 変更点をより明確に把握できる左右並列表示で、マージコンフリクトを調べる。
クイックスタート
- 1
マニュアルのインストールガイドに従って difftastic をインストールします
- 2
difft で2つのファイルを比較します
difft foo1.c foo2.c
使う前に知っておきたいこと
- 変更箇所の多いファイルではパフォーマンスが低下し、大量のメモリを使用することがあります。
- 常に順序を重視するため、集合の要素やソートされていないキーなど、順序を入れ替えた項目も変更として表示されます。
- マージや、後から適用できるパッチの生成には対応していません。
収録されている特集
トピック
よくある質問
- difftastic とは?
- 行単位ではなく構文木でファイルを比較し、整形やコードの移動も正確に表示するコマンドラインdiffツール。 Difftasticは、2つのファイルを行ごとではなく構文に基づいて比較する構造的なdiffツールです。両方のファイルをパースし、コードが整形されたり複数行に分割されたりしていても、実際に変更された構文要素だけを強調表示します。
- difftastic は無料で使えますか?ライセンスは?
- difftastic は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- difftastic は今もメンテナンスされていますか?
- 活発にメンテナンス中。difftastic の最終コミットは 2026年11月4日 です。
- difftastic は何に使えますか?
- コードが整形または再構成されたコミットのレビュー。 Rust、JavaScript、HTMLなどの大規模なリファクタリングのdiffを読む。 CIで、ファイルの2つのバージョンに構文上の違いがあるかを確認する。 変更点をより明確に把握できる左右並列表示で、マージコンフリクトを調べる。
- difftastic のインストール方法は?
- マニュアルのインストールガイドに従って difftastic をインストールします difft で2つのファイルを比較します: difft foo1.c foo2.c
- difftastic はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Wilfred/difftastic
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
git、diff、grep、blameの出力をシンタックスハイライト付きで表示するページャー。gitのデフォルトページャーと置き換えて使えます。
Git、Jujutsu、Sapling、GitHub PR、raw fileのコード変更を、エージェントのインラインメモとともにレビューできる対話型ターミナルdiffビューア。
Gitのコミット差分をレビューする、GitHub風のローカルWebビューアを起動するCLIツール。コメントはAI向けプロンプトとしてコピーできます。
GitHub風に差分を左右に並べ、シンタックスハイライト付きで表示するターミナル用Gitページャー。
Gitの変更を、ファイルごとのdiff一覧ではなく、業務上の目的ごとにまとめた1画面のHTMLレビュー画面に変換するエージェント向けSkill。