@Internal
  @RequiresReadLock
  @RequiresBackgroundThread
  @Contract(pure = true)
  public final @Nls String decorate(
    @Nullable PsiElement element,
    @Nls @NotNull String text,
    @NlsSafe @Nullable String externalUrl,
    @Nullable DocumentationProvider provider
  ) {
    HtmlChunk locationInfo = getDefaultLocationInfo(element);
    return decorate(text, locationInfo, getExternalText(element, externalUrl, provider), null);
  }
@Internal
  @RequiresReadLock
  @RequiresBackgroundThread
  @Contract(pure = true)
  public final @Nls String decorate(
    @Nullable PsiElement element,
    @Nls @NotNull String text,
    @NlsSafe @Nullable String externalUrl,
    @Nullable DocumentationProvider provider
  )