Reordered methods
This commit is contained in:
@@ -36,27 +36,6 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
|
|
||||||
public class AddForLoopIndicesIntention : JetSelfTargetingRangeIntention<JetForExpression>(javaClass(), "Add indices to 'for' loop") {
|
public class AddForLoopIndicesIntention : JetSelfTargetingRangeIntention<JetForExpression>(javaClass(), "Add indices to 'for' loop") {
|
||||||
override fun applyTo(element: JetForExpression, editor: Editor) {
|
|
||||||
val loopRange = element.loopRange!!
|
|
||||||
val loopParameter = element.loopParameter!!
|
|
||||||
val project = element.project
|
|
||||||
val psiFactory = JetPsiFactory(element)
|
|
||||||
|
|
||||||
loopRange.replace(createWithIndexExpression(loopRange))
|
|
||||||
|
|
||||||
var multiParameter = (psiFactory.createExpressionByPattern("for((index, $0) in x){}", loopParameter.text) as JetForExpression).multiParameter!!
|
|
||||||
|
|
||||||
multiParameter = loopParameter.replaced(multiParameter)
|
|
||||||
|
|
||||||
val indexVariable = multiParameter.entries[0]
|
|
||||||
editor.caretModel.moveToOffset(indexVariable.startOffset)
|
|
||||||
|
|
||||||
val templateBuilder = TemplateBuilderImpl(indexVariable)
|
|
||||||
templateBuilder.replaceElement(indexVariable, "index")
|
|
||||||
PsiDocumentManager.getInstance(project).doPostponedOperationsAndUnblockDocument(editor.document)
|
|
||||||
TemplateManager.getInstance(project).startTemplate(editor, templateBuilder.buildInlineTemplate()!!)
|
|
||||||
}
|
|
||||||
|
|
||||||
private val WITH_INDEX_FQ_NAME = "kotlin.withIndex"
|
private val WITH_INDEX_FQ_NAME = "kotlin.withIndex"
|
||||||
|
|
||||||
override fun applicabilityRange(element: JetForExpression): TextRange? {
|
override fun applicabilityRange(element: JetForExpression): TextRange? {
|
||||||
@@ -78,6 +57,27 @@ public class AddForLoopIndicesIntention : JetSelfTargetingRangeIntention<JetForE
|
|||||||
return TextRange(element.startOffset, element.body?.startOffset ?: element.endOffset)
|
return TextRange(element.startOffset, element.body?.startOffset ?: element.endOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun applyTo(element: JetForExpression, editor: Editor) {
|
||||||
|
val loopRange = element.loopRange!!
|
||||||
|
val loopParameter = element.loopParameter!!
|
||||||
|
val project = element.project
|
||||||
|
val psiFactory = JetPsiFactory(element)
|
||||||
|
|
||||||
|
loopRange.replace(createWithIndexExpression(loopRange))
|
||||||
|
|
||||||
|
var multiParameter = (psiFactory.createExpressionByPattern("for((index, $0) in x){}", loopParameter.text) as JetForExpression).multiParameter!!
|
||||||
|
|
||||||
|
multiParameter = loopParameter.replaced(multiParameter)
|
||||||
|
|
||||||
|
val indexVariable = multiParameter.entries[0]
|
||||||
|
editor.caretModel.moveToOffset(indexVariable.startOffset)
|
||||||
|
|
||||||
|
val templateBuilder = TemplateBuilderImpl(indexVariable)
|
||||||
|
templateBuilder.replaceElement(indexVariable, "index")
|
||||||
|
PsiDocumentManager.getInstance(project).doPostponedOperationsAndUnblockDocument(editor.document)
|
||||||
|
TemplateManager.getInstance(project).startTemplate(editor, templateBuilder.buildInlineTemplate()!!)
|
||||||
|
}
|
||||||
|
|
||||||
private fun createWithIndexExpression(originalExpression: JetExpression): JetExpression {
|
private fun createWithIndexExpression(originalExpression: JetExpression): JetExpression {
|
||||||
return JetPsiFactory(originalExpression).createExpressionByPattern("$0.withIndex()", originalExpression)
|
return JetPsiFactory(originalExpression).createExpressionByPattern("$0.withIndex()", originalExpression)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user