summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRavi Kumar <[email protected]>2026-01-13 00:22:36 +0530
committerGitHub <[email protected]>2026-01-12 12:52:36 -0600
commit22c68a6992e9764d71c2a3e058c3fd97136febba (patch)
treeb58a898fbb40c37d83ef514fe15982a80c820244
parentca1b597b010bdf624fd839de479533cf5e4010df (diff)
downloadopencode-22c68a6992e9764d71c2a3e058c3fd97136febba.tar.gz
opencode-22c68a6992e9764d71c2a3e058c3fd97136febba.zip
fix(tui): reopen autocomplete after backspace deletes space (#6031)
Co-authored-by: Aiden Cline <[email protected]>
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx25
1 files changed, 24 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
index 1ecfaaf1f..4f8f979d5 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
@@ -601,8 +601,31 @@ export function Autocomplete(props: {
(store.visible === "/" && value.match(/^\S+\s+\S+\s*$/))
) {
hide()
- return
}
+ return
+ }
+
+ // Check if autocomplete should reopen (e.g., after backspace deleted a space)
+ const offset = props.input().cursorOffset
+ if (offset === 0) return
+
+ // Check for "/" at position 0 - reopen slash commands
+ if (value.startsWith("/") && !value.slice(0, offset).match(/\s/)) {
+ show("/")
+ setStore("index", 0)
+ return
+ }
+
+ // Check for "@" trigger - find the nearest "@" before cursor with no whitespace between
+ const text = value.slice(0, offset)
+ const idx = text.lastIndexOf("@")
+ if (idx === -1) return
+
+ const between = text.slice(idx)
+ const before = idx === 0 ? undefined : value[idx - 1]
+ if ((before === undefined || /\s/.test(before)) && !between.match(/\s/)) {
+ show("@")
+ setStore("index", idx)
}
},
onKeyDown(e: KeyEvent) {