flatten to keybind compatible config (#26421)

This commit is contained in:
Sebastian
2026-05-09 01:29:13 +02:00
committed by GitHub
parent 35deef6175
commit a0fc27e424
38 changed files with 1096 additions and 1518 deletions
@@ -46,7 +46,7 @@ export function DialogMcp() {
const actions = createMemo(() => [
{
command: "dialog.action.toggle",
command: "dialog.mcp.toggle",
title: "toggle",
onTrigger: async (option: DialogSelectOption<string>) => {
// Prevent toggling while an operation is already in progress
@@ -8,13 +8,11 @@ import { createDialogProviderOptions, DialogProvider } from "./dialog-provider"
import { DialogVariant } from "./dialog-variant"
import * as fuzzysort from "fuzzysort"
import { useConnected } from "./use-connected"
import { useTuiConfig } from "../context/tui-config"
export function DialogModel(props: { providerID?: string }) {
const local = useLocal()
const sync = useSync()
const dialog = useDialog()
const tuiConfig = useTuiConfig()
const [query, setQuery] = createSignal("")
const connected = useConnected()
@@ -167,7 +165,6 @@ export function DialogModel(props: { providerID?: string }) {
},
},
]}
bindings={tuiConfig.keymap.sections.model}
onFilter={setQuery}
flat={true}
skipFilter={true}
@@ -28,7 +28,7 @@ export function DialogSessionList() {
const toast = useToast()
const [toDelete, setToDelete] = createSignal<string>()
const [search, setSearch] = createDebouncedSignal("", 150)
const deleteHint = useCommandShortcut("dialog.action.delete")
const deleteHint = useCommandShortcut("session.delete")
const [searchResults, { refetch }] = createResource(
() => ({ query: search(), filter: sync.session.query() }),
@@ -190,7 +190,7 @@ export function DialogSessionList() {
}}
actions={[
{
command: "dialog.action.delete",
command: "session.delete",
title: "delete",
onTrigger: async (option) => {
if (toDelete() === option.value) {
@@ -238,7 +238,7 @@ export function DialogSessionList() {
},
},
{
command: "dialog.action.rename",
command: "session.rename",
title: "rename",
onTrigger: async (option) => {
dialog.replace(() => <DialogSessionRename session={option.value} />)
@@ -32,7 +32,7 @@ export function DialogStash(props: { onSelect: (entry: StashEntry) => void }) {
const { theme } = useTheme()
const [toDelete, setToDelete] = createSignal<number>()
const deleteHint = useCommandShortcut("dialog.action.delete")
const deleteHint = useCommandShortcut("stash.delete")
const options = createMemo(() => {
const entries = stash.list()
@@ -70,7 +70,7 @@ export function DialogStash(props: { onSelect: (entry: StashEntry) => void }) {
}}
actions={[
{
command: "dialog.action.delete",
command: "stash.delete",
title: "delete",
onTrigger: (option) => {
if (toDelete() === option.value) {
@@ -87,9 +87,6 @@ export function Autocomplete(props: {
const dimensions = useTerminalDimensions()
const frecency = useFrecency()
const tuiConfig = useTuiConfig()
const {
keymap: { sections },
} = tuiConfig
const [store, setStore] = createStore({
index: 0,
selected: 0,
@@ -575,7 +572,13 @@ export function Autocomplete(props: {
},
},
],
bindings: sections.autocomplete,
bindings: tuiConfig.keybinds.gather("prompt.autocomplete", [
"prompt.autocomplete.prev",
"prompt.autocomplete.next",
"prompt.autocomplete.hide",
"prompt.autocomplete.select",
"prompt.autocomplete.complete",
]),
}))
function show(mode: "@" | "/") {
@@ -147,7 +147,6 @@ export function Prompt(props: PromptProps) {
const project = useProject()
const sync = useSync()
const tuiConfig = useTuiConfig()
const keymapConfig = tuiConfig.keymap
const dialog = useDialog()
const toast = useToast()
const status = createMemo(() => sync.data.session_status?.[props.sessionID ?? ""] ?? { type: "idle" })
@@ -630,7 +629,7 @@ export function Prompt(props: PromptProps) {
useBindings(() => ({
enabled: command.matcher,
bindings: keymapConfig.pick("prompt", [
bindings: tuiConfig.keybinds.gather("prompt.palette", [
"prompt.submit",
"prompt.editor",
"prompt.editor_context.clear",
@@ -865,7 +864,7 @@ export function Prompt(props: PromptProps) {
return {
target: inputTarget,
enabled: inputTarget() !== undefined && !props.disabled,
bindings: keymapConfig.pick("prompt", ["prompt.paste"]),
bindings: tuiConfig.keybinds.get("prompt.paste"),
}
})
@@ -873,7 +872,7 @@ export function Prompt(props: PromptProps) {
return {
target: inputTarget,
enabled: inputTarget() !== undefined && !props.disabled && store.prompt.input !== "",
bindings: keymapConfig.pick("prompt", ["prompt.clear"]),
bindings: tuiConfig.keybinds.get("prompt.clear"),
}
})
@@ -957,7 +956,7 @@ export function Prompt(props: PromptProps) {
},
},
],
bindings: keymapConfig.pick("prompt", ["prompt.history.previous"]),
bindings: tuiConfig.keybinds.get("prompt.history.previous"),
}
})
@@ -995,7 +994,7 @@ export function Prompt(props: PromptProps) {
},
},
],
bindings: keymapConfig.pick("prompt", ["prompt.history.next"]),
bindings: tuiConfig.keybinds.get("prompt.history.next"),
}
})