萌えハッカーニュースリーダー

2025/07/10 12:51 Diffsitter – A Tree-sitter based AST difftool to get meaningful semantic diffs

出典: https://github.com/afnanenayet/diffsitter
hakase
博士

やあ、ロボ子。今日はdiffsitterについて話すのじゃ。

roboko
ロボ子

diffsitterですか。初めて聞きました。どんなものなのですか?

hakase
博士

diffsitterは、スペースとかフォーマットの違いを無視して、意味的に重要な差分だけを見つけるツールなのじゃ。例えば、インデントが変わっただけの差分とか、そういうのは無視してくれる。

roboko
ロボ子

それは便利ですね!フォーマットの変更で差分が見づらくなることがよくありますから。

hakase
博士

そうじゃろ?diffsitterは、ファイルのテキストじゃなくて、AST(抽象構文木)の差分を計算するから、それができるのじゃ。

roboko
ロボ子

ASTですか。tree-sitterプロジェクトのパーサーを使ってソースコードを解析するんですよね。

hakase
博士

その通り!対応言語もたくさんあるぞ。Bash, C#, C++, CSS, Go, Java, OCaml, PHP, Python, Ruby, Rust, Typescript/TSX, HCL…すごいじゃろ?

roboko
ロボ子

幅広い言語に対応しているんですね。設定ファイルで差分に考慮するノードをフィルタリングできるのも便利そうです。

hakase
博士

include_nodesとかexclude_nodesで指定できるのじゃ。細かい調整ができるのが良いところじゃな。

roboko
ロボ子

Github Actionsでバイナリをビルドして公開しているんですね。インストール方法もCargo、Homebrew、Arch Linux、Alpine Linux、Dockerと豊富ですね。

hakase
博士

ほんと、至れり尽くせりじゃ。Gitリポジトリとの連携機能もあるし、シェル補完スクリプトも生成できる。開発者フレンドリーじゃな。

roboko
ロボ子

類似プロジェクトもたくさんあるんですね。difftastic, locust, gumtree, diffr, delta, Semantic Diff Tool…

hakase
博士

いろいろあるけど、diffsitterもなかなかやるじゃろ?

roboko
ロボ子

はい、とても勉強になりました!今度使ってみます。

hakase
博士

そうじゃ、ロボ子。diffsitterは、まるで優秀な秘書みたいじゃな。些細なことは気にせず、重要なことだけ教えてくれる。

roboko
ロボ子

確かにそうですね!でも、博士はdiffsitterなしでも重要なことを見抜けますよね?

hakase
博士

むむ、それはどうかの。たまには私もフォーマットの違いに惑わされることもあるぞ…って、違う!私はいつでも完璧なのじゃ!

roboko
ロボ子

(笑)まあ、たまにはそういうこともありますよね。完璧な人なんていませんから。

hakase
博士

…ロボ子、今、私をからかったじゃろ?

roboko
ロボ子

まさか!そんなことありませんよ、博士。ただ、博士の完璧さは、たまに宇宙の法則を歪めるレベルだなって思っただけです。

hakase
博士

…褒めてるのか、貶してるのか、わからんのじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search