Eclipse-плагин, как получить текущую позицию курсора текстового редактора

Я пытаюсь показать всплывающее диалоговое окно в позиции текстового курсора редактора. Как я могу получить позицию текстового курсора в пикселях активного редактора (Point) и показать всплывающее диалоговое окно в этот момент?


person Community    schedule 25.10.2009    source источник


Ответы (2)


Я не совсем уверен, что вы имеете в виду под «показать всплывающее диалоговое окно в этот момент», но сделайте что-то вроде этого:

IEditorPart editor =  PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (editor instanceof ITextEditor) {
  ISelectionProvider selectionProvider = ((ITextEditor)editor).getSelectionProvider();
  ISelection selection = selectionProvider.getSelection();
  if (selection instanceof ITextSelection) {
    ITextSelection textSelection = (ITextSelection)selection;
    int offset = textSelection.getOffset(); // etc.
  }
}

Конечно, в производственном коде выполняются нулевые проверки и т.д.

person thSoft    schedule 11.02.2010
comment
Мне нужна точка (X, Y) (в пикселях), чтобы показать всплывающее диалоговое окно, и я хочу показать его под текстовым курсором, как всплывающее окно завершения кода. В вашем коде вы получаете смещение текста в символах, как преобразовать это смещение в точку в пикселях. Или может быть существует другой способ показать всплывающее окно под текстовым курсором? - person ; 11.02.2010

Вы можете использовать метод getCursorPosition() из AbstractTextEditor

person Alexandre Pauzies    schedule 12.11.2009
comment
Но этот метод защищен. Как можно вызвать его? - person Lii; 24.04.2013
comment
Он не только защищен, но и возвращает строковое описание позиции курсора, а это совсем не то, о чем просил OP. - person Amos M. Carpenter; 22.04.2016