我不想创建自己的编辑器,但我想通过挂钩编辑事件来扩展现有的编辑器.
例如,只要文本在文本或xml编辑器中发生更改,我就会得到回调并能够对更改做出反应.
是否存在这样一个合适的扩展点?
您可以通过访问IEditorPart,使用getAdapter(IDocument.class)然后添加一个监听器来实现此目的...
但这真的是一个黑客... ;-)
编辑:根据要求,这里有一些代码.
public void hookToEditor() {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (page == null) return;
IEditorPart editor = page.getActiveEditor();
if (editor == null) return;
IDocument doc = (IDocument) editor.getAdapter(IDocument.class);
if (doc == null) return;
doc.addDocumentListener(new IDocumentListener() {
@Override
public void documentChanged(DocumentEvent event) {
// Do something
}
@Override
public void documentAboutToBeChanged(DocumentEvent event) {
// About to do something
}
});
}
Run Code Online (Sandbox Code Playgroud)
注意