Bug 37884 Show Type hierarchy scalability problem
corner case but... 1) Open Object 2) select toString in the editor 3) ctrl-t 4) type T to filter the list ->this takes minutes The filtering is done after every keystroke. A first improvement is to do the refiltering after a time out. Another solution is to use the separate thread solution as is done in the ElementListSelectionDialog
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/AbstractInformationControl.java
private String fPattern;
		private StringMatcher fMatcher;
		
		public StringMatcher getMatcher() {
			return fMatcher;
		}
	
		/* (non-Javadoc)
		 * Method declared on ViewerFilter.
		 */
		public boolean select(Viewer viewer, Object parentElement, Object element) {
			if (fMatcher == null || !(viewer instanceof TreeViewer))
				return true;
			TreeViewer treeViewer= (TreeViewer) viewer;
	
			String matchName= ((ILabelProvider) treeViewer.getLabelProvider()).getText(element);
			if (matchName != null && fMatcher.match(matchName))
				return true;
	
			return hasUnfilteredChild(treeViewer, element);
		}
	
		private boolean hasUnfilteredChild(TreeViewer viewer, Object element) {
			if (element instanceof IParent) {
				Object[] children=  ((ITreeContentProvider) viewer.getContentProvider()).getChildren(element);
				for (int i= 0; i < children.length; i++)
					if (select(viewer, element, children[i]))
						return true;
			}