mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-97264 IntelliLang support for "Path to File" language: settings
This commit is contained in:
@@ -55,6 +55,7 @@ import org.intellij.plugins.intelliLang.inject.InjectorUtils;
|
||||
import org.intellij.plugins.intelliLang.inject.LanguageInjectionSupport;
|
||||
import org.intellij.plugins.intelliLang.inject.config.BaseInjection;
|
||||
import org.intellij.plugins.intelliLang.inject.config.InjectionPlace;
|
||||
import org.intellij.plugins.intelliLang.references.ReferenceInjector;
|
||||
import org.jdom.Document;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -869,12 +870,13 @@ public class InjectionsSettingsUI implements SearchableConfigurable.Parent, NonD
|
||||
originalInjections = new ArrayList<BaseInjection>(ContainerUtil
|
||||
.concat(InjectorUtils.getActiveInjectionSupportIds(), new Function<String, Collection<? extends BaseInjection>>() {
|
||||
public Collection<? extends BaseInjection> fun(final String s) {
|
||||
return ContainerUtil.findAll(
|
||||
List<BaseInjection> injections =
|
||||
CfgInfo.this.cfg instanceof Configuration.Prj ? ((Configuration.Prj)CfgInfo.this.cfg).getOwnInjections(s) : CfgInfo.this.cfg
|
||||
.getInjections(s),
|
||||
new Condition<BaseInjection>() {
|
||||
.getInjections(s);
|
||||
return ContainerUtil.findAll(injections, new Condition<BaseInjection>() {
|
||||
public boolean value(final BaseInjection injection) {
|
||||
return InjectedLanguage.findLanguageById(injection.getInjectedLanguageId()) != null;
|
||||
String id = injection.getInjectedLanguageId();
|
||||
return InjectedLanguage.findLanguageById(id) != null || ReferenceInjector.findById(id) != null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+11
@@ -17,10 +17,12 @@ package org.intellij.plugins.intelliLang.references;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
@@ -38,4 +40,13 @@ public abstract class ReferenceInjector extends Injectable {
|
||||
|
||||
@NotNull
|
||||
public abstract PsiReference[] getReferences(@NotNull PsiElement element, @NotNull final ProcessingContext context, @NotNull TextRange range);
|
||||
|
||||
public static ReferenceInjector findById(final String id) {
|
||||
return ContainerUtil.find(EXTENSION_POINT_NAME.getExtensions(), new Condition<ReferenceInjector>() {
|
||||
@Override
|
||||
public boolean value(ReferenceInjector injector) {
|
||||
return id.equals(injector.getId());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user