@Nls
  @Contract("_, _, _, null -> null")
  public static String inferLinkFromFullDocumentation(@NotNull DocumentationProvider provider,
                                                      PsiElement element,
                                                      PsiElement originalElement,
                                                      @Nullable @Nls String navigationInfo) {
    if (navigationInfo != null) {
      String fqn = element instanceof PsiQualifiedNamedElement ? ((PsiQualifiedNamedElement)element).getQualifiedName() : null;
      String fullText = provider.generateDoc(element, originalElement);
      return HintUtil.prepareHintText(DocPreviewUtil.buildPreview(navigationInfo, fqn, fullText), HintUtil.getInformationHint());
    }
    return null;
  }
@Nls
  @Contract("_, _, _, null -> null")
  public static String inferLinkFromFullDocumentation(@NotNull DocumentationProvider provider,
                                                      PsiElement element,
                                                      PsiElement originalElement,
                                                      @Nullable @Nls String navigationInfo)