Quando o utilizador selecciona um recurso e escolhe o comando de pesquisa, o plug-in de pesquisa lança um diálogo que contém páginas para diferentes tipos de pesquisas de conteúdo. Estas páginas constituem contributos através do ponto de extensão org.eclipse.search.searchPages.
A marcação para contribuir com uma página de pesquisa é muito simples. O exemplo que se segue é o contributo do plug-in das JDT da página de pesquisa 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>
A classe que implementa a página de pesquisa deve ser especificada. Esta classe deve implementar a interface ISearchPage e normalmente estende DialogPage. Também são especificados a etiqueta (label) e o ícone (icon) que podem ser usados para descrever a pesquisa no diálogo de pesquisa. Os parâmetros adicionais controlam o tamanho da página e a localização da página dentro do diálogo de pesquisa.
O atributo extensões (extensions) especifica os recursos sobre os quais podem funcionar a página de pesquisa. Está formatado como lista de extensões de ficheiros separada por vírgulas. A cada extensão de ficheiro deve seguir-se um valor de peso numérico, em que 0 é o peso mais baixo, separado por dois pontos. O valor de peso é um valor relativo utilizado para permitir que a infraestrutura de pesquisa localize a página de pesquisa mais apropriada para dado recurso.
Se uma página de pesquisa puder pesquisar todos os recursos possíveis, deverá ser usado um asterisco ("*").
O protocolo para ISearchPage é simples. A página de pesquisa deve implementar performAction()
, o qual é chamado quando se prime o botão Pesquisar. Natiralmente que a implementação da pesquisa específica depende das funcionalidades do plug-in, mas é habitual abrir um visualizador de resultados neste método com o método activateSearchResultView() da NewSearchUI.
O plug-in é responsável por mostrar os seus resultados na vista de resultados de pesquisa.