@Override
  public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context) {

    Language language = context.getLanguage();
    Injection injection = null;
    for (LanguageInjectionContributor contributor : LanguageInjectionContributor.INJECTOR_EXTENSION.allForLanguageOrAny(language)) {
      injection = contributor.getInjection(context);
      if (injection != null) break;
    }

    if (injection == null) return;

    boolean primaryPerformerWasCalled = false;
    boolean injectionIsHandled = false;

    for (LanguageInjectionPerformer performer : LanguageInjectionPerformer.INJECTOR_EXTENSION.allForLanguageOrAny(language)) {
      primaryPerformerWasCalled = primaryPerformerWasCalled || performer.isPrimary();
      if (performer.performInjection(registrar, injection, context)) {
        injectionIsHandled = true;
        break;
      }
    }

    FallbackInjectionPerformer fallbackInjectionPerformer = FallbackInjectionPerformer.getInstance();
    if (fallbackInjectionPerformer != null) {
      if (!primaryPerformerWasCalled && !injectionIsHandled) {
        fallbackInjectionPerformer.performInjection(registrar, injection, context);
      }
      fallbackInjectionPerformer.registerSupportIfNone(context, injection);
    }
  }
@Override
  public void getLanguagesToInject(@NotNull MultiHostRegistrar registrar, @NotNull PsiElement context)