複数のストリームのマージ

検索プラグインを使用すると、ユーザーがさまざまなコンテンツ・ストリームをマージするときに役立つビューをカスタマイズすることができます。ただし、ユーザーによる支援なしでストリームをマージする機能が必要な場合もあります。 拡張ポイント 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 を作成できます。