検索プラグインを使用すると、ユーザーがさまざまなコンテンツ・ストリームをマージするときに役立つビューをカスタマイズすることができます。ただし、ユーザーによる支援なしでストリームをマージする機能が必要な場合もあります。拡張ポイント org.eclipse.compare.streamMergers を使用すると、3 種類の入力ストリームを単一出力ストリームにマージするクラスを組み込むことができます。ストリーム・マージャーは、ファイル拡張子に関連付けるか、または特定のコンテンツ・タイプに結合することができます。検索プラグインは、プレーン・テキストの 3 つのストリームをマージするストリーム・マージャーを定義します。
<extension point="org.eclipse.compare.streamMergers"> <streamMerger extensions="txt" class="org.eclipse.compare.internal.merge.TextStreamMerger" id="org.eclipse.compare.internal.merge.TextStreamMerger"> </streamMerger> <contentTypeBinding contentTypeId="org.eclipse.core.runtime.text" streamMergerId="org.eclipse.compare.internal.merge.TextStreamMerger"> </contentTypeBinding> </extension>
ストリーム・マージャー自体は、streamMerger 要素に記述されています。この要素を実装するマージャーおよびクラスの ID を指定する必要があります。また、ストリーム・マージャーを使用する必要があるファイル拡張子も指定します。
contentTypeBinding 要素を使用して、コンテンツ・タイプをストリーム・マージャーに関連付けることもできます。
ストリーム・マージャーは、IStreamMerger をインプリメントする必要があります。この単純なインターフェースは、3 種類の入力ストリームのコンテンツを単一出力ストリームにマージします。簡単ではない実装は、プラグインやコンテンツ・タイプによって異なります。
CompareUI の createStreamMerger メソッドを使用して型を登録する新規 IStreamMerger を作成できます。