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.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass;
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.caches.resolve.ResolvePackage;
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.Name;
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 final JetRunConfiguration myConfiguration;
@@ -70,8 +70,8 @@ public class KotlinRunConfigurationProducer : RunConfigurationProducer<JetRunCon
configuration: JetRunConfiguration,
fqName: FqName) {
configuration.setModule(module)
configuration.setName(StringUtil.trimEnd(fqName.asString(), "." + PackageClassUtils.getPackageClassName(fqName)))
configuration.setRunClass(fqName.asString())
configuration.setGeneratedName()
}
override fun isConfigurationFromContext(configuration: JetRunConfiguration, context: ConfigurationContext): Boolean {