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
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