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.")
}