Supported Java usages in automatic variable renamer.

This commit is contained in:
Evgeny Gerashchenko
2015-04-21 19:01:37 +03:00
parent 3897548204
commit a9f9ca4ccb
4 changed files with 29 additions and 0 deletions
+1
View File
@@ -306,6 +306,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.AutomaticVariableInJavaRenamerFactory"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticInheritorRenamerFactory"/>
<automaticRenamerFactory implementation="org.jetbrains.kotlin.idea.refactoring.rename.AutomaticOverloadsRenamerFactory"/>
@@ -25,6 +25,8 @@ import com.intellij.refactoring.RefactoringBundle
import com.intellij.refactoring.rename.naming.AutomaticRenamer
import com.intellij.refactoring.rename.naming.AutomaticRenamerFactory
import com.intellij.usageView.UsageInfo
import org.jetbrains.kotlin.asJava.LightClassUtil
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
@@ -37,6 +39,7 @@ import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.types.JetType
import java.util.ArrayList
import java.util.LinkedHashMap
public class AutomaticVariableRenamer(klass: JetClass, newClassName: String, usages: Collection<UsageInfo>) : AutomaticRenamer() {
private val toUnpluralize = ArrayList<JetNamedDeclaration>()
@@ -107,5 +110,18 @@ public class AutomaticVariableRenamerFactory: AutomaticRenamerFactory {
override fun isEnabled() = JavaRefactoringSettings.getInstance().isToRenameVariables()
override fun setEnabled(enabled: Boolean) = JavaRefactoringSettings.getInstance().setRenameVariables(enabled)
override fun getOptionName() = RefactoringBundle.message("rename.variables")
}
public class AutomaticVariableInJavaRenamerFactory: AutomaticRenamerFactory {
override fun isApplicable(element: PsiElement) = element is JetClass && element.toLightClass() != null
override fun createRenamer(element: PsiElement, newName: String, usages: Collection<UsageInfo>) =
// Using java variable renamer for java usages
com.intellij.refactoring.rename.naming.AutomaticVariableRenamer((element as JetClass).toLightClass()!!, newName, usages)
override fun isEnabled() = JavaRefactoringSettings.getInstance().isToRenameVariables()
override fun setEnabled(enabled: Boolean) = JavaRefactoringSettings.getInstance().setRenameVariables(enabled)
override fun getOptionName() = RefactoringBundle.message("rename.variables")
}
@@ -1,3 +1,9 @@
class JavaBar extends Bar {
}
class Usage {
public static void main(String[] args) {
Bar bar = null;
}
}
@@ -1,3 +1,9 @@
class JavaFoo extends Foo {
}
class Usage {
public static void main(String[] args) {
Foo foo = null;
}
}