このプロジェクトについて
jsdiffはMyers O(ND)差分アルゴリズムに基づくJavaScriptテキスト差分ライブラリです。複数の粒度でテキストを比較するための包括的なAPIを提供します。
- **文字レベルの差分**(`diffChars`):各Unicodeコードポイントをトークンとして扱い、オプションで大文字小文字を区別しない比較が可能です。
- **単語レベルの差分**(`diffWords`、`diffWordsWithSpace`):単語と句読点をトークンとして扱い、オプションで`Intl.Segmenter`をサポートし、英語以外の単語分割を改善します。
- **行レベルの差分**(`diffLines`):各行をトークンとして扱い、空白の無視、末尾のCR文字の処理、改行を別トークンとして扱うオプションがあります。
- **文レベルの差分**(`diffSentences`):文と文間の空白をトークンとして扱います。
- **CSS差分**(`diffCss`):CSSトークンを比較します。
- **JSON差分**(`diffJson`):オブジェクトを整形されたJSONにシリアライズし、プロパティをアルファベット順に並べて行単位で差分を取ります。
- **配列差分**(`diffArrays`):トークンの配列を密等価またはカスタム比較関数で比較します。
このライブラリはパッチ管理機能も提供します。
- **パッチ作成**:`createPatch`と`createTwoFilesPatch`は、コンテキスト行数とヘッダーオプションを設定可能なunified diff形式のパッチを生成します。
- **構造化パッチ**:`structuredPatch`は、プログラムで処理するのに適したhunkオブジェクトを含むデータ構造を返します。
- **パッチ適用**:`applyPatch`と`applyPatches`は、ファズファクター対応、自動改行コード変換、カスタム行比較コールバックを備えたunified diffパッチを適用します。
- **パッチ解析**:`parsePatch`はunified diff形式(リネーム、コピー、作成、削除、バイナリファイル用のGit固有の拡張ヘッダーを含む)を構造化オブジェクトに解析します。
- **パッチ反転**:`reversePatch`は逆パッチを生成します。
- **形式変換**:`convertChangesToXML`と`convertChangesToDMP`は、変更オブジェクトをXMLまたはGoogleのdiff-match-patch形式に変換します。
共通オプションには、非同期コールバックモード、最大編集長の制限、タイムアウト対応、トークンごとの変更オブジェクト粒度があります。また、`Diff`クラスを通じてカスタム差分動作をサポートし、入力のキャスト、トークン化、空トークンの削除、等価判定、結合関数をオーバーライドできます。
このライブラリはnpm(`npm install diff`)で入手でき、ESMとCommonJSの両方のインートに対応し、`dist/diff.js`を介してブラウザで直接使用することもできます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.