void (@NotNull final MultiHostRegistrar registrar, final PsiElement @NotNull ... operands) { if (operands.length == 0) return; final PsiFile file = operands[0].getContainingFile(); if (!(file instanceof GroovyFileBase)) return; LanguageInjectionSupport support = InjectorUtils.findNotNullInjectionSupport(GroovyLanguageInjectionSupport.GROOVY_SUPPORT_ID); Project project = file.getProject(); new InjectionProcessor(Configuration.getProjectInstance(project), support, operands) { @Override protected void processInjection(Language language, List<InjectionInfo> list, boolean settingsAvailable, boolean unparsable) { InjectorUtils.registerInjection(language, file, list, registrar); InjectorUtils.registerSupport(support, settingsAvailable, list.get(0).host(), language); InjectorUtils.putInjectedFileUserData(list.get(0).host(), language, InjectedLanguageUtil.FRANKENSTEIN_INJECTION, unparsable); } @Override protected boolean areThereInjectionsWithName(String methodName, boolean annoOnly) { if (methodName == null) return false; if (getAnnotatedElementsValue(project).contains(methodName)) { return true; } if (!annoOnly && getXmlAnnotatedElementsValue(project).contains(methodName)) { return true; } return false; } }.processInjections(); }