From 66fd5707b70d335e7a43a379e5b8a44bea064e07 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 23 Oct 2026 16:38:36 -0400 Subject: [PATCH] tagQueryAt decides in one check, within detekt's return limit Task #6316. Co-Authored-By: Claude Opus 5.5 --- .../main/java/com/fabledsword/inkwell/ui/TagSuggest.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/inkwell/ui/TagSuggest.kt b/android/app/src/main/java/com/fabledsword/inkwell/ui/TagSuggest.kt index 39c9c7d..319302c 100644 --- a/android/app/src/main/java/com/fabledsword/inkwell/ui/TagSuggest.kt +++ b/android/app/src/main/java/com/fabledsword/inkwell/ui/TagSuggest.kt @@ -37,14 +37,16 @@ fun tagQueryAt( text: String, caret: Int, ): TagQuery? { - if (caret < 0 || caret > text.length) return null var i = caret while (i > 0 && text[i - 1].isTagChar()) i-- - if (i == 0 || text[i - 1] != '#') return null val hash = i - 1 - if (hash > 0 && !text[hash - 1].isWhitespace()) return null val query = text.substring(i, caret) - if (query.isNotEmpty() && !Character.isAlphabetic(query[0].code)) return null + val inTag = + hash >= 0 && + text[hash] == '#' && + (hash == 0 || text[hash - 1].isWhitespace()) && + (query.isEmpty() || Character.isAlphabetic(query[0].code)) + if (!inTag) return null var end = caret while (end < text.length && text[end].isTagChar()) end++ return TagQuery(start = hash, end = end, query = query)