テキスト差分チェッカー
2つのテキストブロックを行単位で比較し、追加、削除、変更なしの箇所を正確に確認できます。
仕組み
この比較は最長共通部分列(LCS)アルゴリズムに基づく行レベルの差分計算で、git diffの背後にあるロジックと同じ系統のものです。両方のテキストは行に分割され、動的計画法のテーブルによって両バージョンが順序を保って共有する最大の行の集合が求められます。このテーブルを逆にたどることで、表示される操作が得られます。左側のテキストにしか存在しない行は削除として赤で、右側にしか存在しない行は追加として緑でマークされ、共通の行はニュートラルなまま、それぞれ元の行番号を保持します。
行レベルでの差分表示は意図的なトレードオフです。文字レベルの差分は行内の1単語の変更を示せますが、実際のドキュメントでは無数の小さな断片に分解されてしまい、単に旧行の削除と新行の追加を見るよりもかえって読みづらくなります。行レベルの出力は読みやすさを保ち、コードレビューやバージョン管理が変更を提示する方法にそのまま対応します。2つのチェックボックスは「等しい」の意味を調整します。空白を無視は比較前に連続する空白をまとめ行末をトリムします(再フォーマットされたコードに最適)。大文字小文字を無視は両側を小文字に変換します。表示される行はいずれの場合も元の書式を保持します。
動的計画法テーブルは(Aの行数)×(Bの行数)に比例したメモリと時間を要するため、このツールは各側の入力を4,000行に制限しています。それを超えるとテーブルだけで数千万セルになり、タブがフリーズしてしまいます。制限内であれば、すべての処理はブラウザ内で同期的に実行されます。両方のテキストはタブ内にのみ存在し、入力してもリクエストは一切発生しません(DevToolsのNetworkパネルで確認できます)。機密性の高い下書きや設定がサーバーに触れることは一切ありません。