[java/groovy] WEB-72084 Migrate language injectors to the new MultiHostRegistrar API.

GitOrigin-RevId: 9e44ecd21957b30cca29f9ad5e5bd3607eff9ed4
This commit is contained in:
Piotr Tomiak
2025-04-18 14:29:06 +02:00
committed by intellij-monorepo-bot
parent ac70fad86a
commit 5d569bb187
3 changed files with 17 additions and 17 deletions

View File

@@ -11,7 +11,6 @@ import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.psi.impl.source.tree.java.PsiFragmentImpl;
import com.intellij.psi.injection.ReferenceInjector;
import com.intellij.psi.search.LocalSearchScope;
@@ -80,15 +79,15 @@ public final class ConcatenationInjector implements ConcatenationAwareInjector {
List<InjectionInfo> list,
boolean settingsAvailable,
boolean unparsable) {
InjectorUtils.registerInjection(language, containingFile, list, registrar);
InjectorUtils.registerSupport(getLanguageInjectionSupport(), settingsAvailable, list.get(0).host(), language);
InjectorUtils.registerInjection(
language, containingFile, list, registrar, registrar -> {
registrar
.putInjectedFileUserData(LanguageInjectionSupport.TEMPORARY_INJECTED_LANGUAGE, tempInjectedLanguage)
.frankensteinInjection(unparsable);
InjectorUtils.registerSupport(registrar, getLanguageInjectionSupport(), settingsAvailable);
}
);
PsiLanguageInjectionHost host = list.get(0).host();
if (tempLanguage != null) {
InjectorUtils
.putInjectedFileUserData(host, language, LanguageInjectionSupport.TEMPORARY_INJECTED_LANGUAGE, tempInjectedLanguage);
}
InjectorUtils
.putInjectedFileUserData(host, language, InjectedLanguageUtil.FRANKENSTEIN_INJECTION, unparsable ? Boolean.TRUE : null);
return Pair.create(host, language);
}

View File

@@ -14,6 +14,7 @@ import com.intellij.util.SmartList
import org.intellij.plugins.intelliLang.inject.InjectedLanguage
import org.intellij.plugins.intelliLang.inject.InjectorUtils
import org.intellij.plugins.intelliLang.inject.InjectorUtils.InjectionInfo
import org.intellij.plugins.intelliLang.inject.registerSupport
class JavaInjectionPerformer : LanguageInjectionPerformer {
override fun isPrimary(): Boolean = true
@@ -49,10 +50,10 @@ class JavaInjectionPerformer : LanguageInjectionPerformer {
infos.add(InjectionInfo(operand, injectionPart, ElementManipulators.getValueTextRange(operand)))
}
InjectorUtils.registerInjection(language, containingFile, infos, registrar)
injection.supportId?.let { InjectorUtils.findInjectionSupport(it) }?.let {
InjectorUtils.registerSupport(it, false, context, language)
InjectorUtils.registerInjection(language, containingFile, infos, registrar) { registrar ->
injection.supportId
?.let { InjectorUtils.findInjectionSupport(it) }
?.let { registrar.registerSupport(it, false) }
}
return true
}

View File

@@ -8,7 +8,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.psi.search.LocalSearchScope;
import com.intellij.psi.search.searches.ReferencesSearch;
import com.intellij.psi.tree.IElementType;
@@ -57,9 +56,10 @@ public final class GrConcatenationAwareInjector implements ConcatenationAwareInj
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);
InjectorUtils.registerInjection(language, file, list, registrar, registrar -> {
InjectorUtils.registerSupport(registrar, support, settingsAvailable);
registrar.frankensteinInjection(unparsable);
});
}
@Override