void (@NotNull ASTNode child) { if (child.getElementType() == DOC_TAG) { if (child.getTreeNext() == null || child.getTreeNext().getElementType() != DOC_TAG) { ASTNode prev = child.getTreePrev(); while (prev != null && prev.getElementType() == DOC_COMMENT_DATA) { prev = prev.getTreePrev(); } ASTNode next = child.getTreeNext(); while (next != null && (next.getElementType() == DOC_COMMENT_DATA || next.getElementType() == WHITE_SPACE)) { next = next.getTreeNext(); } if (prev != null && prev.getElementType() == DOC_COMMENT_LEADING_ASTERISKS && !(next instanceof PsiDocTag)) { if (prev.getTreePrev() != null) { super.deleteChildInternal(prev.getTreePrev()); super.deleteChildInternal(prev); } } else if (prev != null && prev.getElementType() == DOC_TAG) { CompositeElement compositePrev = (CompositeElement)prev; ASTNode prevChild = compositePrev.getLastChildNode(); while (prevChild != null && prevChild.getElementType() == DOC_COMMENT_DATA) { prevChild = prevChild.getTreePrev(); } if (prevChild != null && prevChild.getElementType() == DOC_COMMENT_LEADING_ASTERISKS) { ASTNode current = prevChild; while (current != null) { ASTNode nextChild = current.getTreeNext(); compositePrev.deleteChildInternal(current); current = nextChild; } } } else { next = child.getTreeNext(); if (next != null && next.getElementType() == WHITE_SPACE) { next.getTreeParent().removeChild(next); } } } } super.deleteChildInternal(child); }