protected final CompletableFuture<NodeRenderer> getRenderer(Type type, DebugProcessImpl debugProcess) {
    DebuggerManagerThreadImpl.assertIsManagerThread();
    CompletableFuture<Boolean> customCheck = CompletableFuture.completedFuture(false);
    if (type != null && myRenderer != null) {
      customCheck = myRenderer.isApplicableAsync(type);
    }
    return customCheck.thenCompose(custom -> {
      DebuggerManagerThreadImpl.assertIsManagerThread();
      if (custom) {
        return CompletableFuture.completedFuture(myRenderer);
      }
      else {
        return DebuggerUtilsAsync.reschedule(debugProcess.getAutoRendererAsync(type))
          .thenApply(r -> myAutoRenderer = r);
      }
    });
  }
protected final CompletableFuture<NodeRenderer> getRenderer(Type type, DebugProcessImpl debugProcess)