enable documentation for directories according to containing files (IDEA-65679 )

This commit is contained in:
anna
2011-02-23 12:31:26 +01:00
parent 5d9f4ef818
commit 53fbb28fda
3 changed files with 19 additions and 3 deletions
@@ -221,6 +221,11 @@ public class JavaDocInfoGenerator {
else if (myElement instanceof PsiVariable) {
generateVariableJavaDoc(buffer, (PsiVariable)myElement);
}
else if (myElement instanceof PsiDirectory) {
final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage((PsiDirectory)myElement);
if (aPackage == null) return null;
generatePackageJavaDoc(buffer, aPackage);
}
else if (myElement instanceof PsiPackage) {
generatePackageJavaDoc(buffer, (PsiPackage) myElement);
} else {
@@ -21,6 +21,7 @@ package com.intellij.lang;
import com.intellij.lang.documentation.CompositeDocumentationProvider;
import com.intellij.lang.documentation.DocumentationProvider;
import org.jetbrains.annotations.NonNls;
import java.util.List;
@@ -43,6 +43,7 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.OrderEntry;
@@ -78,10 +79,8 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.*;
import java.util.List;
import java.util.Set;
public class DocumentationManager {
private static final Logger LOG = Logger.getInstance("#" + DocumentationManager.class.getName());
@@ -802,6 +801,17 @@ public class DocumentationManager {
result.add(LanguageDocumentation.INSTANCE.forLanguage(baseLanguage));
}
}
else if (element instanceof PsiDirectory) {
final Set<Language> langs = new HashSet<Language>();
for (PsiFile file : ((PsiDirectory)element).getFiles()) {
final Language baseLanguage = file.getViewProvider().getBaseLanguage();
if (!langs.contains(baseLanguage)) {
langs.add(baseLanguage);
result.add(LanguageDocumentation.INSTANCE.forLanguage(baseLanguage));
}
}
}
return CompositeDocumentationProvider.wrapProviders(result);
}