Minor: use script name generating code to generate names for script run configurations

This commit is contained in:
Pavel V. Talanov
2015-11-25 18:50:50 +03:00
parent d6c7029c77
commit 7577a375ae
2 changed files with 17 additions and 11 deletions
@@ -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;
}
}
@@ -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<out RunConfiguration> {
val group = SettingsEditorGroup<KotlinStandaloneScriptRunConfiguration>()