|
121 | 121 | import org.eclipse.jface.viewers.StructuredSelection; |
122 | 122 | import org.eclipse.jface.window.Window; |
123 | 123 | import org.eclipse.swt.SWT; |
| 124 | +import org.eclipse.swt.events.SelectionAdapter; |
| 125 | +import org.eclipse.swt.events.SelectionEvent; |
124 | 126 | import org.eclipse.swt.graphics.Point; |
125 | 127 | import org.eclipse.swt.widgets.Composite; |
126 | 128 | import org.eclipse.swt.widgets.Display; |
127 | 129 | import org.eclipse.swt.widgets.Event; |
128 | 130 | import org.eclipse.swt.widgets.Shell; |
129 | 131 | import org.eclipse.ui.IEditorInput; |
130 | 132 | import org.eclipse.ui.IEditorPart; |
| 133 | +import org.eclipse.ui.IWorkbenchPage; |
131 | 134 | import org.eclipse.ui.IWorkbenchPart; |
| 135 | +import org.eclipse.ui.IWorkbenchWindow; |
132 | 136 | import org.eclipse.ui.PlatformUI; |
133 | 137 | import org.eclipse.ui.dialogs.ElementListSelectionDialog; |
134 | 138 | import org.eclipse.ui.dialogs.FilteredList; |
@@ -1972,6 +1976,23 @@ protected FilteredList createFilteredList(Composite parent) { |
1972 | 1976 | FilteredList filteredList = super.createFilteredList(parent); |
1973 | 1977 | // Disable default sorting to keep the original order |
1974 | 1978 | filteredList.setComparator(new LambdaPositionComparator(lambdaNames)); |
| 1979 | + filteredList.addSelectionListener(new SelectionAdapter() { |
| 1980 | + @Override |
| 1981 | + public void widgetSelected(SelectionEvent e) { |
| 1982 | + int index = filteredList.getSelectionIndex(); |
| 1983 | + if (index >= 0) { |
| 1984 | + LambdaExpression lambda = lambdaExps.get(index); |
| 1985 | + int start = lambda.getStartPosition(); |
| 1986 | + int length = lambda.getLength(); |
| 1987 | + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
| 1988 | + IWorkbenchPage page = window.getActivePage(); |
| 1989 | + IEditorPart editorPart = page.getActiveEditor(); |
| 1990 | + if (editorPart instanceof ITextEditor textEditor) { |
| 1991 | + textEditor.selectAndReveal(start, length); |
| 1992 | + } |
| 1993 | + } |
| 1994 | + } |
| 1995 | + }); |
1975 | 1996 | return filteredList; |
1976 | 1997 | } |
1977 | 1998 |
|
|
0 commit comments