String (@NotNull ASTNode node, @NotNull TextRange range) { final PsiElement psi = node.getPsi(); FoldingBuilder foldingBuilder = LanguageFolding.INSTANCE.forLanguage(psi.getLanguage()); if (foldingBuilder == this || foldingBuilder instanceof CompositeFoldingBuilder) { if (psi instanceof XmlAttribute && "src".equalsIgnoreCase(((XmlAttribute)psi).getName())) { return "data:"; } if (psi instanceof XmlTag || psi instanceof XmlComment || psi instanceof XmlAttribute || psi instanceof XmlConditionalSection) { return "..."; } if (isEntity(psi)) { final String value = getEntityPlaceholder(psi); if (value != null) return value; } return null; } // can't call CustomFoldingBuilder.getLanguagePlaceholderText() directly but this CustomFoldingBuilder.getPlaceholderText() will do just fine return foldingBuilder instanceof CustomFoldingBuilder ? ((CustomFoldingBuilder)foldingBuilder).getPlaceholderText(node, range) : null; }