void (@NotNull final AnActionEvent event) { InputEvent inputEvent = event.getInputEvent(); boolean isMouseShortcut = inputEvent instanceof MouseEvent && ActionPlaces.MOUSE_SHORTCUT.equals(event.getPlace()); if (event.getProject() == null || event.getData(EditorGutter.KEY) != null || !isMouseShortcut && Boolean.TRUE.equals(event.getData(CommonDataKeys.EDITOR_VIRTUAL_SPACE))) { event.getPresentation().setEnabled(false); return; } Editor editor = event.getData(CommonDataKeys.EDITOR); if (editor != null && isMouseShortcut && !Boolean.TRUE.equals(event.getUpdateSession().compute(this, "isPointOverText", ActionUpdateThread.EDT, () -> event.getData(PlatformDataKeys.EDITOR_CLICK_OVER_TEXT)))) { event.getPresentation().setEnabled(false); return; } for (GotoDeclarationHandler handler : GotoDeclarationHandler.EP_NAME.getExtensionList()) { String text = handler.getActionText(event.getDataContext()); if (text != null) { Presentation presentation = event.getPresentation(); presentation.setText(text); break; } } super.update(event); }