diff --git a/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt b/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt index 4ed8e5e29715..ef23cc80f653 100644 --- a/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt +++ b/platform/platform-impl/bootstrap/src/com/intellij/platform/ide/bootstrap/Islands.kt @@ -29,6 +29,18 @@ suspend fun applyIslandsTheme(afterImportSettings: Boolean) { } val properties = serviceAsync() + + if (PlatformUtils.isRider() && !properties.getBoolean("rider.color.scheme.updated", false)) { + properties.setValue("rider.color.scheme.updated", true) + + val finish = withContext(Dispatchers.EDT) { + changeColorSchemeForRiderIslandsDarkTheme() + } + if (finish) { + return + } + } + if (afterImportSettings) { if (properties.getValue("ide.islands.show.feedback2") != "show.promo") { return @@ -90,4 +102,20 @@ private suspend fun enableTheme() { newTheme.installEditorScheme(colorsManager.getScheme(editorScheme) ?: colorsManager.defaultScheme) lafManager.updateUI() +} + +private suspend fun changeColorSchemeForRiderIslandsDarkTheme(): Boolean { + val colorsManager = EditorColorsManager.getInstance() + val lafManager = serviceAsync() + val currentLaf = lafManager.currentUIThemeLookAndFeel ?: return false + + if (currentLaf.id != "Islands Dark" || colorsManager.globalScheme.displayName != "Rider Dark") { + return false + } + + currentLaf.installEditorScheme(colorsManager.getScheme("Rider Islands Dark") ?: return false) + + lafManager.updateUI() + + return true } \ No newline at end of file