【发布时间】:2014-02-24 08:37:34
【问题描述】:
我正在尝试将选择更改事件添加到基于 org.eclipse.ui.editors.text.TextEditor 的文本编辑器。
我想获取所选文本的行和列(当用户选择/突出显示时)。
实现这一目标的最简单(如果有的话)方法是什么?
谢谢
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp
我正在尝试将选择更改事件添加到基于 org.eclipse.ui.editors.text.TextEditor 的文本编辑器。
我想获取所选文本的行和列(当用户选择/突出显示时)。
实现这一目标的最简单(如果有的话)方法是什么?
谢谢
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp
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();
【讨论】: