mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
PY-71562 Make python support for FileIndexableEntitiesProvider
GitOrigin-RevId: 62f8c2b18d0d6b0988a85e4adf320f4200212fd0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cec889ca95
commit
157e636bea
1
.idea/modules.xml
generated
1
.idea/modules.xml
generated
@@ -1183,6 +1183,7 @@
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/intellij.searchEverywhereMl.semantics.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/intellij.searchEverywhereMl.semantics.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/java/intellij.searchEverywhereMl.semantics.java.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/java/intellij.searchEverywhereMl.semantics.java.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/kotlin/intellij.searchEverywhereMl.semantics.kotlin.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/kotlin/intellij.searchEverywhereMl.semantics.kotlin.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/python/intellij.searchEverywhereMl.semantics.python.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/python/intellij.searchEverywhereMl.semantics.python.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/test-commands/intellij.searchEverywhereMl.semantics.testCommands.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/test-commands/intellij.searchEverywhereMl.semantics.testCommands.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/tests/intellij.searchEverywhereMl.semantics.tests.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/semantics/tests/intellij.searchEverywhereMl.semantics.tests.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/plugins/search-everywhere-ml/typos/intellij.searchEverywhereMl.typos.iml" filepath="$PROJECT_DIR$/plugins/search-everywhere-ml/typos/intellij.searchEverywhereMl.typos.iml" />
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
<orderEntry type="module" module-name="intellij.searchEverywhereMl.typos" scope="TEST" />
|
||||
<orderEntry type="module" module-name="intellij.searchEverywhereMl.semantics.java" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.searchEverywhereMl.semantics.kotlin" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.searchEverywhereMl.semantics.python" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.toml" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.tracing.ide" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.notebooks.visualization" scope="RUNTIME" />
|
||||
|
||||
@@ -292,6 +292,7 @@ object CommunityRepositoryModules {
|
||||
)) { spec ->
|
||||
spec.withModule("intellij.searchEverywhereMl.semantics.java")
|
||||
spec.withModule("intellij.searchEverywhereMl.semantics.kotlin")
|
||||
spec.withModule("intellij.searchEverywhereMl.semantics.python")
|
||||
spec.withModule("intellij.searchEverywhereMl.semantics.testCommands")
|
||||
},
|
||||
plugin("intellij.platform.testFramework.ui") { spec ->
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<module name="intellij.searchEverywhereMl.semantics"/>
|
||||
<module name="intellij.searchEverywhereMl.semantics.java"/>
|
||||
<module name="intellij.searchEverywhereMl.semantics.kotlin"/>
|
||||
<module name="intellij.searchEverywhereMl.semantics.python"/>
|
||||
<module name="intellij.searchEverywhereMl.semantics.testCommands"/>
|
||||
</content>
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="kotlin-stdlib" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ml.embeddings" />
|
||||
<orderEntry type="module" module-name="intellij.python.psi" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1,12 @@
|
||||
<idea-plugin package="com.intellij.searchEverywhereMl.semantics.python">
|
||||
<dependencies>
|
||||
<plugin id="com.intellij.modules.python"/>
|
||||
<module name="intellij.python.community.impl"/>
|
||||
<module name="intellij.searchEverywhereMl.semantics"/>
|
||||
</dependencies>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij.searcheverywhere.ml">
|
||||
<fileIndexableEntitiesProvider
|
||||
implementation="com.intellij.searchEverywhereMl.semantics.python.PythonIndexableEntitiesProvider"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.intellij.searchEverywhereMl.semantics.python
|
||||
|
||||
import com.intellij.platform.ml.embeddings.search.indices.FileIndexableEntitiesProvider
|
||||
import com.intellij.platform.ml.embeddings.search.services.IndexableClass
|
||||
import com.intellij.platform.ml.embeddings.search.services.IndexableSymbol
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
import com.jetbrains.python.psi.PyClass
|
||||
import com.jetbrains.python.psi.PyFile
|
||||
import com.jetbrains.python.psi.PyFunction
|
||||
|
||||
class PythonIndexableEntitiesProvider : FileIndexableEntitiesProvider {
|
||||
override fun extractIndexableSymbols(file: PsiFile): List<IndexableSymbol> {
|
||||
return when (file) {
|
||||
is PyFile -> PsiTreeUtil.findChildrenOfAnyType(file, false, PyFunction::class.java)
|
||||
.filter { it.name != ANONYMOUS_ID }
|
||||
.map { IndexableSymbol(it.name?.intern() ?: "") }
|
||||
else -> emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
override fun extractIndexableClasses(file: PsiFile): List<IndexableClass> {
|
||||
return when (file) {
|
||||
is PyFile -> PsiTreeUtil.getStubChildrenOfTypeAsList(file, PyClass::class.java)
|
||||
.filter { it.name != ANONYMOUS_ID }
|
||||
.map { IndexableClass(it.name?.intern() ?: "") }
|
||||
else -> emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ANONYMOUS_ID = "<anonymous>"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user