diff --git a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.java b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.java index ebbfe9d8902..e95e1fd562d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/script/ScriptNameUtil.java @@ -28,22 +28,26 @@ public class ScriptNameUtil { @NotNull public static Name fileNameWithExtensionStripped(@NotNull KtScript script, @NotNull String extension) { KtFile file = script.getContainingKtFile(); - String name = file.getName(); - int index = name.lastIndexOf('/'); + return Name.identifier(generateNameByFileName(file.getName(), extension)); + } + + @NotNull + public static String generateNameByFileName(@NotNull String fileName, @NotNull String extension) { + int index = fileName.lastIndexOf('/'); if (index != -1) { - name = name.substring(index + 1); + fileName = fileName.substring(index + 1); } - if (name.endsWith(extension)) { - name = name.substring(0, name.length() - extension.length()); + if (fileName.endsWith(extension)) { + fileName = fileName.substring(0, fileName.length() - extension.length()); } else { - index = name.indexOf('.'); + index = fileName.indexOf('.'); if (index != -1) { - name = name.substring(0, index); + fileName = fileName.substring(0, index); } } - name = Character.toUpperCase(name.charAt(0)) + (name.length() == 0 ? "" : name.substring(1)); - name = name.replace('.', '_'); - return Name.identifier(name); + fileName = Character.toUpperCase(fileName.charAt(0)) + (fileName.length() == 0 ? "" : fileName.substring(1)); + fileName = fileName.replace('.', '_'); + return fileName; } } 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 d7c3bf5ad4d..e1e69887814 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 @@ -34,7 +34,9 @@ import com.intellij.refactoring.listeners.RefactoringElementAdapter import com.intellij.refactoring.listeners.RefactoringElementListener import org.jdom.Element import org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer.Companion.pathFromPsiElement +import org.jetbrains.kotlin.parsing.KotlinParserDefinition import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.script.ScriptNameUtil import org.jetbrains.kotlin.utils.PathUtil import java.io.File import java.util.* @@ -98,7 +100,7 @@ class KotlinStandaloneScriptRunConfiguration( override fun getState(executor: Executor, environment: ExecutionEnvironment): RunProfileState = ScriptCommandLineState(environment, this) - override fun suggestedName() = filePath?.let { File(it).nameWithoutExtension } + override fun suggestedName() = filePath?.let { ScriptNameUtil.generateNameByFileName(it, KotlinParserDefinition.STD_SCRIPT_EXT) } override fun getConfigurationEditor(): SettingsEditor { val group = SettingsEditorGroup()