protected void doUpdateComponent(@NotNull CompletableFuture<? extends PsiElement> elementFuture,
                                   PsiElement originalElement,
                                   T component,
                                   boolean onAutoUpdate) {
    try {
      doUpdateComponent(elementFuture.get(), originalElement, component, onAutoUpdate);
    }
    catch (InterruptedException | ExecutionException e) {
      LOG.debug("Cannot update component", e);
    }
  }
protected void doUpdateComponent(@NotNull CompletableFuture<? extends PsiElement> elementFuture,
                                   PsiElement originalElement,
                                   T component,
                                   boolean onAutoUpdate)