@Override
    protected void perform(XValueNodeImpl node, @NotNull String nodeName, AnActionEvent e) {
      node.calculateEvaluationExpression()
        .thenAsync(expr -> {
          if (expr == null && node != myValueNode) {
            return myValueNode.calculateEvaluationExpression();
          }
          else {
            return Promises.resolvedPromise(expr);
          }
        }).onSuccess(expr -> {
          AppUIUtil.invokeOnEdt(() -> {
            XDebuggerWatchesManager manager =
              ((XDebuggerManagerImpl)XDebuggerManager.getInstance(mySession.getProject())).getWatchesManager();
            manager.showInplaceEditor(myPresentationPosition, myEditor, mySession, expr);
          });
        });
    }
@Override
    protected void perform(XValueNodeImpl node, @NotNull String nodeName, AnActionEvent e)