2010-05-20 2 views
6

그것은 : 이클립스를위한 작은 플러그인을 작성하고 다음 이 * org.eclipse.ui.texteditor.ITextEditor * 행 번호 나 자동으로 이동할 수있는 방법Eclipe PDE : 라인 X로 이동하고 강조 이클립스 PDE 개발에 관한 qustion는

그 선을 표시하니? API가 문서 내에서 오프셋 (그러나 ITextEditor.selectAndReveal() 참조)을 지원하지만 행 번호는 지원하지 않는 것 같습니다.

것이 가장 좋은 -이 작동하지 않지만 :

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

그것은이 수를 어떤 방법으로? 솔루션을 찾지 못했습니다

답변

5

클래스 DetailsView에 나는 다음과 같은 방법을 발견했다.

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

org.eclipse.ui.texteditor.ITextEditor은 오프셋을 처리하지만 selectAndReveal() 메서드로 줄 번호를 가져올 수 있어야합니다.

this threadthis thread을 참조하십시오. 의 라인을 따라

시도 뭔가 :

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