diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java b/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java index 152242e104d9..8abe03395ead 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java +++ b/platform/lang-impl/src/com/intellij/ide/structureView/impl/TemplateLanguageStructureViewBuilder.java @@ -6,10 +6,7 @@ package com.intellij.ide.structureView.impl; import com.intellij.ide.IdeBundle; import com.intellij.ide.impl.StructureViewWrapperImpl; -import com.intellij.ide.structureView.StructureView; -import com.intellij.ide.structureView.StructureViewBuilder; -import com.intellij.ide.structureView.StructureViewFactoryEx; -import com.intellij.ide.structureView.StructureViewWrapper; +import com.intellij.ide.structureView.*; import com.intellij.ide.structureView.newStructureView.StructureViewComponent; import com.intellij.lang.Language; import com.intellij.lang.LanguageStructureViewBuilder; @@ -199,7 +196,7 @@ public abstract class TemplateLanguageStructureViewBuilder implements StructureV if (viewProvider == null) return null; final PsiFile dataFile = viewProvider.getPsi(language); - if (dataFile == null) return null; + if (dataFile == null || !isAcceptableBaseLanguageFile(dataFile)) return null; final PsiStructureViewFactory factory = LanguageStructureViewBuilder.INSTANCE.forLanguage(language); if (factory == null) return null; @@ -211,6 +208,10 @@ public abstract class TemplateLanguageStructureViewBuilder implements StructureV return new StructureViewComposite.StructureViewDescriptor(IdeBundle.message("tab.structureview.baselanguage.view", language.getDisplayName()), structureView, findFileType(language).getIcon()); } + protected boolean isAcceptableBaseLanguageFile(PsiFile dataFile) { + return true; + } + private void updateTemplateDataFileView() { new WriteCommandAction(myProject) { protected void run(Result result) throws Throwable {