Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get cursor position in an eclipse TextEditor

I have been trying to get the line number and column number of the cursor position in a jface TextEditor. I tried the function getCursorPosition(). But on printing this it shows just a "?". Please note that I need the line number and column number within an editor and not with respect to the screen. I saw that there is a function JTextArea.getCaretPosition. But I dont know how to convert a text editor to JTextArea. Also, is it possible to read the word where the cursor is placed?

Thanks

like image 310
Smitha Avatar asked Jul 26 '11 09:07

Smitha


People also ask

How do I get the normal cursor back in eclipse?

Press Ctrl + Shift + Insert or tick Smart Insert Mode on the Edit menu to switch back.

What is the cursor position?

1) A cursor is the position indicator on a computer display screen where a user can enter text. In an operating system with a graphical user interface (GUI), the cursor is also a visible and moving pointer that the user controls with a mouse, touch pad, or similar input device.


1 Answers

From a TextEditor, you can get the document, document provider, and selection. That will give you access to the current cursor offset.

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 provides other methods to get the starts of lines (you can calculate the column from that).

For more information see http://wiki.eclipse.org/The_Official_Eclipse_FAQs#Text_Editors

like image 108
Paul Webster Avatar answered Oct 05 '22 14:10

Paul Webster