mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 09:44:21 +01:00
sync
This commit is contained in:
@@ -47,6 +47,9 @@ function init() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
show() {
|
||||||
|
dialog.replace(() => <DialogCommand options={options()} />)
|
||||||
|
},
|
||||||
register(cb: () => CommandOption[]) {
|
register(cb: () => CommandOption[]) {
|
||||||
const results = createMemo(cb)
|
const results = createMemo(cb)
|
||||||
setRegistrations((arr) => [results, ...arr])
|
setRegistrations((arr) => [results, ...arr])
|
||||||
@@ -90,7 +93,10 @@ function DialogCommand(props: { options: CommandOption[] }) {
|
|||||||
return (
|
return (
|
||||||
<DialogSelect
|
<DialogSelect
|
||||||
title="Commands"
|
title="Commands"
|
||||||
options={props.options.map((x) => ({ ...x, footer: x.keybind ? keybind.print(x.keybind) : undefined }))}
|
options={props.options.map((x) => ({
|
||||||
|
...x,
|
||||||
|
footer: x.keybind ? keybind.print(x.keybind) : undefined,
|
||||||
|
}))}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -270,6 +270,11 @@ export function Autocomplete(props: {
|
|||||||
description: "show help",
|
description: "show help",
|
||||||
onSelect: () => command.trigger("help.show"),
|
onSelect: () => command.trigger("help.show"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
display: "/commands",
|
||||||
|
description: "show all commands",
|
||||||
|
onSelect: () => command.show(),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
const max = firstBy(results, [(x) => x.display.length, "desc"])?.display.length
|
const max = firstBy(results, [(x) => x.display.length, "desc"])?.display.length
|
||||||
if (!max) return results
|
if (!max) return results
|
||||||
|
|||||||
@@ -563,10 +563,11 @@ export function Prompt(props: PromptProps) {
|
|||||||
if (store.mode === "normal") autocomplete.onKeyDown(e)
|
if (store.mode === "normal") autocomplete.onKeyDown(e)
|
||||||
if (!autocomplete.visible) {
|
if (!autocomplete.visible) {
|
||||||
if (
|
if (
|
||||||
(e.name === "up" && input.cursorOffset === 0) ||
|
(keybind.match("history_previous", e) && input.cursorOffset === 0) ||
|
||||||
(e.name === "down" && input.cursorOffset === input.plainText.length)
|
(keybind.match("history_next", e) &&
|
||||||
|
input.cursorOffset === input.plainText.length)
|
||||||
) {
|
) {
|
||||||
const direction = e.name === "up" ? -1 : 1
|
const direction = keybind.match("history_previous", e) ? -1 : 1
|
||||||
const item = history.move(direction, input.plainText)
|
const item = history.move(direction, input.plainText)
|
||||||
|
|
||||||
if (item) {
|
if (item) {
|
||||||
|
|||||||
@@ -385,7 +385,11 @@ export namespace Config {
|
|||||||
.optional()
|
.optional()
|
||||||
.default("ctrl+x")
|
.default("ctrl+x")
|
||||||
.describe("Leader key for keybind combinations"),
|
.describe("Leader key for keybind combinations"),
|
||||||
app_exit: z.string().optional().default("ctrl+c,ctrl+d,<leader>q").describe("Exit the application"),
|
app_exit: z
|
||||||
|
.string()
|
||||||
|
.optional()
|
||||||
|
.default("ctrl+c,ctrl+d,<leader>q")
|
||||||
|
.describe("Exit the application"),
|
||||||
editor_open: z.string().optional().default("<leader>e").describe("Open external editor"),
|
editor_open: z.string().optional().default("<leader>e").describe("Open external editor"),
|
||||||
theme_list: z.string().optional().default("<leader>t").describe("List available themes"),
|
theme_list: z.string().optional().default("<leader>t").describe("List available themes"),
|
||||||
sidebar_toggle: z.string().optional().default("<leader>b").describe("Toggle sidebar"),
|
sidebar_toggle: z.string().optional().default("<leader>b").describe("Toggle sidebar"),
|
||||||
@@ -462,6 +466,8 @@ export namespace Config {
|
|||||||
.optional()
|
.optional()
|
||||||
.default("shift+enter,ctrl+j")
|
.default("shift+enter,ctrl+j")
|
||||||
.describe("Insert newline in input"),
|
.describe("Insert newline in input"),
|
||||||
|
history_previous: z.string().optional().default("up").describe("Previous history item"),
|
||||||
|
history_next: z.string().optional().default("down").describe("Previous history item"),
|
||||||
})
|
})
|
||||||
.strict()
|
.strict()
|
||||||
.meta({
|
.meta({
|
||||||
|
|||||||
@@ -150,6 +150,14 @@ export type KeybindsConfig = {
|
|||||||
* Insert newline in input
|
* Insert newline in input
|
||||||
*/
|
*/
|
||||||
input_newline?: string
|
input_newline?: string
|
||||||
|
/**
|
||||||
|
* Previous history item
|
||||||
|
*/
|
||||||
|
history_previous?: string
|
||||||
|
/**
|
||||||
|
* Previous history item
|
||||||
|
*/
|
||||||
|
history_next?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type AgentConfig = {
|
export type AgentConfig = {
|
||||||
|
|||||||
Reference in New Issue
Block a user