diff --git a/.idea/misc.xml b/.idea/misc.xml index cdf5fd583..5f4648f3e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,3 +1,4 @@ + - + - + \ No newline at end of file diff --git a/app/src/main/assets/data/common/tooling-api-all.jar b/app/src/main/assets/data/common/tooling-api-all.jar index ec0cc5f39..eea9d6006 100644 Binary files a/app/src/main/assets/data/common/tooling-api-all.jar and b/app/src/main/assets/data/common/tooling-api-all.jar differ diff --git a/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt index 879b9ea5e..c55369b0d 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt @@ -60,8 +60,6 @@ import java.io.File import kotlin.collections.component1 import kotlin.collections.component2 import kotlin.collections.set -import org.greenrobot.eventbus.Subscribe -import org.greenrobot.eventbus.ThreadMode /** * Base class for EditorActivity. Handles logic for working with file editors. diff --git a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageSpec.kt b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageSpec.kt index 2e35c182f..b30e7a9e0 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageSpec.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/language/treesitter/TreeSitterLanguageSpec.kt @@ -29,18 +29,17 @@ import java.io.Closeable * @author Akash Yadav */ class TreeSitterLanguageSpec -@JvmOverloads -constructor(val spec: TsLanguageSpec, indentsQueryScm: String = "") : Closeable { +@JvmOverloads constructor(val spec: TsLanguageSpec, + indentsQueryScm: String = "" +) : Closeable { // val language: TSLanguage get() = spec.language // - val indentsQuery: TSQuery? = - if (indentsQueryScm.isBlank()) { - TSQuery(language, indentsQueryScm) - } else null + val indentsQuery: TSQuery? = TSQuery.create(language, indentsQueryScm) + .let { if (it.isValid) it else null } init { indentsQuery?.validateOrThrow(name = "indents") @@ -55,7 +54,6 @@ constructor(val spec: TsLanguageSpec, indentsQueryScm: String = "") : Closeable private fun TSQuery.validateOrThrow(name: String) { if (errorType != TSQueryError.None) { throw IllegalArgumentException( - "query(name:$name) parsing failed: ${errorType.name} at text offset $errorOffset" - ) + "query(name:$name) parsing failed: ${errorType.name} at text offset $errorOffset") } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 646d1bb87..230c6a609 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ agp = "8.0.2" agp-tooling = "7.4.2" gradle-tooling = "8.1.1" kotlin = "1.8.21" -tree-sitter = "2.0.0" +tree-sitter = "3.0.0" editor = "0.21.1-5c3385c-SNAPSHOT" glide = "4.15.1" androidx-vectordrawable = "1.1.0" diff --git a/lsp/java/src/main/java/com/itsaky/androidide/lsp/java/parser/ts/TSMethodPruner.kt b/lsp/java/src/main/java/com/itsaky/androidide/lsp/java/parser/ts/TSMethodPruner.kt index 0ce0f5be5..0556b703e 100644 --- a/lsp/java/src/main/java/com/itsaky/androidide/lsp/java/parser/ts/TSMethodPruner.kt +++ b/lsp/java/src/main/java/com/itsaky/androidide/lsp/java/parser/ts/TSMethodPruner.kt @@ -34,7 +34,8 @@ object TSMethodPruner { fun prune(content: StringBuilder, tree: TSTree, cursor: Int) { val root = tree.rootNode - TSQuery(TSLanguageJava.newInstance(), METHOD_BODIES_QUERY).use { query -> + TSQuery.create(TSLanguageJava.newInstance(), METHOD_BODIES_QUERY).use { query -> + check(query.isValid) { "Invalid method bodies query" } TSQueryCursor().use { queryCursor -> queryCursor.exec(query, root) diff --git a/lsp/xml/src/main/java/com/itsaky/androidide/lsp/xml/providers/AdvancedEditProvider.kt b/lsp/xml/src/main/java/com/itsaky/androidide/lsp/xml/providers/AdvancedEditProvider.kt index 064393870..e6008f941 100644 --- a/lsp/xml/src/main/java/com/itsaky/androidide/lsp/xml/providers/AdvancedEditProvider.kt +++ b/lsp/xml/src/main/java/com/itsaky/androidide/lsp/xml/providers/AdvancedEditProvider.kt @@ -164,8 +164,8 @@ object AdvancedEditProvider { queryString: String, action: (TSQuery, List) -> Unit ) { - TSQuery(TSLanguageXml.newInstance(), queryString).use { query -> - if (query.errorType != TSQueryError.None) { + TSQuery.create(TSLanguageXml.newInstance(), queryString).use { query -> + if (!query.isValid || query.errorType != TSQueryError.None) { throw RuntimeException("Invalid query. Please open an issue on GitHub.") }