eclipse-pdeeclipse-api

Eclipe PDE: Jump to line X and highlight it


A qustion about Eclipse PDE development: I write a small plugin for Eclipse and have the following * an org.eclipse.ui.texteditor.ITextEditor * a line number

How can I automatically jump to that line and mark it? It's a pity that the API seems only to support offsets (see: ITextEditor.selectAndReveal()) within the document but no line numbers.

The best would be - although this doesn't work:

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

It this possible in some way? I did not find a solution


Solution

  • on the class DetailsView I found the following method.

    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());
        }
      }
    }