How can I listen for focus/blur events of all edtitors in an IntelliJ plugin?
Get EditorEventMulticasterEx
using getEventMulticaster
method, and then use its addFocusChangeListener
method:
Disposable disposable = () -> {}; // or your custom disposable
EditorEventMulticasterEx editorEventMulticaster =
(EditorEventMulticasterEx) EditorFactory.getInstance().getEventMulticaster();
editorEventMulticaster.addFocusChangeListener(new FocusChangeListener() {
@Override
public void focusGained(@NotNull Editor editor) {
// handle focus event
}
@Override
public void focusLost(@NotNull Editor editor) {
// handle blur event
}
}, disposable);