From 29993c5ab4a557b20f0a3d7cb4d4ccef6498273b Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Mon, 18 Dec 2023 00:07:13 +0530 Subject: [PATCH] fix(logview): IDEColorScheme is not set up with LogLanguage --- .../androidide/fragments/output/LogViewFragment.kt | 11 ++++++++++- .../editor/language/treesitter/TreeSitterLanguage.kt | 2 -- .../language/treesitter/TreeSitterLanguageProvider.kt | 4 +++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt b/app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt index 5553f0848..5fabda1c2 100644 --- a/app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt +++ b/app/src/main/java/com/itsaky/androidide/fragments/output/LogViewFragment.kt @@ -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) } } diff --git a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguage.kt b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguage.kt index a2495b10b..29687b9ed 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguage.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguage.kt @@ -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) diff --git a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageProvider.kt b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageProvider.kt index 88e184cfe..1d96de374 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageProvider.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageProvider.kt @@ -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(type).create(context) } catch (e: TSLanguageRegistry.NotRegisteredException) {