Scripts: provide more concrete scope for files from script dependencies

This commit is contained in:
Natalia Selezneva
2019-05-31 16:01:17 +03:00
parent 213b0a37d1
commit 233c37db57
@@ -34,15 +34,14 @@ class KotlinScriptResolveScopeProvider : ResolveScopeProvider() {
override fun getResolveScope(file: VirtualFile, project: Project): GlobalSearchScope? {
val scriptDefinition = file.findScriptDefinition(project)
// TODO: this should get this particular scripts dependencies
return when {
scriptDefinition == null -> null
// This is a workaround for completion in scripts and REPL to provide module dependencies
scriptDefinition.baseClassType.fromClass == Any::class -> null
scriptDefinition.asLegacyOrNull<StandardIdeScriptDefinition>() != null -> null
scriptDefinition is ScriptDefinition.FromConfigurations || scriptDefinition.asLegacyOrNull<KotlinScriptDefinitionFromAnnotatedTemplate>() != null -> {
// TODO: should include the file itself
ScriptDependenciesManager.getInstance(project).getAllScriptsDependenciesClassFilesScope()
GlobalSearchScope.fileScope(project, file)
.union(ScriptDependenciesManager.getInstance(project).getScriptDependenciesClassFilesScope(file))
}
else -> null
}