void (@NotNull final SelectionEvent e) { if (!Registry.is("debugger.valueTooltipAutoShowOnSelection") || myEditor.getCaretModel().getCaretCount() > 1 || e.getNewRanges().length != 1 || Objects.equals(e.getNewRange(), e.getOldRange())) { return; } final String text = myEditor.getDocument().getText(e.getNewRange()).trim(); if (!IGNORED_TEXTS.contains(text) && !ContainerUtil.exists(SIDE_EFFECT_PRODUCERS, text::contains)) { final XDebugSession session = getSession(myTreePanel.getTree()); if (session == null) return; XDebuggerEvaluator evaluator = myStackFrame.getEvaluator(); if (evaluator == null) return; TextRange range = e.getNewRange(); ExpressionInfo info = new ExpressionInfo(range); int offset = range.getStartOffset(); LogicalPosition pos = myEditor.offsetToLogicalPosition(offset); Point point = myEditor.logicalPositionToXY(pos); showTooltip(point, info, evaluator, session); } }