Skip to content

@ file autocomplete doesn't trigger after ( — mentionTriggerIndex only allows whitespace #46591

Description

@stondbringa

Description

Description

Typing @ immediately after ( does not trigger file/autocomplete. e.g. (@ or See (@ shows no dropdown, while @ (space before) works.

Steps to reproduce

  1. Open opencode TUI (opencode 1.18.25)
  2. Type foo (@ or See (@
  3. Observe: no @ autocomplete appears
  4. Type foo @ -> works

Expected

@ should trigger after ( (and other common prefix punctuation like [, {, ", ', `) — typical in Markdown [@label](@file) or func(@file).

Actual

No trigger. Must insert a space (@, pick file, then delete space.

Root cause

packages/tui/src/prompt/display.ts:33 mentionTriggerIndex only allows start-of-line or \s:

const before = index === 0 ? undefined : text[index - 1]
if ((before === undefined || /\s/.test(before)) && !/\s/.test(query)) {
  return promptOffsetWidth(text.slice(0, index))
}
( fails /\s/.test("(") so show("@") in packages/tui/src/component/prompt/autocomplete.tsx:308 never fires.
Proposed fix
- if ((before === undefined || /\s/.test(before)) && !/\s/.test(query)) {
+ if ((before === undefined || /[\s\(\[\{"'`]/.test(before)) && !/\s/.test(query)) {
Minimal fix for the reported bug: /[\s\(]/. Extended set covers [@, {@, "@, '@.
Workaround
Type  (@, select, delete space.
Environment
- opencode 1.18.25 (Go binary ~/.opencode/bin/opencode)
- macOS Darwin, zsh

### Plugins

_No response_

### OpenCode version

1.18.25

### Steps to reproduce

_No response_

### Screenshot and/or share link

_No response_

### Operating System

macOS Darwin, zsh

### Terminal

Warp

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions