From ec037665f6b4209ab70262e35ca78e7d7197e0c8 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 8 Aug 2012 11:49:17 +0200 Subject: [PATCH] pass Project to isFrameworkInstalled(); working implementation of qname resolution in SDK only --- .../python/newProject/PyFrameworkProjectGenerator.java | 3 ++- .../python/psi/resolve/QualifiedNameResolver.java | 3 +++ .../python/psi/resolve/QualifiedNameResolverImpl.java | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/python/openapi/src/com/jetbrains/python/newProject/PyFrameworkProjectGenerator.java b/python/openapi/src/com/jetbrains/python/newProject/PyFrameworkProjectGenerator.java index 04e0f5e9455d..54ca4af850b3 100644 --- a/python/openapi/src/com/jetbrains/python/newProject/PyFrameworkProjectGenerator.java +++ b/python/openapi/src/com/jetbrains/python/newProject/PyFrameworkProjectGenerator.java @@ -1,5 +1,6 @@ package com.jetbrains.python.newProject; +import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.platform.DirectoryProjectGenerator; @@ -9,5 +10,5 @@ import com.intellij.platform.DirectoryProjectGenerator; public interface PyFrameworkProjectGenerator extends DirectoryProjectGenerator { String getFrameworkTitle(); - boolean isFrameworkInstalled(Sdk sdk); + boolean isFrameworkInstalled(Project project, Sdk sdk); } diff --git a/python/psi-api/src/com/jetbrains/python/psi/resolve/QualifiedNameResolver.java b/python/psi-api/src/com/jetbrains/python/psi/resolve/QualifiedNameResolver.java index 79dcc9402eaf..f5b8ff21e539 100644 --- a/python/psi-api/src/com/jetbrains/python/psi/resolve/QualifiedNameResolver.java +++ b/python/psi-api/src/com/jetbrains/python/psi/resolve/QualifiedNameResolver.java @@ -1,6 +1,7 @@ package com.jetbrains.python.psi.resolve; import com.intellij.openapi.module.Module; +import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFileSystemItem; @@ -17,6 +18,8 @@ public interface QualifiedNameResolver { QualifiedNameResolver fromModule(@NotNull Module module); + QualifiedNameResolver fromSdk(@NotNull Project project, @NotNull Sdk sdk); + QualifiedNameResolver withAllModules(); QualifiedNameResolver withSdk(Sdk sdk); diff --git a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java index 837a1664c97d..e0fadc2a31de 100644 --- a/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java +++ b/python/src/com/jetbrains/python/psi/resolve/QualifiedNameResolverImpl.java @@ -6,6 +6,7 @@ import com.intellij.facet.FacetManager; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.ModuleUtilCore; +import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; @@ -72,6 +73,13 @@ public class QualifiedNameResolverImpl implements RootVisitor, QualifiedNameReso return this; } + @Override + public QualifiedNameResolver fromSdk(@NotNull Project project, @NotNull Sdk sdk) { + myPsiManager = PsiManager.getInstance(project); + myWithSdk = sdk; + return this; + } + private void setModule(@Nullable Module module) { myModule = module; if (module != null && FacetManager.getInstance(module).getFacetByType(DjangoFacetType.ID) != null) {