diff --git a/python/python-psi-impl/resources/intellij.python.psi.impl.xml b/python/python-psi-impl/resources/intellij.python.psi.impl.xml index 2d48452f760c..661b25ab35e5 100644 --- a/python/python-psi-impl/resources/intellij.python.psi.impl.xml +++ b/python/python-psi-impl/resources/intellij.python.psi.impl.xml @@ -44,6 +44,7 @@ + diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java index cc71b00ef9f5..a7d4e4ee7aeb 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/PyFileElementType.java @@ -60,7 +60,7 @@ public class PyFileElementType extends IStubFileElementType { @Override public int getStubVersion() { // Don't forget to update versions of indexes that use the updated stub-based elements - return 101; + return 102; } @Override diff --git a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java index 92108ba841b3..9581b15c73b4 100644 --- a/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java +++ b/python/python-psi-impl/src/com/jetbrains/python/psi/impl/stubs/PyImportElementElementType.java @@ -3,10 +3,7 @@ package com.jetbrains.python.psi.impl.stubs; import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElement; -import com.intellij.psi.stubs.IStubElementType; -import com.intellij.psi.stubs.StubElement; -import com.intellij.psi.stubs.StubInputStream; -import com.intellij.psi.stubs.StubOutputStream; +import com.intellij.psi.stubs.*; import com.intellij.psi.util.QualifiedName; import com.jetbrains.python.PyStubElementTypes; import com.jetbrains.python.psi.PyImportElement; @@ -14,6 +11,7 @@ import com.jetbrains.python.psi.PyStubElementType; import com.jetbrains.python.psi.PyTargetExpression; import com.jetbrains.python.psi.impl.PyImportElementImpl; import com.jetbrains.python.psi.stubs.PyImportElementStub; +import com.jetbrains.python.psi.stubs.PyImportNameIndex; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -45,6 +43,14 @@ public class PyImportElementElementType extends PyStubElementType() { + companion object { + @JvmField + val KEY: StubIndexKey = StubIndexKey.createIndexKey("python.import.name") + + fun containsImport(name: String, project: Project): Boolean { + val projectScope = GlobalSearchScope.projectScope(project) + var found = false + StubIndex.getInstance().processElements(KEY, name, project, projectScope, PyImportElement::class.java) { + found = true + return@processElements false + } + return found + } + } + + override fun getKey(): StubIndexKey = KEY +} \ No newline at end of file