diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index fb530f1d47a..7a47fca9ece 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -20,6 +20,7 @@ import com.intellij.diagnostic.PluginException import com.intellij.execution.console.IdeConsoleRootType import com.intellij.ide.plugins.PluginManagerCore import com.intellij.ide.scratch.ScratchFileService +import com.intellij.ide.scratch.ScratchRootType import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.runWriteAction import com.intellij.openapi.components.ServiceManager @@ -77,7 +78,14 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit val cached = scriptDefinitionsCacheLock.write { scriptDefinitionsCache.get(file) } if (cached != null) return cached - val definition = super.findDefinition(file) ?: return null + val virtualFile = VfsUtil.findFileByIoFile(file, true) + val definition = + if (virtualFile != null && ScratchFileService.getInstance().getRootType(virtualFile) is ScratchRootType) { + // Scratch should always have default script definition + getDefaultDefinition() + } else { + super.findDefinition(file) ?: return null + } scriptDefinitionsCacheLock.write { scriptDefinitionsCache.put(file, definition)