void (BaseInjection injection, boolean settingsAvailable) { Language language = InjectorUtils.getLanguage(injection); if (language == null) return; String languageID = language.getID(); List<InjectionInfo> list = new ArrayList<>(); boolean unparsable = false; StringBuilder prefix = new StringBuilder(); //String suffix = ""; for (int i = 0; i < myOperands.length; i++) { PsiElement operand = myOperands[i]; final ElementManipulator<PsiElement> manipulator = ElementManipulators.getManipulator(operand); if (manipulator == null) { unparsable = true; prefix.append(getStringPresentation(operand)); if (i == myOperands.length - 1) { InjectionInfo last = ContainerUtil.getLastItem(list); if (last != null) { InjectedLanguage injected = last.language(); list.set(list.size() - 1, new InjectionInfo(last.host(), InjectedLanguage.create(injected.getID(), injected.getPrefix(), prefix.toString(), false), last.range())); } } } else if (operand instanceof PsiLanguageInjectionHost host) { InjectedLanguage injectedLanguage = InjectedLanguage.create(languageID, prefix.toString(), "", false); TextRange range = manipulator.getRangeInElement(host); list.add(new InjectionInfo(host, injectedLanguage, range)); prefix.setLength(0); } } if (!list.isEmpty()) { processInjection(language, list, settingsAvailable, unparsable); } }