Scripts: search for script definition using PsiFile instead of file name
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
|
|||||||
import org.jetbrains.kotlin.idea.util.isKotlinBinary
|
import org.jetbrains.kotlin.idea.util.isKotlinBinary
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||||
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinitionByFileName
|
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import org.jetbrains.kotlin.utils.sure
|
import org.jetbrains.kotlin.utils.sure
|
||||||
import org.jetbrains.kotlin.utils.yieldIfNotNull
|
import org.jetbrains.kotlin.utils.yieldIfNotNull
|
||||||
@@ -174,8 +174,10 @@ private fun <T> PsiElement.collectInfos(c: ModuleInfoCollector<T>): T {
|
|||||||
return c.onResult(it)
|
return c.onResult(it)
|
||||||
}
|
}
|
||||||
containingKtFile.script?.let {
|
containingKtFile.script?.let {
|
||||||
val definition = findScriptDefinitionByFileName(project, containingKtFile.name)
|
val definition = containingKtFile.findScriptDefinition()
|
||||||
return c.onResult(ScriptModuleInfo(project, virtualFile, definition))
|
if (definition != null) {
|
||||||
|
return c.onResult(ScriptModuleInfo(project, virtualFile, definition))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@ fun VirtualFile.findScriptDefinition(project: Project): ScriptDefinition? {
|
|||||||
return findScriptDefinitionByFilePath(project, File(path))
|
return findScriptDefinitionByFilePath(project, File(path))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun findScriptDefinitionByFilePath(project: Project, file: File): ScriptDefinition {
|
private fun findScriptDefinitionByFilePath(project: Project, file: File): ScriptDefinition {
|
||||||
val scriptDefinitionProvider = ScriptDefinitionProvider.getInstance(project) ?: return null
|
val scriptDefinitionProvider = ScriptDefinitionProvider.getInstance(project) ?: return null
|
||||||
?: throw IllegalStateException("Unable to get script definition: ScriptDefinitionProvider is not configured.")
|
?: throw IllegalStateException("Unable to get script definition: ScriptDefinitionProvider is not configured.")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user