我一直在尝试获取jface TextEditor中光标位置的行号和列号。我尝试了getCursorPosition()函数。但打印此函数只显示“?”。请注意,我需要编辑器内部的行号和列号,而不是相对于屏幕的。
我看到有一个函数JTextArea.getCaretPosition。但我不知道如何将文本编辑器转换为JTextArea。
此外,是否可以读取光标所在单词?
谢谢
谢谢
通过文本编辑器,您可以获取文档、文档提供程序和选择内容。这将使您能够访问当前光标偏移量。
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