mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
feat: improved error handling in case color scheme cannot be parsed
This commit is contained in:
@@ -43,9 +43,13 @@ object IDEColorSchemeProvider {
|
||||
private const val SCHEME_FILE = "scheme.file"
|
||||
|
||||
val currentScheme: IDEColorScheme? by lazy {
|
||||
this.schemes[colorScheme]?.let {
|
||||
it.load()
|
||||
it
|
||||
val scheme = this.schemes[colorScheme] ?: return@lazy null
|
||||
return@lazy try {
|
||||
scheme.load()
|
||||
scheme
|
||||
} catch (err: Exception) {
|
||||
log.error("An error occurred while loading color scheme '$colorScheme'", err)
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,8 +104,6 @@ object IDEColorSchemeProvider {
|
||||
scheme.langs = langs.toTypedArray()
|
||||
schemes[schemeDir.name] = scheme
|
||||
}
|
||||
|
||||
currentScheme!!
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
+16
-4
@@ -17,20 +17,32 @@
|
||||
|
||||
package com.itsaky.androidide.editor.schemes
|
||||
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
import io.github.rosemoe.sora.editor.ts.LocalsCaptureSpec
|
||||
|
||||
/**
|
||||
* Provides local
|
||||
*
|
||||
* @author Akash Yadav */
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
object LocalCaptureSpecProvider {
|
||||
|
||||
private val log = ILogger.newInstance("LocalCaptureSpecProvider")
|
||||
|
||||
@JvmStatic
|
||||
fun newLocalCaptureSpec(type: String): LocalsCaptureSpec {
|
||||
val scheme = IDEColorSchemeProvider.currentScheme!!
|
||||
val lang = scheme.languages[type] ?: return LocalsCaptureSpec.DEFAULT
|
||||
val lang =
|
||||
IDEColorSchemeProvider.currentScheme?.languages?.get(type)
|
||||
?: run {
|
||||
log.error(
|
||||
"Cannot create LocalsCaptureSpec",
|
||||
"Failed to load current color scheme.",
|
||||
"Falling back to default implementation"
|
||||
)
|
||||
return LocalsCaptureSpec.DEFAULT
|
||||
}
|
||||
return object : LocalsCaptureSpec() {
|
||||
|
||||
|
||||
override fun isDefinitionCapture(captureName: String): Boolean {
|
||||
return lang.isLocalDef(captureName)
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user