void (@NotNull EditorMouseEvent e) { if (e.isConsumed()) { return; } Editor editor = e.getEditor(); if (editor.getProject() != null && editor.getProject() != myProject) { return; } ValueHintType type = AbstractValueHint.getHintType(e); if (e.getArea() != EditorMouseEventArea.EDITING_AREA || DISABLE_VALUE_LOOKUP.get(editor) == Boolean.TRUE || type == null) { cancelAll(); return; } if (type == ValueHintType.MOUSE_OVER_HINT && !ApplicationManager.getApplication().isActive()) { hideHint(); return; } if (type != ValueHintType.MOUSE_CLICK_HINT) { // click should always trigger a new hint if ((myHintRequest != null && myHintRequest.type == ValueHintType.MOUSE_CLICK_HINT) || (myCurrentHint != null && myCurrentHint.getType() == ValueHintType.MOUSE_CLICK_HINT)) { return; } } Point point = e.getMouseEvent().getPoint(); for (DebuggerSupport support : DebuggerSupport.getDebuggerSupports()) { QuickEvaluateHandler handler = support.getQuickEvaluateHandler(); if (handler.isEnabled(myProject)) { requestHint(handler, editor, point, e, type); return; } } // if no providers were triggered - hide hideHint(); }