mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
dynamic plugins: meta languages
GitOrigin-RevId: 687ba5de85dc724785fe41702a273a50dada293e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6d3c9aab1e
commit
1c030d1129
@@ -3,6 +3,7 @@ package com.intellij.uast;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.MetaLanguage;
|
||||
import com.intellij.openapi.extensions.ExtensionPointChangeListener;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.uast.UastLanguagePlugin;
|
||||
@@ -22,7 +23,22 @@ public class UastMetaLanguage extends MetaLanguage {
|
||||
|
||||
Collection<UastLanguagePlugin> languagePlugins = UastLanguagePlugin.Companion.getInstances();
|
||||
myLanguages = new THashSet<>(languagePlugins.size());
|
||||
for (UastLanguagePlugin plugin: languagePlugins) {
|
||||
initLanguages(languagePlugins);
|
||||
|
||||
UastLanguagePlugin.Companion
|
||||
.getExtensionPointName()
|
||||
.getPoint(null)
|
||||
.addExtensionPointListener(new ExtensionPointChangeListener() {
|
||||
@Override
|
||||
public void extensionListChanged() {
|
||||
myLanguages.clear();
|
||||
initLanguages(UastLanguagePlugin.Companion.getInstances());
|
||||
}
|
||||
}, false, null);
|
||||
}
|
||||
|
||||
private void initLanguages(Collection<UastLanguagePlugin> languagePlugins) {
|
||||
for (UastLanguagePlugin plugin : languagePlugins) {
|
||||
myLanguages.add(plugin.getLanguage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<with attribute="implementationClass" implements="com.intellij.psi.PsiAnnotationSupport"/>
|
||||
</extensionPoint>
|
||||
<extensionPoint qualifiedName="com.intellij.testFramework" interface="com.intellij.testIntegration.TestFramework" dynamic="true"/>
|
||||
<extensionPoint qualifiedName="org.jetbrains.uast.uastLanguagePlugin" interface="org.jetbrains.uast.UastLanguagePlugin"/>
|
||||
<extensionPoint qualifiedName="org.jetbrains.uast.uastLanguagePlugin" interface="org.jetbrains.uast.UastLanguagePlugin" dynamic="true"/>
|
||||
<extensionPoint qualifiedName="org.jetbrains.uast.analysis.uastAnalysisPlugin"
|
||||
interface="org.jetbrains.uast.analysis.UastAnalysisPlugin"
|
||||
dynamic="true"/>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<extensionPoint name="editorFactoryDocumentListener" interface="com.intellij.openapi.editor.event.DocumentListener" dynamic="true"/>
|
||||
<extensionPoint name="multiHostInjector" interface="com.intellij.lang.injection.MultiHostInjector" area="IDEA_PROJECT" dynamic="true"/>
|
||||
<extensionPoint name="writingAccessProvider" area="IDEA_PROJECT" interface="com.intellij.openapi.vfs.WritingAccessProvider" dynamic="true"/>
|
||||
<extensionPoint name="metaLanguage" interface="com.intellij.lang.MetaLanguage"/>
|
||||
<extensionPoint name="metaLanguage" interface="com.intellij.lang.MetaLanguage" dynamic="true"/>
|
||||
<extensionPoint name="lang.parserDefinition" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
|
||||
<with attribute="implementationClass" implements="com.intellij.lang.ParserDefinition"/>
|
||||
</extensionPoint>
|
||||
|
||||
Reference in New Issue
Block a user