Java Eclipse:获取并设置编辑器的插入符号位置

Java Eclipse:获取并设置编辑器的插入符号位置,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在为Eclipse开发一个语音识别插件。例如,当我编写代码时,我可以简单地说“For”和“For(){}”将被打印到编辑器中。但是,当光标的范围超出Eclipse时(例如,当我单击浏览器搜索时),我说的下一句话将在此处打印,而不是在Eclipse编辑器中打印,这非常有效 当插入符号位置超出范围时,有没有办法找出它在Eclipse编辑器上的位置,因为当您单击Eclipse UI的任何部分时,旧的插入符号位置会弹出 我还使用JavaRobotAPI在屏幕上模拟字符串。我认为它没有设置插入符号位置

我正在为Eclipse开发一个语音识别插件。例如,当我编写代码时,我可以简单地说“For”和“For(){}”将被打印到编辑器中。但是,当光标的范围超出Eclipse时(例如,当我单击浏览器搜索时),我说的下一句话将在此处打印,而不是在Eclipse编辑器中打印,这非常有效

当插入符号位置超出范围时,有没有办法找出它在Eclipse编辑器上的位置,因为当您单击Eclipse UI的任何部分时,旧的插入符号位置会弹出

我还使用JavaRobotAPI在屏幕上模拟字符串。我认为它没有设置插入符号位置的选项,只有courser位置


更新:所有需要的是文本编辑器插入符号位置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); 
}
你可能想看看