diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
index 59d4cbd61de7..3c4bd4c8f0aa 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml
@@ -340,7 +340,7 @@
-
+
diff --git a/plugins/devkit/devkit-core/src/themes/metadata/UIThemeMetadataService.java b/plugins/devkit/devkit-core/src/themes/metadata/UIThemeMetadataService.java
index 66f039a9b8cd..21c45ac80f91 100644
--- a/plugins/devkit/devkit-core/src/themes/metadata/UIThemeMetadataService.java
+++ b/plugins/devkit/devkit-core/src/themes/metadata/UIThemeMetadataService.java
@@ -4,6 +4,7 @@ package org.jetbrains.idea.devkit.themes.metadata;
import com.intellij.ide.ui.UIThemeMetadata;
import com.intellij.ide.ui.UIThemeMetadataProvider;
import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.extensions.ExtensionPointAdapter;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.util.Pair;
import com.intellij.util.PairProcessor;
@@ -26,6 +27,17 @@ public class UIThemeMetadataService {
}
public UIThemeMetadataService() {
+ loadMetadata();
+ EP_NAME.addExtensionPointListener(new ExtensionPointAdapter<>() {
+ @Override
+ public void extensionListChanged() {
+ myCache.clear();
+ loadMetadata();
+ }
+ }, null);
+ }
+
+ private void loadMetadata() {
final List themeMetadata = ContainerUtil.mapNotNull(EP_NAME.getExtensionList(), UIThemeMetadataProvider::loadMetadata);
for (UIThemeMetadata metadata : themeMetadata) {
myCache.put(metadata, ContainerUtil.newMapFromValues(metadata.getUiKeyMetadata().iterator(), o -> o.getKey()));