When the user selects a resource and chooses the search command, the search plug-in launches a dialog containing pages for different kinds of content searches. These pages are contributed using the org.eclipse.search.searchPages extension point.
The markup for contributing a search page is straightforward. The following example is the JDT plug-in's contribution of the Java search page:
<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>
The class that implements the search page must be specified. This class must implement the ISearchPage nterface and typically extends DialogPage. The label and icon that can be used to describe the search in the search dialog are also specified. Additional parameters control the size of the page and the location of the page within the search dialog.
The extensions attribute specifies the resources on which the search page can operate. It is formatted as a comma separated list of file extensions. Each file extension should be followed by a numeric weight value, where 0 is the lowest weight, separated by a colon. The weight value is a relative value used to allow the search infrastructure to find the search page most appropriate for a given resource.
If a search page can search all possible resources then "*" should be used.
The
protocol for ISearchPage
is simple. Your search page must implement performAction()
which
is called when the Search button is pressed. Of course, your
particular search implementation depends on your plug-in's function, but it is
typical to open a results viewer in this method using
the NewSearchUI
method activateSearchResultView().
Your plug-in is responsible for showing its results in the search result view.