@Override
    public void selectionChanged(@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);
      }
    }
@Override
    public void selectionChanged(@NotNull final SelectionEvent e)