Il plugin di ricerca consente di personalizzare le viste che aiutano l'utente nell'unione dei flussi di contenuto diversi. In alcuni casi, tuttavia, si desidera poter unire i flussi senza l'aiuto di un utente. Il punto di estensione org.eclipse.compare.streamMergers consente di fornire una classe che unisce tre diversi flussi di input in un unico flusso di output. I programmi di unione flussi possono essere associati alle estensioni file o collegati a un determinato tipo di contenuto. Il plugin di ricerca definisce un programma di unione flussi per l'unione di tre flussi di testo normale:
<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>
Il programma di unione flussi è descritto nell'elemento streamMerger. È necessario specificare l'id del programma di unione e la classe di implementazione. È possibile inoltre specificare qualsiasi estensione file per cui deve essere utilizzato il programma di unione flussi.
È possibile anche utilizzare l'elemento contentTypeBinding per associare un tipo di contenuto a un programma di unione flussi.
I programmi di unione flussi devono implementare l'elemento IStreamMerger. Questa semplice interfaccia unisce il contenuto di tre diversi flussi di input in un unico flusso di output. L'implementazione not-so-simple dipende dal plugin e dai relativi tipi di contenuto.
Nuovi elementi IStreamMerger possono essere creati per i tipi registrati con i metodi createStreamMerger di CompareUI.