2012-01-08 8 views

答えて

5

Andrew's answerをEclipse 3.7で動作させることができませんでした。コンパイラは、このエラーを与えた:

The method getSourceViewer() from the type AbstractTextEditor is not visible.

はしかし、私はそれがselectAndReveal()方法で動作するように取得することができた:

IFile myfile = ... 
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
ITextEditor editor = (ITextEditor) IDE.openEditor(page, myfile); 
editor.selectAndReveal(offset, length); 
0

あなたはすでに現在のエディタのハンドルを持っている場合は、あなたが行うことができます:

editor.getSourceViewer().setSelectedRange(offset, length); 

あなたは現在のエディタのハンドルを持っていない場合、あなたはそこにいくつかの作業を行う必要があります(テキストエディタを前提とします)

TextEditor editor = (TextEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() 
    .getActivePage().getActiveEditor(); 

これは機能しますが、私はいくつかを単純化しました。あなたがinstanceofのテスト

  • を行いたいとしているので、時々、上記の長いフレーズのさまざまな部分がNULLとなる可能性がある、アクティブなエディタが本当にTextEditorであることを確認してください(EG-起動時にする必要があり

    1. またはシャットダウン)。私はtry-catch(NPE)ブロックで式をラップするだけで、NPEがスローされるとエディタは使用できないと仮定します。
  • 関連する問題