Quick Fixes: Avoid premature write action when calling Change Signature in

interactive mode
 #KT-8722 Fixed
This commit is contained in:
Alexey Sedunov
2015-09-08 18:39:37 +03:00
parent 89ae7d2036
commit 4d0cbf83d3
4 changed files with 6 additions and 2 deletions
@@ -45,6 +45,8 @@ public class ConvertParameterToReceiverIntention : JetSelfTargetingIntention<Jet
} }
} }
override fun startInWriteAction() = false
override fun applyTo(element: JetParameter, editor: Editor) { override fun applyTo(element: JetParameter, editor: Editor) {
val function = element.getStrictParentOfType<JetNamedFunction>() ?: return val function = element.getStrictParentOfType<JetNamedFunction>() ?: return
val parameterIndex = function.getValueParameters().indexOf(element) val parameterIndex = function.getValueParameters().indexOf(element)
@@ -41,6 +41,8 @@ public class ConvertReceiverToParameterIntention : JetSelfTargetingOffsetIndepen
} }
} }
override fun startInWriteAction() = false
override fun applyTo(element: JetTypeReference, editor: Editor) { override fun applyTo(element: JetTypeReference, editor: Editor) {
val function = element.getParent() as? JetNamedFunction ?: return val function = element.getParent() as? JetNamedFunction ?: return
val context = function.analyze() val context = function.analyze()
@@ -75,8 +75,6 @@ public class AddFunctionParametersFix(
return newParametersCnt > 0 return newParametersCnt > 0
} }
override fun startInWriteAction() = true
override fun invoke(project: Project, editor: Editor?, file: JetFile) { override fun invoke(project: Project, editor: Editor?, file: JetFile) {
runChangeSignature(project, functionDescriptor, addParameterConfiguration(), callElement.analyzeFully(), callElement, text) runChangeSignature(project, functionDescriptor, addParameterConfiguration(), callElement.analyzeFully(), callElement, text)
} }
@@ -37,6 +37,8 @@ public class CreateParameterFromUsageFix<E : JetElement>(
return JetBundle.message("create.parameter.from.usage", parameterInfo.name) return JetBundle.message("create.parameter.from.usage", parameterInfo.name)
} }
override fun startInWriteAction() = false
override fun invoke(project: Project, editor: Editor?, file: JetFile) { override fun invoke(project: Project, editor: Editor?, file: JetFile) {
val config = object : JetChangeSignatureConfiguration { val config = object : JetChangeSignatureConfiguration {
override fun configure(originalDescriptor: JetMethodDescriptor, bindingContext: BindingContext): JetMethodDescriptor { override fun configure(originalDescriptor: JetMethodDescriptor, bindingContext: BindingContext): JetMethodDescriptor {