@Nullable
    private @Nls String doGetDocumentation(@NotNull PsiElement element) {
      if (!element.isValid()) return null;
      SmartPsiElementPointer<?> originalPointer = element.getUserData(ORIGINAL_ELEMENT_KEY);
      PsiElement originalPsi = originalPointer != null ? originalPointer.getElement() : null;
      @Nls String doc = onHover ? provider.generateHoverDoc(element, originalPsi)
                                : provider.generateDoc(element, originalPsi);
      if (element instanceof PsiFileSystemItem) {
        @Nls String fileDoc = generateFileDoc((PsiFileSystemItem)element, doc == null);
        if (fileDoc != null) {
          return doc == null ? fileDoc : doc + fileDoc;
        }
      }
      return doc;
    }
@Nullable
    private @Nls String doGetDocumentation(@NotNull PsiElement element)