void (@NotNull Editor editor, @Nullable Caret caret, DataContext dataContext) { Runnable callOriginal = () -> { if (myOriginalHandler != null) { myOriginalHandler.execute(editor, caret, dataContext); } }; LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor); if (lookup != null && lookup.getLookupStart() == lookup.getLookupOriginalStart() && lookup.getLookupStart() == lookup.getTopLevelEditor().getCaretModel().getOffset()) { lookup.performGuardedChange(callOriginal); lookup.moveToCaretPosition(); } else { callOriginal.run(); } }