2010-05-20 13 views
6

Un qustion sobre el desarrollo Eclipse PDE: Puedo escribir un pequeño plugin para Eclipse y tienen el siguiente * un org.eclipse.ui.texteditor.ITextEditor * un número de líneaEclipe PDE: Saltar a la línea X y resaltarlo

¿Cómo puedo saltar automáticamente a esa línea y marcarlo? Es una lástima que la API solo parezca admitir compensaciones (ver: ITextEditor.selectAndReveal()) dentro del documento, pero no números de línea.

Lo mejor sería - aunque esto no funciona:

ITextEditor editor = (ITextEditor)IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file, true); 
editor.goto(line); 
editor.markLine(line); 

Es posible esto de alguna manera? No encontré una solución

Respuesta

5

en la clase DetailsView he encontrado el siguiente método.

private static void goToLine(IEditorPart editorPart, int lineNumber) { 
    if (!(editorPart instanceof ITextEditor) || lineNumber <= 0) { 
    return; 
    } 
    ITextEditor editor = (ITextEditor) editorPart; 
    IDocument document = editor.getDocumentProvider().getDocument(
    editor.getEditorInput()); 
    if (document != null) { 
    IRegion lineInfo = null; 
    try { 
     // line count internaly starts with 0, and not with 1 like in 
     // GUI 
     lineInfo = document.getLineInformation(lineNumber - 1); 
    } catch (BadLocationException e) { 
     // ignored because line number may not really exist in document, 
     // we guess this... 
    } 
    if (lineInfo != null) { 
     editor.selectAndReveal(lineInfo.getOffset(), lineInfo.getLength()); 
    } 
    } 
} 
1

Aunque org.eclipse.ui.texteditor.ITextEditor se ocupa de desplazamiento, debe poder tomar su número de línea con el método selectAndReveal().

Ver this thread y this thread.

Probar algo a lo largo de la línea:

((ITextEditor)org.eclipse.jdt.ui.JavaUI.openInEditor(compilationUnit)).selectAndReveal(int, int); 
Cuestiones relacionadas