From b0c9339deea5feb0a882ac288e9048b9b35d37c2 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Tue, 9 Jul 2019 12:50:59 +0300 Subject: [PATCH] Scripts: search for script definition using PsiFile instead of file name --- .../kotlin/idea/caches/project/getModuleInfo.kt | 10 ++++++---- .../kotlin/scripting/definitions/definitions.kt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt index cda63161254..0b8e464f536 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/getModuleInfo.kt @@ -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. */ @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected import org.jetbrains.kotlin.idea.util.isKotlinBinary import org.jetbrains.kotlin.psi.* 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.sure import org.jetbrains.kotlin.utils.yieldIfNotNull @@ -174,8 +174,10 @@ private fun PsiElement.collectInfos(c: ModuleInfoCollector): T { return c.onResult(it) } containingKtFile.script?.let { - val definition = findScriptDefinitionByFileName(project, containingKtFile.name) - return c.onResult(ScriptModuleInfo(project, virtualFile, definition)) + val definition = containingKtFile.findScriptDefinition() + if (definition != null) { + return c.onResult(ScriptModuleInfo(project, virtualFile, definition)) + } } } diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/definitions.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/definitions.kt index c1aada73ee4..76d39a909ce 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/definitions.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/definitions.kt @@ -41,7 +41,7 @@ fun VirtualFile.findScriptDefinition(project: Project): ScriptDefinition? { 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 ?: throw IllegalStateException("Unable to get script definition: ScriptDefinitionProvider is not configured.")