@@ -41,18 +41,16 @@ data class ScriptModuleInfo(val project: Project, val scriptFile: VirtualFile,
41
41
override val moduleOrigin: ModuleOrigin
42
42
get() = ModuleOrigin .OTHER
43
43
44
- val externalDependencies by lazy {
45
- KotlinScriptExternalImportsProvider .getInstance(project)?.getExternalImports(scriptFile)
46
- }
44
+ val externalDependencies: KotlinScriptExternalDependencies ?
45
+ get() = KotlinScriptExternalImportsProvider .getInstance(project)?.getExternalImports(scriptFile)
47
46
48
47
override val name: Name = Name .special(" <script ${scriptFile.name} ${scriptDefinition.name} >" )
49
48
50
49
override fun contentScope () = GlobalSearchScope .fileScope(project, scriptFile)
51
50
52
51
override fun dependencies (): List <IdeaModuleInfo > {
53
52
return listOf (
54
- this ,
55
- ScriptDependenciesModuleInfo (project, externalDependencies, this )
53
+ this , ScriptDependenciesModuleInfo (project, this )
56
54
) + sdkDependencies(externalDependencies, project)
57
55
}
58
56
}
@@ -72,26 +70,26 @@ fun findJdk(dependencies: KotlinScriptExternalDependencies?, project: Project):
72
70
73
71
class ScriptDependenciesModuleInfo (
74
72
val project : Project ,
75
- val dependencies : KotlinScriptExternalDependencies ? ,
76
73
val scriptModuleInfo : ScriptModuleInfo ?
77
- ): IdeaModuleInfo, BinaryModuleInfo {
78
- override fun dependencies () = (listOf (this ) + sdkDependencies(dependencies , project))
74
+ ) : IdeaModuleInfo, BinaryModuleInfo {
75
+ override fun dependencies () = (listOf (this ) + sdkDependencies(scriptModuleInfo?.externalDependencies , project))
79
76
80
77
override val name = Name .special(" <Script dependencies>" )
81
78
82
79
override fun contentScope (): GlobalSearchScope {
83
- if (dependencies == null ) {
80
+ if (scriptModuleInfo == null ) {
84
81
// we do not know which scripts these dependencies are
85
82
return KotlinSourceFilterScope .libraryClassFiles(
86
83
KotlinScriptConfigurationManager .getInstance(project).getAllScriptsClasspathScope(), project
87
84
)
88
85
}
89
- val classpath = KotlinScriptConfigurationManager .toVfsRoots(dependencies.classpath)
86
+ val roots = scriptModuleInfo.externalDependencies?.classpath ? : emptyList()
87
+ val classpath = KotlinScriptConfigurationManager .toVfsRoots(roots)
90
88
// TODO: this is not very efficient because KotlinSourceFilterScope already checks if the files are in scripts classpath
91
89
return KotlinSourceFilterScope .libraryClassFiles(NonClasspathDirectoriesScope (classpath), project)
92
90
}
93
91
94
- // NOTE: intentionally not taking dependencies into account
92
+ // NOTE: intentionally not taking corresponding script info into account
95
93
// otherwise there is no way to implement getModuleInfo
96
94
override fun hashCode () = project.hashCode()
97
95
override fun equals (other : Any? ): Boolean = other is ScriptDependenciesModuleInfo && this .project == other.project
@@ -105,11 +103,11 @@ class ScriptDependenciesModuleInfo(
105
103
106
104
data class ScriptDependenciesSourceModuleInfo (
107
105
val project : Project
108
- ): IdeaModuleInfo, SourceForBinaryModuleInfo {
106
+ ) : IdeaModuleInfo, SourceForBinaryModuleInfo {
109
107
override val name = Name .special(" <Source for script dependencies>" )
110
108
111
109
override val binariesModuleInfo: ScriptDependenciesModuleInfo
112
- get() = ScriptDependenciesModuleInfo (project, null , null )
110
+ get() = ScriptDependenciesModuleInfo (project, null )
113
111
114
112
override fun sourceScope (): GlobalSearchScope = KotlinSourceFilterScope .librarySources(
115
113
KotlinScriptConfigurationManager .getInstance(project).getAllLibrarySourcesScope(), project
0 commit comments