Restore find script definition behaviour (mostly) and relevant comments broken with refactoring
This commit is contained in:
@@ -40,7 +40,8 @@ interface ScriptDefinitionProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun PsiFile.scriptDefinition(): KotlinScriptDefinition? {
|
fun PsiFile.scriptDefinition(): KotlinScriptDefinition? {
|
||||||
if (this !is KtFile || this.script == null) return null
|
// Do not use psiFile.script, see comments in findScriptDefinition
|
||||||
|
if (this !is KtFile/* || this.script == null*/) return null
|
||||||
val file = virtualFile ?: originalFile.virtualFile ?: return null
|
val file = virtualFile ?: originalFile.virtualFile ?: return null
|
||||||
if (file.isNonScript()) return null
|
if (file.isNonScript()) return null
|
||||||
|
|
||||||
@@ -49,7 +50,10 @@ fun PsiFile.scriptDefinition(): KotlinScriptDefinition? {
|
|||||||
|
|
||||||
fun findScriptDefinition(file: VirtualFile, project: Project): KotlinScriptDefinition? {
|
fun findScriptDefinition(file: VirtualFile, project: Project): KotlinScriptDefinition? {
|
||||||
if (file.isNonScript()) return null
|
if (file.isNonScript()) return null
|
||||||
if ((PsiManager.getInstance(project).findFile(file) as? KtFile)?.script == null) return null
|
// Do not use psiFile.script here because this method can be called during indexes access
|
||||||
|
// and accessing stubs may cause deadlock
|
||||||
|
// TODO: measure performace effect and if necessary consider detecting indexing here or using separate logic for non-IDE operations to speed up filtering
|
||||||
|
if ((PsiManager.getInstance(project).findFile(file) as? KtFile)/*?.script*/ == null) return null
|
||||||
|
|
||||||
return scriptDefinitionByFileName(project, file.name)
|
return scriptDefinitionByFileName(project, file.name)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user