@Override
  protected @Nullable ASTNode processChild(@NotNull List<Block> result,
                                           final @NotNull ASTNode child,
                                           final Wrap wrap,
                                           final Alignment alignment,
                                           final Indent indent) {
    IElementType type = child.getElementType();
    if (type == XmlElementType.XML_TEXT) {
      List<Block> injections = new SmartList<>();
      if (buildInjectedPsiBlocks(injections, child, wrap, alignment, indent)) {
        List<Block> regular = new SmartList<>();
        createXmlTextBlocks(regular, child, wrap, alignment);
        combineRegularBlocksWithInjected(child, result, injections, regular);
        return child;
      }
      else {
        return createXmlTextBlocks(result, child, wrap, alignment);
      }
    }
    else if (type == XmlElementType.HTML_RAW_TEXT) {
      return createXmlTextBlocks(result, child, wrap, alignment);
    }
    else if (type == XmlElementType.XML_COMMENT) {
      if (buildInjectedPsiBlocks(result, child, wrap, alignment, indent)) return child;
      return super.processChild(result, child, wrap, alignment, indent);
    }
    else {
      return super.processChild(result, child, wrap, alignment, indent);
    }
  }
@Override
  protected @Nullable ASTNode processChild(@NotNull List<Block> result,
                                           final @NotNull ASTNode child,
                                           final Wrap wrap,
                                           final Alignment alignment,
                                           final Indent indent)