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 org.jetbrains.kotlin.idea.core.script.KotlinScriptConfigurationManager
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.script.StandardScriptDefinition
|
||||
import org.jetbrains.kotlin.script.getScriptDefinition
|
||||
|
||||
class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
|
||||
companion object {
|
||||
val USE_NULL_RESOLVE_SCOPE = "USE_NULL_RESOLVE_SCOPE"
|
||||
}
|
||||
|
||||
override fun getResolveScope(file: VirtualFile, project: Project): GlobalSearchScope? {
|
||||
val scriptDefinition = getScriptDefinition(file, project)
|
||||
// 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
|
||||
scriptDefinition.template == Any::class -> null
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.projectRoots.JavaSdk
|
||||
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
||||
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.utils.PathUtil
|
||||
import java.io.File
|
||||
@@ -35,6 +36,7 @@ class StandardKotlinScriptTemplateProvider(val project: Project) : ScriptTemplat
|
||||
|
||||
override val environment: Map<String, Any?>? get() {
|
||||
return mapOf(
|
||||
KotlinScriptResolveScopeProvider.USE_NULL_RESOLVE_SCOPE to true,
|
||||
"sdk" to getScriptSDK(project)
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user