Fix RIDER-115237: do not fail import in case a bundled schema cannot be loaded

GitOrigin-RevId: 5c9a8d087a8a551924e3aa0f3cd9716c9a7544bd
This commit is contained in:
Ivan Migalev
2024-07-29 20:11:33 +02:00
committed by intellij-monorepo-bot
parent bf34fcce1d
commit 2f8014502b
8 changed files with 32 additions and 43 deletions

View File

@@ -1,10 +1,21 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.db
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.transfer.backend.db
import com.intellij.ide.startup.importSettings.models.BundledEditorColorScheme
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.editor.colors.EditorColorsManager
object KnownColorSchemes {
val Light: BundledEditorColorScheme = BundledEditorColorScheme.fromManager("IntelliJ Light")!! // here should be ok as they are bundled
val Darcula: BundledEditorColorScheme = BundledEditorColorScheme.fromManager("Darcula")!!
val HighContrast: BundledEditorColorScheme = BundledEditorColorScheme.fromManager("High contrast")!!
}
val Light: BundledEditorColorScheme? = findScheme("IntelliJ Light")
val Darcula: BundledEditorColorScheme? = findScheme("Darcula")
val HighContrast: BundledEditorColorScheme? = findScheme("High contrast")
private fun findScheme(name: String): BundledEditorColorScheme? = BundledEditorColorScheme.fromManager(name) ?: run {
logger.error(
"Unable to find bundled color scheme \"$name\". " +
"All available schemes: ${EditorColorsManager.getInstance().allSchemes.joinToString(", ", "\"", "\"") { it.name }}.")
null
}
}
private val logger = logger<KnownColorSchemes>()

View File

@@ -1,15 +1,14 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vscode
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.db.KnownKeymaps
import com.intellij.ide.startup.importSettings.db.KnownLafs
import com.intellij.ide.startup.importSettings.db.WindowsEnvVariables
import com.intellij.ide.startup.importSettings.models.Settings
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.transfer.backend.providers.vscode.parsers.*
import com.intellij.openapi.util.SystemInfo
import com.intellij.openapi.util.SystemInfoRt
import com.intellij.openapi.util.io.FileUtil
import kotlinx.coroutines.CoroutineScope
import java.io.File
import java.io.IOException

View File

@@ -1,20 +0,0 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vscode.mappings
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.models.BundledEditorColorScheme
object SchemesMappings {
fun schemeMap(scheme: String): BundledEditorColorScheme = when (scheme) {
"vs" -> KnownColorSchemes.Light
"vs-dark" -> KnownColorSchemes.Darcula
"hc-black" -> KnownColorSchemes.HighContrast
"Monokai" -> KnownColorSchemes.Darcula //KnownColorSchemes.Monokai
"Solarized Dark" -> KnownColorSchemes.Darcula //KnownColorSchemes.SolarizedDark
"Solarized Light" -> KnownColorSchemes.Light //KnownColorSchemes.SolarizedLight
else -> otherSchemeConverter(scheme)
}
private fun otherSchemeConverter(scheme: String) = if (scheme.lowercase().contains("light")) KnownColorSchemes.Light
else KnownColorSchemes.Darcula
}

View File

@@ -5,12 +5,12 @@ import com.fasterxml.jackson.databind.node.ArrayNode
import com.fasterxml.jackson.databind.node.JsonNodeType
import com.fasterxml.jackson.databind.node.ObjectNode
import com.intellij.ide.RecentProjectMetaInfo
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.db.KnownLafs
import com.intellij.ide.startup.importSettings.models.RecentPathInfo
import com.intellij.ide.startup.importSettings.models.Settings
import com.intellij.ide.startup.importSettings.providers.vscode.mappings.ThemesMappings
import com.intellij.ide.startup.importSettings.transfer.ExternalProjectImportChecker
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.diagnostic.runAndLogException
import com.intellij.openapi.util.SystemInfo

View File

@@ -1,13 +1,13 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vsmac
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.db.KnownKeymaps
import com.intellij.ide.startup.importSettings.db.KnownLafs
import com.intellij.ide.startup.importSettings.models.Settings
import com.intellij.ide.startup.importSettings.providers.vsmac.parsers.GeneralSettingsParser
import com.intellij.ide.startup.importSettings.providers.vsmac.parsers.KeyBindingsParser
import com.intellij.ide.startup.importSettings.providers.vsmac.parsers.RecentProjectsParser
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.transfer.backend.providers.vsmac.parsers.GeneralSettingsParser
import java.io.File
class VSMacSettingsProcessor {

View File

@@ -1,12 +1,11 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vsmac.mappings
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.transfer.backend.providers.vsmac.mappings
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.models.BundledEditorColorScheme
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
object SchemesMappings {
fun schemeMap(scheme: String): BundledEditorColorScheme = when (scheme) {
fun schemeMap(scheme: String): BundledEditorColorScheme? = when (scheme) {
"Light" -> KnownColorSchemes.Light
"Dark" -> KnownColorSchemes.Darcula
"Gruvbox" -> KnownColorSchemes.Darcula
@@ -22,4 +21,4 @@ object SchemesMappings {
"Legacy Light" -> KnownColorSchemes.Light
else -> if (scheme.lowercase().endsWith("light")) KnownColorSchemes.Light else KnownColorSchemes.Darcula
}
}
}

View File

@@ -1,11 +1,11 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vsmac.parsers
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.transfer.backend.providers.vsmac.parsers
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.db.KnownLafs
import com.intellij.ide.startup.importSettings.models.Settings
import com.intellij.ide.startup.importSettings.providers.vsmac.mappings.SchemesMappings
import com.intellij.ide.startup.importSettings.providers.vsmac.mappings.ThemesMappings
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.transfer.backend.providers.vsmac.mappings.SchemesMappings
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.util.JDOMUtil
import org.jdom.Element

View File

@@ -1,10 +1,10 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.startup.importSettings.providers.vswin.parsers
import com.intellij.ide.startup.importSettings.db.KnownColorSchemes
import com.intellij.ide.startup.importSettings.db.KnownLafs
import com.intellij.ide.startup.importSettings.models.Settings
import com.intellij.ide.startup.importSettings.providers.vswin.utilities.VSHive
import com.intellij.ide.startup.importSettings.transfer.backend.db.KnownColorSchemes
import com.intellij.openapi.diagnostic.logger
class VSParser(private val hive: VSHive) {