From 9fc35b48322cefe414eebcb41846b80080f825a9 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 12 Mar 2010 21:27:57 +0300 Subject: [PATCH] show correct qualified name for classes in libraries (PY-556) --- .../psi/impl/PyPresentableElementImpl.java | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/impl/PyPresentableElementImpl.java b/python/src/com/jetbrains/python/psi/impl/PyPresentableElementImpl.java index ffd6d85131e6..146619511546 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyPresentableElementImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyPresentableElementImpl.java @@ -3,13 +3,12 @@ package com.jetbrains.python.psi.impl; import com.intellij.lang.ASTNode; import com.intellij.navigation.ItemPresentation; import com.intellij.openapi.editor.colors.TextAttributesKey; -import com.intellij.openapi.vcs.impl.ExcludedFileIndex; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiNamedElement; import com.intellij.psi.stubs.IStubElementType; import com.intellij.psi.stubs.StubElement; +import com.jetbrains.python.psi.resolve.ResolveImportUtil; import javax.swing.*; @@ -52,16 +51,13 @@ public abstract class PyPresentableElementImpl extends Py protected static String getPackageForFile(final PsiFile containingFile) { final VirtualFile vFile = containingFile.getVirtualFile(); - StringBuilder result = new StringBuilder(vFile != null ? vFile.getNameWithoutExtension() : containingFile.getName()); - PsiDirectory dir = containingFile.getContainingDirectory(); - while(dir != null) { - if (!ExcludedFileIndex.getInstance(containingFile.getProject()).isInContent(dir.getVirtualFile())) { - break; + + if (vFile != null) { + final String importableName = ResolveImportUtil.findShortestImportableName(containingFile, vFile); + if (importableName != null) { + return importableName; } - if (dir.findFile("__init__.py") == null) break; - result.insert(0, dir.getName() + "."); - dir = dir.getParentDirectory(); } - return result.toString(); + return ""; } }