Модуль поиска позволяет настроить вспомогательные панели, позволяющие пользователям объединять различные потоки содержимого. Однако в некоторых случаях может потребоваться возможность объединения потоков без вмешательства пользователя. Точка расширения org.eclipse.compare.streamMergers предоставляет класс, объединяющий три различных потока ввода в один поток вывода. Программу объединения потоков можно связать как с расширениями файлов, так и с конкретным типом содержимого. Модуль поиска задает программу объединения трех потоков обычного текста:
<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 и class, описывающие идентификатор программы объединения, а также класс, в котором она реализована. Кроме того, с помощью элемента extensions можно указать расширения файлов, связанные с этой программой.
Элемент contentTypeBinding позволяет связать с программой объединения тип содержимого.
Программы объединения потоков должны применять интерфейс IStreamMerger. Это простой интерфейс, объединяющий содержимое трех различных потоков ввода в один поток вывода. Сложность реализации зависит от модуля и типов содержимого.
Новые интерфейсы IStreamMerger для зарегистрированных типов создаются с помощью методов createStreamMerger, входящих в состав CompareUI.