use super::KeyBinding;
use super::types::{Key, KeyCombo};
use crate::app::action::Action;
pub const SQL_MODAL_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: "⌥Enter",
key: "Alt+Enter",
desc_short: "Run",
description: "Execute query",
action: Action::SqlModalSubmit,
combos: &[KeyCombo::alt(Key::Enter)],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close editor",
action: Action::CloseSqlModal,
combos: &[KeyCombo::plain(Key::Esc)],
},
KeyBinding {
key_short: "↑↓←→",
key: "↑↓←→",
desc_short: "Move",
description: "Move cursor",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Home/End",
key: "Home/End",
desc_short: "Line",
description: "Line start/end",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Tab",
key: "Tab",
desc_short: "Tab/Complete",
description: "Insert tab / Accept completion",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "^Space",
key: "Ctrl+Space",
desc_short: "Complete",
description: "Trigger completion",
action: Action::CompletionTrigger,
combos: &[KeyCombo::ctrl(Key::Char(' '))],
},
KeyBinding {
key_short: "^L",
key: "Ctrl+L",
desc_short: "Clear",
description: "Clear editor",
action: Action::SqlModalClear,
combos: &[KeyCombo::ctrl(Key::Char('l'))],
},
KeyBinding {
key_short: "^O",
key: "Ctrl+O",
desc_short: "History",
description: "Open Query History",
action: Action::OpenQueryHistoryPicker,
combos: &[KeyCombo::ctrl(Key::Char('o'))],
},
];
pub const SQL_MODAL_CONFIRMING_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Execute",
description: "Confirm and execute",
action: Action::SqlModalConfirmExecute,
combos: &[KeyCombo::plain(Key::Enter)],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Back",
description: "Cancel and return to editor",
action: Action::SqlModalCancelConfirm,
combos: &[KeyCombo::plain(Key::Esc)],
},
];
pub const COMMAND_LINE_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: ":quit",
key: ":quit",
desc_short: "Quit",
description: "Quit application",
action: Action::Quit,
combos: &[], },
KeyBinding {
key_short: ":help",
key: ":help",
desc_short: "Help",
description: "Show help",
action: Action::OpenHelp,
combos: &[],
},
KeyBinding {
key_short: ":sql",
key: ":sql",
desc_short: "SQL",
description: "Open SQL Editor",
action: Action::OpenSqlModal,
combos: &[],
},
KeyBinding {
key_short: ":erd",
key: ":erd",
desc_short: "ER Diagram",
description: "Open ER Diagram",
action: Action::OpenErTablePicker,
combos: &[],
},
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Submit",
description: "Submit command",
action: Action::CommandLineSubmit,
combos: &[KeyCombo::plain(Key::Enter)],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Exit",
description: "Exit command line",
action: Action::ExitCommandLine,
combos: &[KeyCombo::plain(Key::Esc)],
},
];
pub const CELL_EDIT_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: ":w",
key: ":w",
desc_short: "Write",
description: "Preview and confirm UPDATE",
action: Action::SubmitCellEditWrite,
combos: &[], },
KeyBinding {
key_short: "type",
key: "type",
desc_short: "Edit",
description: "Edit cell value",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "←→",
key: "←→",
desc_short: "Move",
description: "Move cursor",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Home/End",
key: "Home/End",
desc_short: "Jump",
description: "Jump to start/end",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: ":",
key: ":",
desc_short: "Cmd",
description: "Open command line",
action: Action::EnterCommandLine,
combos: &[KeyCombo::plain(Key::Char(':'))],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Normal",
description: "Exit to Cell Active (draft preserved)",
action: Action::ResultCancelCellEdit,
combos: &[KeyCombo::plain(Key::Esc)],
},
];