Как получить позицию курсора в затмении TextEditor - PullRequest
7 голосов
/ 26 июля 2011

Я пытался получить номер строки и номер столбца позиции курсора в jface TextEditor. Я попробовал функцию getCursorPosition (). Но при печати это показывает только «?». Обратите внимание, что мне нужен номер строки и номер столбца в редакторе, а не по отношению к экрану. Я видел, что есть функция JTextArea.getCaretPosition. Но я не знаю, как конвертировать текстовый редактор в JTextArea. Кроме того, возможно ли прочитать слово, в котором находится курсор?

Спасибо

1 Ответ

8 голосов
/ 26 июля 2011

В TextEditor вы можете получить документ, поставщика документов и выбор.Это даст вам доступ к текущему смещению курсора.

ITextEditor editor = (ITextEditor) editorPart
        .getAdapter(ITextEditor.class);
IDocumentProvider provider = editor.getDocumentProvider();
IDocument document = provider.getDocument(editorPart
        .getEditorInput());
ITextSelection textSelection = (ITextSelection) editorPart
        .getSite().getSelectionProvider().getSelection();
int offset = textSelection.getOffset();
int lineNumber = document.getLineOfOffset(offset);

IDocument предоставляет другие методы для получения начала строк (из этого можно рассчитать столбец).

Подробнееинформацию см. http://wiki.eclipse.org/The_Official_Eclipse_FAQs#Text_Editors

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...