boolean (@NotNull PsiLanguageInjectionHost host, @NotNull BaseInjection injection, @Nullable LanguageInjectionSupport support, @NotNull MultiHostRegistrar registrar) { Language language = getLanguage(injection); if (language == null) return false; InjectedLanguage injectedLanguage = InjectedLanguage.create(injection.getInjectedLanguageId(), injection.getPrefix(), injection.getSuffix(), false); List<TextRange> ranges = injection.getInjectedArea(host); List<InjectionInfo> list = new ArrayList<>(ranges.size()); for (TextRange range : ranges) { list.add(new InjectionInfo(host, injectedLanguage, range)); } registerInjection(language, host.getContainingFile(), list, registrar); if (support != null) { registerSupport(support, true, host, language); } return !ranges.isEmpty(); }