From 5b63ca94f1f7bc996827a051f474ac94e587c7e4 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 28 Aug 2013 15:24:43 +0200 Subject: [PATCH] decouple QualifiedNameResolver from DjangoFacetType --- .../jetbrains/python/buildout/BuildoutFacet.java | 5 +++++ .../python/facet/PythonPathContributingFacet.java | 1 + .../psi/resolve/QualifiedNameResolverImpl.java | 13 +++++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/buildout/BuildoutFacet.java b/python/src/com/jetbrains/python/buildout/BuildoutFacet.java index 5fae6a5be5f7..fb543e974811 100644 --- a/python/src/com/jetbrains/python/buildout/BuildoutFacet.java +++ b/python/src/com/jetbrains/python/buildout/BuildoutFacet.java @@ -236,6 +236,11 @@ public class BuildoutFacet extends Facet implements return cfg.getPaths(); } + @Override + public boolean acceptRootAsTopLevelPackage() { + return false; + } + @Nullable public static BuildoutFacet getInstance(Module module) { return FacetManager.getInstance(module).getFacetByType(BuildoutFacetType.ID); diff --git a/python/src/com/jetbrains/python/facet/PythonPathContributingFacet.java b/python/src/com/jetbrains/python/facet/PythonPathContributingFacet.java index 7bba6c11715b..2e97f4489b56 100644 --- a/python/src/com/jetbrains/python/facet/PythonPathContributingFacet.java +++ b/python/src/com/jetbrains/python/facet/PythonPathContributingFacet.java @@ -7,4 +7,5 @@ import java.util.List; */ public interface PythonPathContributingFacet { List getAdditionalPythonPath(); + boolean acceptRootAsTopLevelPackage(); } diff --git a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java index 8805c46f333e..4be01fc8b508 100644 --- a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java +++ b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java @@ -2,6 +2,7 @@ package com.jetbrains.python.psi.resolve; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.intellij.facet.Facet; import com.intellij.facet.FacetManager; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; @@ -12,9 +13,9 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.jetbrains.django.facet.DjangoFacetType; import com.jetbrains.python.codeInsight.userSkeletons.PyUserSkeletonsUtil; import com.jetbrains.python.console.PydevConsoleRunner; +import com.jetbrains.python.facet.PythonPathContributingFacet; import com.jetbrains.python.psi.impl.PyBuiltinCache; import com.jetbrains.python.psi.impl.PyImportResolver; import com.jetbrains.python.psi.impl.PyQualifiedName; @@ -86,7 +87,15 @@ public class QualifiedNameResolverImpl implements RootVisitor, QualifiedNameReso private boolean isAcceptRootAsTopLevelPackage() { Module module = myContext.getModule(); - return module != null && FacetManager.getInstance(module).getFacetByType(DjangoFacetType.ID) != null; + if (module != null) { + Facet[] facets = FacetManager.getInstance(module).getAllFacets(); + for (Facet facet : facets) { + if (facet instanceof PythonPathContributingFacet && ((PythonPathContributingFacet)facet).acceptRootAsTopLevelPackage()) { + return true; + } + } + } + return false; } @Override