Met de zoekplugin kunt u aangepaste views maken om de gebruiker te helpen bij het samenvoegen van verschillende contentstromen. In sommige gevallen is het echter wenselijk om stromen samen te voegen zonder tussenkomst van de gebruiker. Met het extensiepunt org.eclipse.compare.streamMergers kunt u een klasse aanleveren waarmee drie verschillende invoerstromen kunt samenvoegen tot één uitvoerstroom. Stroomsamenvoegers (stream mergers) kunnen worden gekoppeld aan bestandsextensies of aan een bepaald contenttype. Deze zoekplugin definieert een stroomsamenvoeger voor drie platte-tekststromen:
<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>
De stroomsamenvoeger zelf wordt beschreven in het element streamMerger. Hiertoe geeft de ID (id) van de samenvoeger op, en de klasse (class) die dit element implementeert. U kunt ook alle bestandsextensies (extensions) opgeven waarvoor de stroomsamenvoeger moet worden gebruikt.
Desgewenst gebruikt u het element contentTypeBinding om de stroomsamenvoeger te koppelen aan een contenttype.
Stroomsamenvoegers moeten IStreamMerger implementeren. Met deze eenvoudige interface wordt de content van drie verschillende invoerstromen samengevoegd tot één uitvoerstroom. De implementatie hiervan is niet zo eenvoudig, en is afhankelijk van uw plugin en de desbetreffende contenttypen.
U kunt nieuwe exemplaren van IStreamMerger maken voor geregistreerde typen met de createStreamMerger-methoden van CompareUI.