Skip to content

Commit 7c76bce

Browse files
committed
Add selection sync with lambda in source
1 parent a077106 commit 7c76bce

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,18 @@
121121
import org.eclipse.jface.viewers.StructuredSelection;
122122
import org.eclipse.jface.window.Window;
123123
import org.eclipse.swt.SWT;
124+
import org.eclipse.swt.events.SelectionAdapter;
125+
import org.eclipse.swt.events.SelectionEvent;
124126
import org.eclipse.swt.graphics.Point;
125127
import org.eclipse.swt.widgets.Composite;
126128
import org.eclipse.swt.widgets.Display;
127129
import org.eclipse.swt.widgets.Event;
128130
import org.eclipse.swt.widgets.Shell;
129131
import org.eclipse.ui.IEditorInput;
130132
import org.eclipse.ui.IEditorPart;
133+
import org.eclipse.ui.IWorkbenchPage;
131134
import org.eclipse.ui.IWorkbenchPart;
135+
import org.eclipse.ui.IWorkbenchWindow;
132136
import org.eclipse.ui.PlatformUI;
133137
import org.eclipse.ui.dialogs.ElementListSelectionDialog;
134138
import org.eclipse.ui.dialogs.FilteredList;
@@ -1972,6 +1976,23 @@ protected FilteredList createFilteredList(Composite parent) {
19721976
FilteredList filteredList = super.createFilteredList(parent);
19731977
// Disable default sorting to keep the original order
19741978
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+
});
19751996
return filteredList;
19761997
}
19771998

0 commit comments

Comments
 (0)