添加搜索页面

当用户选择资源并选择搜索命令时,搜索插件就会启动一个包含各种内容搜索的页面的对话框。这些页面是使用 org.eclipse.search.searchPages 扩展点添加的。

用于添加搜索页面的标记是非常简单明了的。以下示例说明 JDT 插件如何添加 Java 搜索页面:

<extension point="org.eclipse.search.searchPages">
   <page id="org.eclipse.jdt.ui.JavaSearchPage"
		icon="icons/full/obj16/jsearch_obj.png"
		label="%JavaSearchPage.label"
		sizeHint="460,160"
	 extensions="java:90, jav:90"
		showScopeSection="true"
		canSearchEnclosingProjects="true"
		class="org.eclipse.jdt.internal.ui.search.JavaSearchPage">
	</page>
</extension>   

必须指定实现搜索页面的 class。此类必须实现 ISearchPage 接口,并且通常将扩展 DialogPage。还指定了可用来描述搜索对话框中的搜索的 labelicon。其它参数控制页面的大小以及页面在搜索对话框中的位置。

extensions 属性指定搜索页面可对其执行操作的资源。它被格式化为用逗号隔开的文件扩展名的列表。每个文件扩展名后面都应当跟着一个用冒号隔开的数字权重值(其中 0 是最低的权重)。权重值是一个相对值,它用来允许搜索基础结构查找最适合于给定资源的搜索页面。

如果搜索页面可以搜索所有可能的资源,则应当使用“*”。

实现搜索页面

ISearchPage 的协议相当简单。搜索页面必须实现 performAction()(当按搜索按钮时会调用它)。当然,特定搜索实现取决于插件的功能,但是在此方法中通常使用 NewSearchUI 方法 activateSearchResultView() 来打开结果查看器。

插件负责在搜索结果视图中显示它的结果。