package com.nvlad.yii2support.common; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiWhiteSpace; import com.jetbrains.php.lang.psi.elements.ArrayCreationExpression; /** * Created by NVlad on 17.01.2017. */ public class PsiUtil { public static void deleteArrayElement(PsiElement element) { PsiElement next = element.getNextSibling(); String endArray = ((ArrayCreationExpression) element.getParent()).isShortSyntax() ? "]" : ")"; if (next instanceof PsiWhiteSpace && next.getNextSibling().getText() != null) { if (next.getNextSibling().getText().equals(endArray)) { next = next.getNextSibling(); } } if (next.getText().equals(endArray)) { Boolean deleteComma = false; if (element.getPrevSibling() instanceof PsiWhiteSpace) { deleteComma = !element.getPrevSibling().getText().contains("\n"); element.getPrevSibling().delete(); } if (deleteComma && element.getPrevSibling().getText().equals(",")) { element.getPrevSibling().delete(); } } if (next.getText().equals(",")) { if (next.getNextSibling() instanceof PsiWhiteSpace) { next.getNextSibling().delete(); } next.delete(); } element.delete(); } public static void deleteFunctionParam(PsiElement element) { PsiElement next = element.getNextSibling(); if (next != null && next.getText().equals(",")) { next.delete(); } else { PsiElement prev = element.getPrevSibling(); if (prev != null && prev instanceof PsiWhiteSpace) { prev.delete(); prev = element.getPrevSibling(); } if (prev != null && prev.getText().equals(",")) { prev.delete(); } } element.delete(); } }