Extract Function: Replace IDEA "Extract Method..." action with "Extract Function..."

This commit is contained in:
Alexey Sedunov
2014-06-02 14:39:08 +04:00
parent 07c19b1c9b
commit 1c0d1630e5
3 changed files with 22 additions and 14 deletions
+6 -1
View File
@@ -97,10 +97,15 @@
<add-to-group group-id="KotlinToolsGroup"/> <add-to-group group-id="KotlinToolsGroup"/>
</action> </action>
<action id="ExtractFunction" class="org.jetbrains.jet.plugin.refactoring.extractFunction.ExtractFunctionAction"
text="Extract _Function..." use-shortcut-of="ExtractMethod">
<add-to-group group-id="IntroduceActionsGroup" anchor="after" relative-to-action="ExtractMethod"/>
</action>
<action id="ExtractFunctionToScope" class="org.jetbrains.jet.plugin.refactoring.extractFunction.ExtractFunctionToScopeAction" <action id="ExtractFunctionToScope" class="org.jetbrains.jet.plugin.refactoring.extractFunction.ExtractFunctionToScopeAction"
text="Extract Function to _Scope..."> text="Extract Function to _Scope...">
<keyboard-shortcut keymap="$default" first-keystroke="control alt shift M"/> <keyboard-shortcut keymap="$default" first-keystroke="control alt shift M"/>
<add-to-group group-id="IntroduceActionsGroup" anchor="after" relative-to-action="ExtractMethod"/> <add-to-group group-id="IntroduceActionsGroup" anchor="after" relative-to-action="ExtractFunction"/>
</action> </action>
</actions> </actions>
@@ -39,8 +39,8 @@ public class JetRefactoringSupportProvider extends RefactoringSupportProvider {
return new KotlinIntroduceVariableHandler(); return new KotlinIntroduceVariableHandler();
} }
@Override @NotNull
public RefactoringActionHandler getExtractMethodHandler() { public RefactoringActionHandler getExtractFunctionHandler() {
return new ExtractKotlinFunctionHandler(); return new ExtractKotlinFunctionHandler();
} }
@@ -23,20 +23,23 @@ import com.intellij.lang.refactoring.RefactoringSupportProvider
import org.jetbrains.jet.lang.psi.JetElement import org.jetbrains.jet.lang.psi.JetElement
import org.jetbrains.jet.plugin.refactoring.JetRefactoringSupportProvider import org.jetbrains.jet.plugin.refactoring.JetRefactoringSupportProvider
public class ExtractFunctionToScopeAction: BasePlatformRefactoringAction() { public abstract class AbstractExtractFunctionAction: BasePlatformRefactoringAction() {
{ {
setInjectedContext(true) setInjectedContext(true)
} }
override fun isAvailableInEditorOnly(): Boolean { override fun isAvailableInEditorOnly(): Boolean = true
return true
}
protected override fun isEnabledOnElements(elements: Array<out PsiElement>): Boolean { protected override fun isEnabledOnElements(elements: Array<out PsiElement>): Boolean =
return elements.all { it is JetElement } elements.all { it is JetElement }
}
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? {
return (provider as? JetRefactoringSupportProvider)?.getExtractFunctionToScopeHandler()
}
} }
public class ExtractFunctionAction: AbstractExtractFunctionAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getExtractFunctionHandler()
}
public class ExtractFunctionToScopeAction: AbstractExtractFunctionAction() {
override fun getRefactoringHandler(provider: RefactoringSupportProvider): RefactoringActionHandler? =
(provider as? JetRefactoringSupportProvider)?.getExtractFunctionToScopeHandler()
}