protected boolean isAfter(final int newChildIndex, final IElementType @NotNull [] elementTypes) {
    if (newChildIndex == 0) return false;
    final Block previousBlock = getSubBlocks().get(newChildIndex - 1);
    if (!(previousBlock instanceof AbstractBlock)) return false;
    final IElementType previousElementType = ((AbstractBlock)previousBlock).getNode().getElementType();
    return ArrayUtil.contains(previousElementType, elementTypes);
  }
protected boolean isAfter(final int newChildIndex, final IElementType @NotNull [] elementTypes)