@Override
  protected void perform(final XValueNodeImpl node, @NotNull final String nodeName, final AnActionEvent e) {
    XValue value = node.getValueContainer();
    final XDebuggerEvaluationDialog dialog = e.getData(XDebuggerEvaluationDialog.KEY);
    XNavigatable navigatable = sourcePosition -> {
      if (sourcePosition != null) {
        final Project project = node.getTree().getProject();
        AppUIExecutor.onUiThread().expireWith(project).submit(() -> {
          sourcePosition.createNavigatable(project).navigate(true);
          if (dialog != null && Registry.is("debugger.close.dialog.on.navigate")) {
            dialog.close(DialogWrapper.CANCEL_EXIT_CODE);
          }
        });
      }
    };
    startComputingSourcePosition(value, navigatable);
  }
@Override
  protected void perform(final XValueNodeImpl node, @NotNull final String nodeName, final AnActionEvent e)