don't show two "Rename variables" checkboxes for a Kotlin class

#KT-8509 Fixed
This commit is contained in:
Dmitry Jemerov
2016-02-02 15:50:36 +01:00
parent db5191041f
commit 45a387668b
2 changed files with 10 additions and 3 deletions
+1
View File
@@ -414,6 +414,7 @@
<renameHandler implementation="org.jetbrains.kotlin.idea.refactoring.rename.RenameDynamicMemberHandler"/>
<renameHandler implementation="org.jetbrains.kotlin.idea.refactoring.rename.RenameOnSecondaryConstructorHandler"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticVariableRenamerFactory"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticVariableRenamerFactoryForJavaClass"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticVariableInJavaRenamerFactory"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticInheritorRenamerFactory"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticOverloadsRenamerFactory"/>
@@ -116,8 +116,8 @@ private fun KotlinType.isCollectionLikeOf(classPsiElement: PsiNamedElement): Boo
}
class AutomaticVariableRenamerFactory: AutomaticRenamerFactory {
override fun isApplicable(element: PsiElement) = element is KtClass || element is PsiClass
open class AutomaticVariableRenamerFactory: AutomaticRenamerFactory {
override fun isApplicable(element: PsiElement) = element is KtClass
override fun createRenamer(element: PsiElement, newName: String, usages: Collection<UsageInfo>) =
AutomaticVariableRenamer(element as PsiNamedElement, newName, usages)
@@ -128,6 +128,12 @@ class AutomaticVariableRenamerFactory: AutomaticRenamerFactory {
override fun getOptionName() = RefactoringBundle.message("rename.variables")
}
class AutomaticVariableRenamerFactoryForJavaClass : AutomaticVariableRenamerFactory() {
override fun isApplicable(element: PsiElement) = element is PsiClass
override fun getOptionName() = null
}
class AutomaticVariableInJavaRenamerFactory: AutomaticRenamerFactory {
override fun isApplicable(element: PsiElement) = element is KtClass && element.toLightClass() != null
@@ -138,5 +144,5 @@ class AutomaticVariableInJavaRenamerFactory: AutomaticRenamerFactory {
override fun isEnabled() = JavaRefactoringSettings.getInstance().isToRenameVariables
override fun setEnabled(enabled: Boolean) = JavaRefactoringSettings.getInstance().setRenameVariables(enabled)
override fun getOptionName() = RefactoringBundle.message("rename.variables")
override fun getOptionName() = null
}