diff options
| author | Ravi Kumar <[email protected]> | 2026-01-13 00:22:36 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-12 12:52:36 -0600 |
| commit | 22c68a6992e9764d71c2a3e058c3fd97136febba (patch) | |
| tree | b58a898fbb40c37d83ef514fe15982a80c820244 | |
| parent | ca1b597b010bdf624fd839de479533cf5e4010df (diff) | |
| download | opencode-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.tsx | 25 |
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) { |
