fix(logview): IDEColorScheme is not set up with LogLanguage

This commit is contained in:
Akash Yadav
2023-12-18 00:07:13 +05:30
parent 06e6c5659b
commit 29993c5ab4
3 changed files with 13 additions and 4 deletions
@@ -25,6 +25,8 @@ import com.blankj.utilcode.util.ThreadUtils
import com.itsaky.androidide.R
import com.itsaky.androidide.databinding.FragmentLogBinding
import com.itsaky.androidide.editor.language.treesitter.LogLanguage
import com.itsaky.androidide.editor.language.treesitter.TreeSitterLanguageProvider
import com.itsaky.androidide.editor.schemes.IDEColorScheme
import com.itsaky.androidide.editor.schemes.IDEColorSchemeProvider
import com.itsaky.androidide.fragments.EmptyStateFragment
import com.itsaky.androidide.models.LogLine
@@ -243,7 +245,14 @@ abstract class LogViewFragment :
coroutineScope = editor.editorScope,
type = LogLanguage.TS_TYPE
) { scheme ->
editor.applyTreeSitterLang(LogLanguage(requireContext()), LogLanguage.TS_TYPE, scheme)
val language = TreeSitterLanguageProvider.forType(LogLanguage.TS_TYPE, requireContext())
checkNotNull(language) { "No TreeSitterLanguage found for type ${LogLanguage.TS_TYPE}" }
if (scheme is IDEColorScheme) {
language.setupWith(scheme)
}
editor.applyTreeSitterLang(language, LogLanguage.TS_TYPE, scheme)
}
}
@@ -56,8 +56,6 @@ abstract class TreeSitterLanguage(
private var languageScheme: LanguageScheme? = null
private val log = ILogger.newInstance("TreeSitterLanguage")
init {
this.languageSpec = getLanguageSpec(context, langType, lang, newLocalCaptureSpec(langType))
this.tsTheme = TsTheme(languageSpec.spec.tsQuery)
@@ -36,8 +36,10 @@ object TreeSitterLanguageProvider {
return null
}
val type = file.extension
return forType(file.extension, context)
}
fun forType(type: String, context: Context): TreeSitterLanguage? {
return try {
TSLanguageRegistry.instance.getFactory<TreeSitterLanguage>(type).create(context)
} catch (e: TSLanguageRegistry.NotRegisteredException) {