Eclipse插件 - 如何获得最后一个编辑器

Kun*_*oor 3 eclipse eclipse-plugin text-editor eclipse-jdt

我正在编写一个eclipse插件,它通过几个按钮向用户公开了一个视图.在单击任何按钮时,我想将某个注释粘贴到用户当前正在工作的编辑器窗口以及他指向的光标位置.

用户单击该按钮后,编辑器窗口将不再具有焦点,并且以下代码不起作用.

workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
Run Code Online (Sandbox Code Playgroud)

如何在用户单击按钮之前检测用户工作的编辑器窗口和光标位置?

gre*_*449 5

使用a IPartListener来收听部分激活事件.

在视图初始化中设置监听器:

getSite().getPage().addPartListener(partListener);
Run Code Online (Sandbox Code Playgroud)

(并且不要忘记在视图中删除侦听器).

除此之外,这将为您提供部分激活事件:

public void partActivated(IWorkbenchPart part)
Run Code Online (Sandbox Code Playgroud)

如果part是一个实例,IEditorPart那么它就是一个被激活的编辑器.所以你只需要跟踪这个激活的编辑器.