mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
show correct qualified name for classes in libraries (PY-556)
This commit is contained in:
@@ -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<T extends StubElement> 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 "";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user