Minor: use script name generating code to generate names for script run configurations
This commit is contained in:
@@ -28,22 +28,26 @@ public class ScriptNameUtil {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public static Name fileNameWithExtensionStripped(@NotNull KtScript script, @NotNull String extension) {
|
public static Name fileNameWithExtensionStripped(@NotNull KtScript script, @NotNull String extension) {
|
||||||
KtFile file = script.getContainingKtFile();
|
KtFile file = script.getContainingKtFile();
|
||||||
String name = file.getName();
|
return Name.identifier(generateNameByFileName(file.getName(), extension));
|
||||||
int index = name.lastIndexOf('/');
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static String generateNameByFileName(@NotNull String fileName, @NotNull String extension) {
|
||||||
|
int index = fileName.lastIndexOf('/');
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
name = name.substring(index + 1);
|
fileName = fileName.substring(index + 1);
|
||||||
}
|
}
|
||||||
if (name.endsWith(extension)) {
|
if (fileName.endsWith(extension)) {
|
||||||
name = name.substring(0, name.length() - extension.length());
|
fileName = fileName.substring(0, fileName.length() - extension.length());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
index = name.indexOf('.');
|
index = fileName.indexOf('.');
|
||||||
if (index != -1) {
|
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));
|
fileName = Character.toUpperCase(fileName.charAt(0)) + (fileName.length() == 0 ? "" : fileName.substring(1));
|
||||||
name = name.replace('.', '_');
|
fileName = fileName.replace('.', '_');
|
||||||
return Name.identifier(name);
|
return fileName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -34,7 +34,9 @@ import com.intellij.refactoring.listeners.RefactoringElementAdapter
|
|||||||
import com.intellij.refactoring.listeners.RefactoringElementListener
|
import com.intellij.refactoring.listeners.RefactoringElementListener
|
||||||
import org.jdom.Element
|
import org.jdom.Element
|
||||||
import org.jetbrains.kotlin.idea.run.script.standalone.KotlinStandaloneScriptRunConfigurationProducer.Companion.pathFromPsiElement
|
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.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.script.ScriptNameUtil
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -98,7 +100,7 @@ class KotlinStandaloneScriptRunConfiguration(
|
|||||||
|
|
||||||
override fun getState(executor: Executor, environment: ExecutionEnvironment): RunProfileState = ScriptCommandLineState(environment, this)
|
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> {
|
override fun getConfigurationEditor(): SettingsEditor<out RunConfiguration> {
|
||||||
val group = SettingsEditorGroup<KotlinStandaloneScriptRunConfiguration>()
|
val group = SettingsEditorGroup<KotlinStandaloneScriptRunConfiguration>()
|
||||||
|
|||||||
Reference in New Issue
Block a user