From 80af30fb4f07bbccc3cc0148703672a07962a154 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 10 Jan 2017 16:40:49 +0300 Subject: [PATCH] Always remove extension from script file Fix for 35631dc2dfb3f5ef13a68bc4566167793291686e refactoring. Extension was actually always removed before refactoring. --- .../kotlin/script/KotlinScriptDefinition.kt | 2 +- .../KotlinScriptDefinitionFromAnnotatedTemplate.kt | 2 +- .../org/jetbrains/kotlin/script/ScriptNameUtil.kt | 12 ++++-------- .../KotlinStandaloneScriptRunConfiguration.kt | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinition.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinition.kt index f83c3458ec3..d8d443bdb47 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinition.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinition.kt @@ -41,7 +41,7 @@ open class KotlinScriptDefinition(val template: KClass) { getFileName(file).endsWith(KotlinParserDefinition.STD_SCRIPT_EXT) open fun getScriptName(script: KtScript): Name = - ScriptNameUtil.fileNameWithExtensionStripped(script, KotlinParserDefinition.STD_SCRIPT_EXT) + ScriptNameUtil.fileNameWithExtensionStripped(script) open fun getDependenciesFor(file: TF, project: Project, previousDependencies: KotlinScriptExternalDependencies?): KotlinScriptExternalDependencies? = null } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt index c71341967cd..53c6a59e7e6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/KotlinScriptDefinitionFromAnnotatedTemplate.kt @@ -85,7 +85,7 @@ open class KotlinScriptDefinitionFromAnnotatedTemplate( scriptFilePattern.let { Regex(it).matches(getFileName(file)) } // TODO: implement other strategy - e.g. try to extract something from match with ScriptFilePattern - override fun getScriptName(script: KtScript): Name = ScriptNameUtil.fileNameWithExtensionStripped(script, KotlinParserDefinition.STD_SCRIPT_EXT) + override fun getScriptName(script: KtScript): Name = ScriptNameUtil.fileNameWithExtensionStripped(script) override fun getDependenciesFor(file: TF, project: Project, previousDependencies: KotlinScriptExternalDependencies?): KotlinScriptExternalDependencies? { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.kt b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.kt index 8e95f5e734e..3c12bcd448e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.kt @@ -18,18 +18,14 @@ package org.jetbrains.kotlin.script import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtScript -import org.jetbrains.kotlin.utils.addToStdlib.lastIndexOfOrNull object ScriptNameUtil { - fun fileNameWithExtensionStripped(script: KtScript, vararg extensions: String): Name = - Name.identifier(generateNameByFileName(script.containingKtFile.name, *extensions)) + fun fileNameWithExtensionStripped(script: KtScript): Name = + Name.identifier(generateNameByFileName(script.containingKtFile.name)) - fun generateNameByFileName(filePath: String, vararg extensions: String): String { + fun generateNameByFileName(filePath: String): String { val fileName = filePath.substringAfterLast('/') - val nameWithoutExtension = extensions.asSequence() - .map { if (it.startsWith('.')) it else ".$it" } - .firstOrNull { fileName.endsWith(it) }?.let { fileName.removeSuffix(it) } - ?: fileName + val nameWithoutExtension = fileName.substringBeforeLast('.') return nameWithoutExtension .replace('.', '_') .capitalize() diff --git a/idea/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfiguration.kt b/idea/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfiguration.kt index 9312694351d..ba559db8daf 100644 --- a/idea/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfiguration.kt +++ b/idea/src/org/jetbrains/kotlin/idea/run/script/standalone/KotlinStandaloneScriptRunConfiguration.kt @@ -188,7 +188,7 @@ private class ScriptCommandLineState( override fun createJavaParameters(): JavaParameters? { val params = commonParameters() - + val filePath = configuration.filePath ?: throw CantRunException("Script file was not specified") val scriptVFile = LocalFileSystem.getInstance().findFileByIoFile(File(filePath)) ?: throw CantRunException("Script file was not found in project")