开发者

How to get cursor position in an eclipse TextEditor

I have been trying to get the line number开发者_JAVA百科 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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜