mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
unregister element types by both classloader & language
GitOrigin-RevId: d76e2c0459691be1a689a039a4c5f426cf806b7a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
17d1bed7ab
commit
4783b76af9
@@ -121,6 +121,7 @@ public abstract class Language extends UserDataHolderBase {
|
||||
}
|
||||
|
||||
public static void unregisterLanguage(@NotNull Language language) {
|
||||
IElementType.unregisterElementTypes(language);
|
||||
ReferenceProvidersRegistry.getInstance().unloadProvidersFor(language);
|
||||
ourRegisteredLanguages.remove(language.getClass());
|
||||
ourRegisteredIDs.remove(language.getID());
|
||||
|
||||
@@ -71,6 +71,15 @@ public class IElementType {
|
||||
}
|
||||
}
|
||||
|
||||
public static void unregisterElementTypes(@NotNull Language language) {
|
||||
for (int i = 0; i < ourRegistry.length; i++) {
|
||||
IElementType type = ourRegistry[i];
|
||||
if (type != null && type.getLanguage().equals(language)) {
|
||||
ourRegistry[i] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final short myIndex;
|
||||
@NonNls
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user