Bug 112436 [search] is unkind to its participants
PDE is on its way to becoming a Java-seach-participant to show hits in manifest files. It's all going swimmingly, except that annotations are not being created when the manifest editor opens. The problem seems to be in JavaSearchResult#computeContainedMatches(...). This method returns an empty array if the file being opened is not a Java file. This clearly causes a problem for PDE who is solely interested in manifest files (manifest.mf and plugin.xml). So the editor opens but no pretty yellow arrows or blue markers.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchResult.java
}
			return matchFile;
		}
		if (element instanceof IFile)
			return (IFile) element;
		return null;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.search2.ui.text.IStructureProvider#isShownInEditor(org.eclipse.search2.ui.text.Match,
	 *      org.eclipse.ui.IEditorPart)
	 */
	public boolean isShownInEditor(Match match, IEditorPart editor) {
		IEditorInput editorInput= editor.getEditorInput();
		if (match.getElement() instanceof IJavaElement) {
			IJavaElement je= (IJavaElement) match.getElement();
			if (editorInput instanceof IFileEditorInput) {
				IPackageFragmentRoot root= (IPackageFragmentRoot) je.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
				if (root.isArchive())
					return false;
				IFile inputFile= ((IFileEditorInput)editorInput).getFile();
				IResource matchFile= null;
				ICompilationUnit cu= (ICompilationUnit) je.getAncestor(IJavaElement.COMPILATION_UNIT);
				if (cu != null) {
					matchFile= cu.getResource();
				} else {
					IClassFile cf= (IClassFile) je.getAncestor(IJavaElement.CLASS_FILE);
					if (cf != null)
						matchFile= cf.getResource();