From 2c546f31702517b577788e7f189aaa4472fb9829 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 10 Oct 2016 15:12:18 +0200 Subject: [PATCH] [java] quick navigation info for modules --- .../lang/java/JavaDocumentationProvider.java | 22 ++++++++++++++----- .../src/messages/LangBundle.properties | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java index a88239d002fa..35c2c74bcf09 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java @@ -102,6 +102,9 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement else if (element instanceof BeanPropertyElement) { return generateMethodInfo(((BeanPropertyElement)element).getMethod(), PsiSubstitutor.EMPTY); } + else if (element instanceof PsiJavaModule) { + return generateModuleInfo((PsiJavaModule)element); + } return null; } @@ -149,9 +152,9 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement return aPackage.getQualifiedName(); } - private static void generatePackageInfo(StringBuilder buffer, @NotNull PsiClass aClass) { - PsiFile file = aClass.getContainingFile(); - final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(aClass.getProject()).getFileIndex(); + private static void generateOrderEntryAndPackageInfo(StringBuilder buffer, @NotNull PsiElement element) { + PsiFile file = element.getContainingFile(); + ProjectFileIndex fileIndex = ProjectRootManager.getInstance(element.getProject()).getFileIndex(); VirtualFile vFile = file.getVirtualFile(); if (vFile != null && (fileIndex.isInLibrarySource(vFile) || fileIndex.isInLibraryClasses(vFile))) { final List orderEntries = fileIndex.getOrderEntriesForFile(vFile); @@ -182,7 +185,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement if (aClass instanceof PsiAnonymousClass) return LangBundle.message("java.terms.anonymous.class"); - generatePackageInfo(buffer, aClass); + generateOrderEntryAndPackageInfo(buffer, aClass); generateModifiers(buffer, aClass); final String classString = aClass.isAnnotationType() ? "java.terms.annotation.interface" @@ -278,7 +281,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement if (parentClass != null && !(parentClass instanceof PsiAnonymousClass)) { if (method.isConstructor()) { - generatePackageInfo(buffer, parentClass); + generateOrderEntryAndPackageInfo(buffer, parentClass); } buffer.append(JavaDocUtil.getShortestClassName(parentClass, method)); @@ -371,6 +374,13 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement return buffer.toString(); } + private static String generateModuleInfo(PsiJavaModule module) { + StringBuilder sb = new StringBuilder(); + generateOrderEntryAndPackageInfo(sb, module); + sb.append(LangBundle.message("java.terms.module")).append(' ').append(module.getModuleName()); + return sb.toString(); + } + @Override public PsiComment findExistingDocComment(final PsiComment comment) { if (comment instanceof PsiDocComment) { @@ -851,4 +861,4 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement } return null; } -} +} \ No newline at end of file diff --git a/platform/platform-resources-en/src/messages/LangBundle.properties b/platform/platform-resources-en/src/messages/LangBundle.properties index e81afa40264b..83f06fd687bc 100644 --- a/platform/platform-resources-en/src/messages/LangBundle.properties +++ b/platform/platform-resources-en/src/messages/LangBundle.properties @@ -12,6 +12,7 @@ java.terms.static.initializer=static initializer java.terms.instance.initializer=instance initializer java.terms.enum=enum java.terms.annotation.interface=@interface +java.terms.module=module java.terms.label=label java.terms.constructor=constructor terms.directory=directory