From e8628dfd6d17f8bf1f752832447a0023163db3bc Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 9 Sep 2015 20:23:37 +0300 Subject: [PATCH] quick definitions: show location string when applicable (IDEA-22690) --- .../hint/ImplementationViewComponent.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java index 4c6af43a5027..c00378dd71fe 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/hint/ImplementationViewComponent.java @@ -36,6 +36,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComboBox; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FileStatusManager; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; @@ -100,23 +101,19 @@ public class ImplementationViewComponent extends JPanel { private static class FileDescriptor { public final PsiFile myFile; public final String myElementPresentation; + private final String myLocationString; public FileDescriptor(PsiFile file, PsiElement element) { myFile = file; - myElementPresentation = getPresentation(element); - } - - @Nullable - private static String getPresentation(PsiElement element) { - if (element instanceof NavigationItem) { - final ItemPresentation presentation = ((NavigationItem)element).getPresentation(); - if (presentation != null) { - return presentation.getPresentableText(); - } + final ItemPresentation presentation = element instanceof NavigationItem ? ((NavigationItem)element).getPresentation() : null; + if (presentation != null) { + myElementPresentation = presentation.getPresentableText(); + myLocationString = presentation.getLocationString(); + } + else { + myElementPresentation = element instanceof PsiNamedElement ? ((PsiNamedElement)element).getName() : null; + myLocationString = null; } - - if (element instanceof PsiNamedElement) return ((PsiNamedElement)element).getName(); - return null; } public String getPresentableName(VirtualFile vFile) { @@ -126,7 +123,7 @@ public class ImplementationViewComponent extends JPanel { } if (Comparing.strEqual(vFile.getName(), myElementPresentation + "." + vFile.getExtension())){ - return presentableName; + return presentableName + (!StringUtil.isEmptyOrSpaces(myLocationString) ? " " + myLocationString : ""); } return presentableName + " (" + myElementPresentation + ")";