use of org.eclipse.ui.internal.texteditor.EditPosition in project eclipse.platform.text by eclipse.
the class GotoLastEditPositionAction method run.
@Override
public void run() {
EditPosition editPosition = TextEditorPlugin.getDefault().getLastEditPosition();
if (editPosition == null)
return;
final Position pos = editPosition.getPosition();
if (pos == null || pos.isDeleted)
return;
IWorkbenchWindow window = getWindow();
if (window == null)
return;
IWorkbenchPage page = window.getActivePage();
IEditorPart editor;
try {
editor = page.openEditor(editPosition.getEditorInput(), editPosition.getEditorId());
} catch (PartInitException ex) {
// $NON-NLS-1$
IStatus status = new Status(IStatus.ERROR, TextEditorPlugin.PLUGIN_ID, IStatus.OK, "Go to Last Edit Location failed", ex);
TextEditorPlugin.getDefault().getLog().log(status);
return;
}
// Optimization - could also use else branch
if (editor instanceof ITextEditor) {
ITextEditor textEditor = (ITextEditor) editor;
textEditor.selectAndReveal(pos.offset, pos.length);
return;
}
/*
* Workaround: send out a text selection
* XXX: Needs to be improved, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=32214
*/
if (editor != null) {
IEditorSite site = editor.getEditorSite();
if (site == null)
return;
ISelectionProvider provider = editor.getEditorSite().getSelectionProvider();
if (provider == null)
return;
provider.setSelection(new TextSelection(pos.offset, pos.length));
}
}
Aggregations