diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/InjectionsSettingsUI.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/InjectionsSettingsUI.java index 5a4f93623e76..ed8dead6c460 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/InjectionsSettingsUI.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/InjectionsSettingsUI.java @@ -55,6 +55,7 @@ import org.intellij.plugins.intelliLang.inject.InjectorUtils; import org.intellij.plugins.intelliLang.inject.LanguageInjectionSupport; import org.intellij.plugins.intelliLang.inject.config.BaseInjection; import org.intellij.plugins.intelliLang.inject.config.InjectionPlace; +import org.intellij.plugins.intelliLang.references.ReferenceInjector; import org.jdom.Document; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; @@ -869,12 +870,13 @@ public class InjectionsSettingsUI implements SearchableConfigurable.Parent, NonD originalInjections = new ArrayList(ContainerUtil .concat(InjectorUtils.getActiveInjectionSupportIds(), new Function>() { public Collection fun(final String s) { - return ContainerUtil.findAll( + List injections = CfgInfo.this.cfg instanceof Configuration.Prj ? ((Configuration.Prj)CfgInfo.this.cfg).getOwnInjections(s) : CfgInfo.this.cfg - .getInjections(s), - new Condition() { + .getInjections(s); + return ContainerUtil.findAll(injections, new Condition() { public boolean value(final BaseInjection injection) { - return InjectedLanguage.findLanguageById(injection.getInjectedLanguageId()) != null; + String id = injection.getInjectedLanguageId(); + return InjectedLanguage.findLanguageById(id) != null || ReferenceInjector.findById(id) != null; } }); } diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/ReferenceInjector.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/ReferenceInjector.java index e2cf413c4af8..90397bebbd67 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/ReferenceInjector.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/references/ReferenceInjector.java @@ -17,10 +17,12 @@ package org.intellij.plugins.intelliLang.references; import com.intellij.lang.Language; import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.util.ProcessingContext; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; /** @@ -38,4 +40,13 @@ public abstract class ReferenceInjector extends Injectable { @NotNull public abstract PsiReference[] getReferences(@NotNull PsiElement element, @NotNull final ProcessingContext context, @NotNull TextRange range); + + public static ReferenceInjector findById(final String id) { + return ContainerUtil.find(EXTENSION_POINT_NAME.getExtensions(), new Condition() { + @Override + public boolean value(ReferenceInjector injector) { + return id.equals(injector.getId()); + } + }); + } }