LanguageReferenceProviders (@NotNull Language language) { List<PsiSymbolReferenceProviderBean> result = new ArrayList<>(); for (PsiSymbolReferenceProviderBean bean : EP_NAME.getExtensionList()) { Language hostLanguage = bean.getHostLanguage(); boolean matches = hostLanguage instanceof MetaLanguage ? ((MetaLanguage)hostLanguage).matchesLanguage(language) : hostLanguage == Language.ANY || language.isKindOf(hostLanguage); if (matches) { result.add(bean); } } return new LanguageReferenceProviders(result); }