Le plug-in de recherche permet de personnaliser les vues qui permettent à l'utilisateur de fusionner différents flux de contenu. Dans certains cas, cependant, il est souhaitable de pouvoir fusionner des flux sans l'aide d'un utilisateur. Le point d'extension org.eclipse.compare.streamMergers permet de contribuer à une classe qui fusionne trois flux d'entrée différents afin de former un flux de sortie unique. Les fusionneurs de flux peuvent être associés à des extensions de fichier ou liés à un type de contenu déterminé. Le plug-in de recherche définit un fusionneur de flux pour la fusion de trois flux de texte simple :
<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>
Le fusionneur de flux proprement dit est décrit dans l'élément streamMerger. Vous devez indiquer l'id de fusionneur et la classe qui l'implémente. Vous pouvez également indiquer des extensions de fichier pour lesquelles le fusionneur de flux doit être utilisé.
Vous pouvez également utiliser l'élément contentTypeBinding pour associer un type de contenu à un fusionneur de flux.
Les fusionneurs de flux doivent implémenter IStreamMerger. Cette interface simple fusionne le contenu de trois flux d'entrée différents afin de former un flux de sortie unique. L'implémentation un peu complexe dépend du plug-in et de ses types de contenu.
Il est possible de créer d'autres IStreamMergers pour les types enregistrés avec les méthodes createStreamMerger deCompareUI.