Return old hack with returning null as file scope for standard scripts
(cherry picked from commit ef55bd1)
This commit is contained in:
committed by
Ilya Chernikov
parent
b8de78dd43
commit
2f0e7b54d5
+10
-2
@@ -22,10 +22,13 @@ import com.intellij.psi.ResolveScopeProvider
|
|||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager
|
import org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
import org.jetbrains.kotlin.script.StandardScriptDefinition
|
|
||||||
import org.jetbrains.kotlin.script.getScriptDefinition
|
import org.jetbrains.kotlin.script.getScriptDefinition
|
||||||
|
|
||||||
class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
|
class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
|
||||||
|
companion object {
|
||||||
|
val USE_NULL_RESOLVE_SCOPE = "USE_NULL_RESOLVE_SCOPE"
|
||||||
|
}
|
||||||
|
|
||||||
override fun getResolveScope(file: VirtualFile, project: Project): GlobalSearchScope? {
|
override fun getResolveScope(file: VirtualFile, project: Project): GlobalSearchScope? {
|
||||||
val scriptDefinition = getScriptDefinition(file, project)
|
val scriptDefinition = getScriptDefinition(file, project)
|
||||||
// TODO: this should get this particular scripts dependencies
|
// TODO: this should get this particular scripts dependencies
|
||||||
@@ -34,7 +37,12 @@ class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
|
|||||||
// This is a workaround for completion in scripts and REPL to provide module dependencies
|
// This is a workaround for completion in scripts and REPL to provide module dependencies
|
||||||
scriptDefinition.template == Any::class -> null
|
scriptDefinition.template == Any::class -> null
|
||||||
scriptDefinition is KotlinScriptDefinitionFromAnnotatedTemplate -> // TODO: should include the file itself
|
scriptDefinition is KotlinScriptDefinitionFromAnnotatedTemplate -> // TODO: should include the file itself
|
||||||
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
|
if (scriptDefinition.environment?.containsKey(USE_NULL_RESOLVE_SCOPE) ?: false) {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
KotlinScriptConfigurationManager.getInstance(project).getAllScriptsClasspathScope()
|
||||||
|
}
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.projectRoots.JavaSdk
|
import com.intellij.openapi.projectRoots.JavaSdk
|
||||||
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
||||||
import com.intellij.openapi.projectRoots.ex.PathUtilEx
|
import com.intellij.openapi.projectRoots.ex.PathUtilEx
|
||||||
|
import org.jetbrains.kotlin.idea.core.script.dependencies.KotlinScriptResolveScopeProvider
|
||||||
import org.jetbrains.kotlin.script.*
|
import org.jetbrains.kotlin.script.*
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -35,6 +36,7 @@ class StandardKotlinScriptTemplateProvider(val project: Project) : ScriptTemplat
|
|||||||
|
|
||||||
override val environment: Map<String, Any?>? get() {
|
override val environment: Map<String, Any?>? get() {
|
||||||
return mapOf(
|
return mapOf(
|
||||||
|
KotlinScriptResolveScopeProvider.USE_NULL_RESOLVE_SCOPE to true,
|
||||||
"sdk" to getScriptSDK(project)
|
"sdk" to getScriptSDK(project)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user