boolean (List<Block> result, final ASTNode child, Wrap wrap, Alignment alignment, Indent indent) { if (isBuildIndentsOnly()) return false; if (myInjectedBlockBuilder.addInjectedBlocks(result, child, wrap, alignment, indent)) { return true; } PsiFile containingFile = child.getPsi().getContainingFile(); FileViewProvider fileViewProvider = containingFile.getViewProvider(); if (fileViewProvider instanceof TemplateLanguageFileViewProvider) { Language templateLanguage = ((TemplateLanguageFileViewProvider)fileViewProvider).getTemplateDataLanguage(); PsiElement at = fileViewProvider.findElementAt(child.getStartOffset(), templateLanguage); if (at instanceof XmlToken) { at = at.getParent(); } // TODO: several comments if (at instanceof PsiComment && at.getTextRange().equals(child.getTextRange()) && at.getNode() != child) { return buildInjectedPsiBlocks(result, at.getNode(), wrap, alignment, indent); } } return false; }