搜索插件允许您定制视图来帮助用户合并不同内容流。但是,在某些情况下,理想情况是能够在无需用户帮助的情况下合并流。扩展点 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 元素中描述的。必须指定合并程序的标识和实现该合并程序的类。还可指定应对其使用流合并程序的所有文件扩展。
还可使用 contentTypeBinding 元素以将内容类型与流合并程序进行关联。
流合并程序必须实现 IStreamMerger。此简单接口将三个不同输入流中的内容合并到单个输出流中。并非如此简单的实现取决于您的插件及其内容类型。
可对向 CompareUI 的 createStreamMerger 方法注册的类型创建新的 IStreamMerger。