StructureViewBuilder (@NotNull final PsiFile psiFile) { if (!(psiFile instanceof XmlFile)) { return null; } StructureViewBuilder builder = getStructureViewBuilderForExtensions(psiFile); if (builder != null) { return builder; } for (XmlStructureViewBuilderProvider xmlStructureViewBuilderProvider : getStructureViewBuilderProviders()) { final StructureViewBuilder structureViewBuilder = xmlStructureViewBuilderProvider.createStructureViewBuilder((XmlFile)psiFile); if (structureViewBuilder != null) { return structureViewBuilder; } } return new TreeBasedStructureViewBuilder() { @Override @NotNull public StructureViewModel createStructureViewModel(@Nullable Editor editor) { return new XmlStructureViewTreeModel((XmlFile)psiFile, editor); } }; }