void (@NotNull EditorEx editor) { editor.addEditorMouseListener(myEditorMouseMulticaster.getMulticaster()); editor.addEditorMouseListener(new EditorMouseListener() { @Override public void mousePressed(@NotNull EditorMouseEvent event) { MOUSE_EP.forEachExtensionSafe(it -> it.mousePressed(event)); } @Override public void mouseClicked(@NotNull EditorMouseEvent event) { MOUSE_EP.forEachExtensionSafe(it -> it.mouseClicked(event)); } @Override public void mouseReleased(@NotNull EditorMouseEvent event) { MOUSE_EP.forEachExtensionSafe(it -> it.mouseReleased(event)); } @Override public void mouseEntered(@NotNull EditorMouseEvent event) { MOUSE_EP.forEachExtensionSafe(it -> it.mouseEntered(event)); } @Override public void mouseExited(@NotNull EditorMouseEvent event) { MOUSE_EP.forEachExtensionSafe(it -> it.mouseExited(event)); } }); editor.addEditorMouseMotionListener(myEditorMouseMotionMulticaster.getMulticaster()); editor.addEditorMouseMotionListener(new EditorMouseMotionListener() { @Override public void mouseMoved(@NotNull EditorMouseEvent event) { MOUSE_MOTION_EP.forEachExtensionSafe(it -> it.mouseMoved(event)); } @Override public void mouseDragged(@NotNull EditorMouseEvent event) { MOUSE_MOTION_EP.forEachExtensionSafe(it -> it.mouseDragged(event)); } }); ((EditorMarkupModel) editor.getMarkupModel()).addErrorMarkerListener(myErrorStripeMulticaster.getMulticaster(), ((EditorImpl)editor).getDisposable()); editor.getCaretModel().addCaretListener(myCaretMulticaster.getMulticaster()); editor.getSelectionModel().addSelectionListener(mySelectionMulticaster.getMulticaster()); editor.getScrollingModel().addVisibleAreaListener(myVisibleAreaMulticaster.getMulticaster()); editor.addPropertyChangeListener(myPropertyChangeMulticaster.getMulticaster()); editor.addFocusListener(myFocusChangeListenerMulticaster.getMulticaster()); }