[groovy] move left-right for array initializers (IDEA-188432)

This commit is contained in:
Daniil Ovchinnikov
2018-07-05 18:44:38 +03:00
parent 399d614bf2
commit 36a4a41801
4 changed files with 15 additions and 0 deletions
@@ -5,6 +5,9 @@ import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression;
import java.util.List;
public interface GrArrayInitializer extends GroovyPsiElement {
@@ -13,6 +16,9 @@ public interface GrArrayInitializer extends GroovyPsiElement {
boolean isEmpty();
@NotNull
List<GrExpression> getExpressions();
@Nullable
PsiElement getRBrace();
}
@@ -9,6 +9,7 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyElementTypes.T_LBRACE
import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor
import org.jetbrains.plugins.groovy.lang.psi.api.GrArrayInitializer
import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression
import org.jetbrains.plugins.groovy.lang.psi.util.childrenOfType
class GrArrayInitializerImpl(node: ASTNode) : GroovyPsiElementImpl(node), GrArrayInitializer {
@@ -20,5 +21,7 @@ class GrArrayInitializerImpl(node: ASTNode) : GroovyPsiElementImpl(node), GrArra
override fun isEmpty(): Boolean = node.getChildren(TokenSet.ANY).none { it.psi is GrExpression }
override fun getExpressions(): List<GrExpression> = childrenOfType()
override fun getRBrace(): PsiElement? = findChildByType(GroovyElementTypes.T_RBRACE)
}
@@ -4,6 +4,7 @@ package org.jetbrains.plugins.groovy.codeInsight.editorActions
import com.intellij.codeInsight.editorActions.moveLeftRight.MoveElementLeftRightHandler
import com.intellij.psi.PsiElement
import com.intellij.psi.util.PsiTreeUtil.getChildrenOfAnyType
import org.jetbrains.plugins.groovy.lang.psi.api.GrArrayInitializer
import org.jetbrains.plugins.groovy.lang.psi.api.GrExpressionList
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.GrListOrMap
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierList
@@ -34,6 +35,7 @@ class GroovyMoveLeftRightHandler : MoveElementLeftRightHandler() {
is GrTypeParameterList -> element.typeParameters
is GrVariableDeclaration -> element.variables
is GrExpressionList -> element.expressions.toTypedArray()
is GrArrayInitializer -> element.expressions.toTypedArray()
else -> PsiElement.EMPTY_ARRAY
}
}
@@ -118,4 +118,8 @@ class GroovyMoveLeftRightHandlerTest extends LightGroovyTestCase {
void 'test for update'() {
doTest 'for (;; <caret>1, 2, 3) {}', 'for (;; 2, <caret>1, 3) {}'
}
void 'test array initializer'() {
doTest 'new int[]{<caret>1, 2, 3}', 'new int[]{2, <caret>1, 3}'
}
}