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 047e3c096..ddd460ef6 100644
--- a/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
@@ -70,7 +70,12 @@ export function Autocomplete(props: {
const extmarkStart = store.index
const extmarkEnd = extmarkStart + virtualText.length
- const styleId = part.type === "file" ? props.fileStyleId : part.type === "agent" ? props.agentStyleId : undefined
+ const styleId =
+ part.type === "file"
+ ? props.fileStyleId
+ : part.type === "agent"
+ ? props.agentStyleId
+ : undefined
const extmarkId = input.extmarks.create({
start: extmarkStart,
@@ -169,7 +174,9 @@ export function Autocomplete(props: {
)
})
- const session = createMemo(() => (props.sessionID ? sync.session.get(props.sessionID) : undefined))
+ const session = createMemo(() =>
+ props.sessionID ? sync.session.get(props.sessionID) : undefined,
+ )
const commands = createMemo((): AutocompleteOption[] => {
const results: AutocompleteOption[] = []
const s = session()
@@ -248,9 +255,9 @@ export function Autocomplete(props: {
})
const options = createMemo(() => {
- const mixed: AutocompleteOption[] = (store.visible === "@" ? [...agents(), ...files()] : [...commands()]).filter(
- (x) => x.disabled !== true,
- )
+ const mixed: AutocompleteOption[] = (
+ store.visible === "@" ? [...agents(), ...files()] : [...commands()]
+ ).filter((x) => x.disabled !== true)
if (!filter()) return mixed.slice(0, 10)
const result = fuzzysort.go(filter()!, mixed, {
keys: ["display", "description"],
@@ -320,8 +327,13 @@ export function Autocomplete(props: {
if (!store.visible) {
if (e.name === "@") {
const cursorOffset = props.input().visualCursor.offset
- const charBeforeCursor = cursorOffset === 0 ? undefined : props.value.at(cursorOffset - 1)
- if (charBeforeCursor === " " || charBeforeCursor === undefined) {
+ const charBeforeCursor =
+ cursorOffset === 0 ? undefined : props.value.at(cursorOffset - 1)
+ if (
+ charBeforeCursor === " " ||
+ charBeforeCursor === "\n" ||
+ charBeforeCursor === undefined
+ ) {
show("@")
}
}
@@ -365,9 +377,14 @@ export function Autocomplete(props: {
backgroundColor={index() === store.selected ? Theme.primary : undefined}
flexDirection="row"
>
- {option.display}
+
+ {option.display}
+
- {option.description}
+
+ {" "}
+ {option.description}
+
)}