diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java index d2b9fcc8c6bd..f733e8897fd1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java @@ -8,6 +8,8 @@ import com.intellij.configurationStore.SchemeDataHolder; import com.intellij.configurationStore.SchemeExtensionProvider; import com.intellij.ide.WelcomeWizardUtil; import com.intellij.ide.ui.LafManager; +import com.intellij.ide.ui.UITheme; +import com.intellij.ide.ui.laf.UIThemeBasedLookAndFeelInfo; import com.intellij.notification.Notification; import com.intellij.notification.NotificationType; import com.intellij.notification.Notifications; @@ -41,6 +43,7 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -127,6 +130,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers public void reloaded(@NotNull SchemeManager schemeManager, @NotNull Collection schemes) { loadBundledSchemes(); + loadSchemesFromThemes(); initEditableDefaultSchemesCopies(); initEditableBundledSchemesCopies(); } @@ -135,6 +139,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers initDefaultSchemes(); loadBundledSchemes(); + loadSchemesFromThemes(); mySchemeManager.loadSchemes(); String wizardEditorScheme = WelcomeWizardUtil.getWizardEditorScheme(); @@ -172,6 +177,20 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers } } } + + private void loadSchemesFromThemes() { + if (!isUnitTestOrHeadlessMode()) { + for (UIManager.LookAndFeelInfo laf : LafManager.getInstance().getInstalledLookAndFeels()) { + if (laf instanceof UIThemeBasedLookAndFeelInfo) { + UITheme theme = ((UIThemeBasedLookAndFeelInfo)laf).getTheme(); + String path = theme.getEditorScheme(); + if (path != null) { + mySchemeManager.loadBundledScheme(path, theme.getProviderClass()); + } + } + } + } + } private void initEditableBundledSchemesCopies() { for (EditorColorsScheme scheme : mySchemeManager.getAllSchemes()) {