correctly update name of run configuration on class rename

This commit is contained in:
Dmitry Jemerov
2015-07-03 18:05:13 +02:00
committed by Nikolay Krasko
parent 247ffdccbe
commit 9cfc6b3905
2 changed files with 11 additions and 1 deletions
@@ -34,6 +34,7 @@ import com.intellij.openapi.roots.*;
import com.intellij.openapi.util.DefaultJDOMExternalizer; import com.intellij.openapi.util.DefaultJDOMExternalizer;
import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass; import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
@@ -51,6 +52,7 @@ import org.jetbrains.kotlin.asJava.KotlinLightMethod;
import org.jetbrains.kotlin.idea.MainFunctionDetector; import org.jetbrains.kotlin.idea.MainFunctionDetector;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage; import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.stubindex.JetTopLevelFunctionFqnNameIndex; import org.jetbrains.kotlin.idea.stubindex.JetTopLevelFunctionFqnNameIndex;
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils;
import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.JetDeclaration; import org.jetbrains.kotlin.psi.JetDeclaration;
@@ -252,6 +254,14 @@ public class JetRunConfiguration extends ModuleBasedConfiguration<RunConfigurati
} }
} }
@Override
public String suggestedName() {
if (MAIN_CLASS_NAME == null) {
return null;
}
return StringUtil.trimEnd(MAIN_CLASS_NAME, "." + PackageClassUtils.getPackageClassName(new FqName(MAIN_CLASS_NAME)));
}
private static class MyJavaCommandLineState extends JavaCommandLineState { private static class MyJavaCommandLineState extends JavaCommandLineState {
private final JetRunConfiguration myConfiguration; private final JetRunConfiguration myConfiguration;
@@ -70,8 +70,8 @@ public class KotlinRunConfigurationProducer : RunConfigurationProducer<JetRunCon
configuration: JetRunConfiguration, configuration: JetRunConfiguration,
fqName: FqName) { fqName: FqName) {
configuration.setModule(module) configuration.setModule(module)
configuration.setName(StringUtil.trimEnd(fqName.asString(), "." + PackageClassUtils.getPackageClassName(fqName)))
configuration.setRunClass(fqName.asString()) configuration.setRunClass(fqName.asString())
configuration.setGeneratedName()
} }
override fun isConfigurationFromContext(configuration: JetRunConfiguration, context: ConfigurationContext): Boolean { override fun isConfigurationFromContext(configuration: JetRunConfiguration, context: ConfigurationContext): Boolean {