JetRefactoringSupportProvider: J2K

This commit is contained in:
Dmitry Jemerov
2015-04-29 19:27:06 +02:00
parent d990bbffdc
commit 0582d1947d
5 changed files with 51 additions and 66 deletions
+1 -1
View File
@@ -241,7 +241,7 @@
implementationClass="org.jetbrains.kotlin.psi.psiUtil.JetStringTemplateExpressionManipulator"/> implementationClass="org.jetbrains.kotlin.psi.psiUtil.JetStringTemplateExpressionManipulator"/>
<fileStructureGroupRuleProvider implementation="org.jetbrains.kotlin.idea.findUsages.KotlinDeclarationGroupRuleProvider"/> <fileStructureGroupRuleProvider implementation="org.jetbrains.kotlin.idea.findUsages.KotlinDeclarationGroupRuleProvider"/>
<importFilteringRule implementation="org.jetbrains.kotlin.idea.findUsages.JetImportFilteringRule"/> <importFilteringRule implementation="org.jetbrains.kotlin.idea.findUsages.JetImportFilteringRule"/>
<lang.refactoringSupport language="jet" implementationClass="org.jetbrains.kotlin.idea.refactoring.JetRefactoringSupportProvider"/> <lang.refactoringSupport language="jet" implementationClass="org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSupportProvider"/>
<lang.surroundDescriptor language="jet" <lang.surroundDescriptor language="jet"
implementationClass="org.jetbrains.kotlin.idea.codeInsight.surroundWith.expression.KotlinExpressionSurroundDescriptor"/> implementationClass="org.jetbrains.kotlin.idea.codeInsight.surroundWith.expression.KotlinExpressionSurroundDescriptor"/>
<lang.surroundDescriptor language="jet" <lang.surroundDescriptor language="jet"
@@ -14,86 +14,71 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.idea.refactoring; package org.jetbrains.kotlin.idea.refactoring
import com.intellij.lang.refactoring.RefactoringSupportProvider; import com.intellij.lang.refactoring.RefactoringSupportProvider
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement
import com.intellij.refactoring.RefactoringActionHandler; import com.intellij.refactoring.RefactoringActionHandler
import com.intellij.refactoring.changeSignature.ChangeSignatureHandler; import com.intellij.refactoring.changeSignature.ChangeSignatureHandler
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeSignatureHandler
import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandler
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeSignatureHandler; import org.jetbrains.kotlin.idea.refactoring.introduce.introduceParameter.KotlinIntroduceLambdaParameterHandler
import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandler; import org.jetbrains.kotlin.idea.refactoring.introduce.introduceParameter.KotlinIntroduceParameterHandler
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceParameter.KotlinIntroduceLambdaParameterHandler; import org.jetbrains.kotlin.idea.refactoring.introduce.introduceProperty.KotlinIntroducePropertyHandler
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceParameter.KotlinIntroduceParameterHandler; import org.jetbrains.kotlin.idea.refactoring.introduce.introduceVariable.KotlinIntroduceVariableHandler
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceProperty.KotlinIntroducePropertyHandler; import org.jetbrains.kotlin.idea.refactoring.safeDelete.*
import org.jetbrains.kotlin.idea.refactoring.introduce.introduceVariable.KotlinIntroduceVariableHandler; import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.idea.refactoring.safeDelete.SafeDeletePackage;
import org.jetbrains.kotlin.psi.*;
public class JetRefactoringSupportProvider extends RefactoringSupportProvider { public class KotlinRefactoringSupportProvider : RefactoringSupportProvider() {
@Override override fun isSafeDeleteAvailable(element: PsiElement): Boolean {
public boolean isSafeDeleteAvailable(@NotNull PsiElement element) { return element.canDeleteElement()
return SafeDeletePackage.canDeleteElement(element);
} }
@Override override fun getIntroduceVariableHandler(): RefactoringActionHandler? {
public RefactoringActionHandler getIntroduceVariableHandler() { return KotlinIntroduceVariableHandler()
return new KotlinIntroduceVariableHandler();
} }
@Nullable override fun getIntroduceParameterHandler(): RefactoringActionHandler? {
@Override return KotlinIntroduceParameterHandler()
public RefactoringActionHandler getIntroduceParameterHandler() {
return new KotlinIntroduceParameterHandler();
} }
@NotNull public fun getIntroduceLambdaParameterHandler(): RefactoringActionHandler {
public RefactoringActionHandler getIntroduceLambdaParameterHandler() { return KotlinIntroduceLambdaParameterHandler()
return new KotlinIntroduceLambdaParameterHandler();
} }
@NotNull public fun getIntroducePropertyHandler(): RefactoringActionHandler {
public RefactoringActionHandler getIntroducePropertyHandler() { return KotlinIntroducePropertyHandler()
return new KotlinIntroducePropertyHandler();
} }
@NotNull public fun getExtractFunctionHandler(): RefactoringActionHandler {
public RefactoringActionHandler getExtractFunctionHandler() { return ExtractKotlinFunctionHandler()
return new ExtractKotlinFunctionHandler();
} }
@NotNull public fun getExtractFunctionToScopeHandler(): RefactoringActionHandler {
public RefactoringActionHandler getExtractFunctionToScopeHandler() { return ExtractKotlinFunctionHandler(true, ExtractKotlinFunctionHandler.InteractiveExtractionHelper)
return new ExtractKotlinFunctionHandler(true, ExtractKotlinFunctionHandler.InteractiveExtractionHelper.INSTANCE$);
} }
@Override override fun isInplaceRenameAvailable(element: PsiElement, context: PsiElement?): Boolean {
public boolean isInplaceRenameAvailable(@NotNull PsiElement element, PsiElement context) { if (element is JetProperty) {
if (element instanceof JetProperty) { if (element.isLocal()) return true
JetProperty property = (JetProperty) element;
if (property.isLocal()) return true;
} }
else if (element instanceof JetFunction) { else if (element is JetFunction) {
JetFunction function = (JetFunction) element; if (element.isLocal()) return true
if (function.isLocal()) return true;
} }
else if (element instanceof JetParameter) { else if (element is JetParameter) {
PsiElement parent = element.getParent(); val parent = element.getParent()
if (parent instanceof JetForExpression) { if (parent is JetForExpression) {
return true; return true
} }
if (parent instanceof JetParameterList) { if (parent is JetParameterList) {
PsiElement grandparent = parent.getParent(); val grandparent = parent.getParent()
return grandparent instanceof JetCatchClause || grandparent instanceof JetFunctionLiteral; return grandparent is JetCatchClause || grandparent is JetFunctionLiteral
} }
} }
return false; return false
} }
@Nullable override fun getChangeSignatureHandler(): ChangeSignatureHandler? {
@Override return JetChangeSignatureHandler()
public ChangeSignatureHandler getChangeSignatureHandler() {
return new JetChangeSignatureHandler();
} }
} }
@@ -18,15 +18,15 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction
import com.intellij.refactoring.RefactoringActionHandler import com.intellij.refactoring.RefactoringActionHandler
import com.intellij.lang.refactoring.RefactoringSupportProvider import com.intellij.lang.refactoring.RefactoringSupportProvider
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringSupportProvider import org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSupportProvider
import org.jetbrains.kotlin.idea.refactoring.introduce.* import org.jetbrains.kotlin.idea.refactoring.introduce.*
public class ExtractFunctionAction: AbstractIntroduceAction() { public class ExtractFunctionAction: AbstractIntroduceAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? = override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getExtractFunctionHandler() (provider as? KotlinRefactoringSupportProvider)?.getExtractFunctionHandler()
} }
public class ExtractFunctionToScopeAction: AbstractIntroduceAction() { public class ExtractFunctionToScopeAction: AbstractIntroduceAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? = override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getExtractFunctionToScopeHandler() (provider as? KotlinRefactoringSupportProvider)?.getExtractFunctionToScopeHandler()
} }
@@ -18,10 +18,10 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.introduceParameter
import com.intellij.lang.refactoring.RefactoringSupportProvider import com.intellij.lang.refactoring.RefactoringSupportProvider
import com.intellij.refactoring.RefactoringActionHandler import com.intellij.refactoring.RefactoringActionHandler
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringSupportProvider import org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSupportProvider
import org.jetbrains.kotlin.idea.refactoring.introduce.AbstractIntroduceAction import org.jetbrains.kotlin.idea.refactoring.introduce.AbstractIntroduceAction
public class IntroduceLambdaParameterAction : AbstractIntroduceAction() { public class IntroduceLambdaParameterAction : AbstractIntroduceAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? = override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getIntroduceLambdaParameterHandler() (provider as? KotlinRefactoringSupportProvider)?.getIntroduceLambdaParameterHandler()
} }
@@ -18,10 +18,10 @@ package org.jetbrains.kotlin.idea.refactoring.introduce.introduceVariable
import com.intellij.refactoring.RefactoringActionHandler import com.intellij.refactoring.RefactoringActionHandler
import com.intellij.lang.refactoring.RefactoringSupportProvider import com.intellij.lang.refactoring.RefactoringSupportProvider
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringSupportProvider import org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSupportProvider
import org.jetbrains.kotlin.idea.refactoring.introduce.* import org.jetbrains.kotlin.idea.refactoring.introduce.*
public class IntroducePropertyAction : AbstractIntroduceAction() { public class IntroducePropertyAction : AbstractIntroduceAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? = override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getIntroducePropertyHandler() (provider as? KotlinRefactoringSupportProvider)?.getIntroducePropertyHandler()
} }