Java Eclipse:获取并设置编辑器的插入符号位置
我正在为Eclipse开发一个语音识别插件。例如,当我编写代码时,我可以简单地说“For”和“For(){}”将被打印到编辑器中。但是,当光标的范围超出Eclipse时(例如,当我单击浏览器搜索时),我说的下一句话将在此处打印,而不是在Eclipse编辑器中打印,这非常有效 当插入符号位置超出范围时,有没有办法找出它在Eclipse编辑器上的位置,因为当您单击Eclipse UI的任何部分时,旧的插入符号位置会弹出 我还使用JavaRobotAPI在屏幕上模拟字符串。我认为它没有设置插入符号位置的选项,只有courser位置Java Eclipse:获取并设置编辑器的插入符号位置,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在为Eclipse开发一个语音识别插件。例如,当我编写代码时,我可以简单地说“For”和“For(){}”将被打印到编辑器中。但是,当光标的范围超出Eclipse时(例如,当我单击浏览器搜索时),我说的下一句话将在此处打印,而不是在Eclipse编辑器中打印,这非常有效 当插入符号位置超出范围时,有没有办法找出它在Eclipse编辑器上的位置,因为当您单击Eclipse UI的任何部分时,旧的插入符号位置会弹出 我还使用JavaRobotAPI在屏幕上模拟字符串。我认为它没有设置插入符号位置
更新:所有需要的是文本编辑器插入符号位置x和y坐标,我可以使用Java机器人移动鼠标(插入符号位置x,y)在进行任何仿真之前,按住鼠标将eclipse平台恢复到范围内。假设您有感兴趣的
IEditorPart
,您可以使用以下命令获得插入符号位置:
IEditorPart editor = .... get part ..
Control control = editor.getAdapter(Control.class);
// For a text editor the control will be StyledText
if (control instanceof StyledText) {
StyledText text = (StyledText)control;
// Position of caret relative to top left of the control
Point relPos = text.getLocationAtOffset(text.getCaretOffset());
// Position relative to display
Point absPos = textWidget.toDisplay(relPos);
}
你可能想看看