mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[java/groovy] WEB-72084 Migrate language injectors to the new MultiHostRegistrar API.
GitOrigin-RevId: 9e44ecd21957b30cca29f9ad5e5bd3607eff9ed4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ac70fad86a
commit
5d569bb187
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user