我正在尝试根据 org.eclipse.ui.editors.text.TextEditor 将选择更改事件添加到文本编辑器。
我想获取所选文本的行和列(当用户选择/突出显示时)。
最简单的(如果有的话)实现这个目的的方法是什么?
谢谢
答案 0 :(得分:2)
ITextViewer
对象(或ISourceViewer
扩展名)有一个getSelectedRange()
方法,它返回一个Point
,其中包含文档中的偏移量和所选范围的长度
IDocument
对象有一个getLineOfOffset()
方法,它返回包含偏移量的行。它还有getLineInformationOfOffset()
返回有关该行的信息。
所以:
Point selected = textViewer.getSelectedRange();
int line = document.getLineOfOffset(selected.x);
IRegion lineRegion = document.getLineInformationOfOffset(selected.x);
int col = selected.x - lineRegion.getOffset();