use super::types::{Key, KeyCombo};
use super::{ExecBinding, KeyBinding, ModeRow};
use crate::app::action::Action;
pub const OVERLAY_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Cancel",
description: "Close overlay / Cancel",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close overlay",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Execute",
description: "Execute command",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Select",
description: "Confirm selection",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "j/k / ↑↓",
key: "j / k / ↑ / ↓",
desc_short: "Navigate",
description: "Navigate items",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "type",
key: "type",
desc_short: "Filter",
description: "Type to filter",
action: Action::None,
combos: &[],
},
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Error",
description: "View error details",
action: Action::None,
combos: &[],
},
];
pub const HELP_ROWS: &[ModeRow] = &[
ModeRow {
key_short: "j/k / ↑↓",
key: "j / k / ↑ / ↓",
desc_short: "Scroll",
description: "Scroll down / up",
bindings: &[
ExecBinding {
action: Action::HelpScrollDown,
combos: &[KeyCombo::plain(Key::Char('j')), KeyCombo::plain(Key::Down)],
},
ExecBinding {
action: Action::HelpScrollUp,
combos: &[KeyCombo::plain(Key::Char('k')), KeyCombo::plain(Key::Up)],
},
],
},
ModeRow {
key_short: "?/Esc",
key: "? / Esc",
desc_short: "Close",
description: "Close help",
bindings: &[ExecBinding {
action: Action::CloseHelp,
combos: &[KeyCombo::plain(Key::Char('?')), KeyCombo::plain(Key::Esc)],
}],
},
];
pub const TABLE_PICKER_ROWS: &[ModeRow] = &[
ModeRow {
key_short: "Enter",
key: "Enter",
desc_short: "Select",
description: "Select table",
bindings: &[ExecBinding {
action: Action::ConfirmSelection,
combos: &[KeyCombo::plain(Key::Enter)],
}],
},
ModeRow {
key_short: "↑↓",
key: "↑↓",
desc_short: "Navigate",
description: "Navigate",
bindings: &[
ExecBinding {
action: Action::SelectNext,
combos: &[KeyCombo::plain(Key::Down)],
},
ExecBinding {
action: Action::SelectPrevious,
combos: &[KeyCombo::plain(Key::Up)],
},
],
},
ModeRow {
key_short: "type",
key: "type",
desc_short: "Filter",
description: "Type to filter",
bindings: &[ExecBinding {
action: Action::FilterBackspace,
combos: &[KeyCombo::plain(Key::Backspace)],
}],
},
ModeRow {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close",
bindings: &[ExecBinding {
action: Action::CloseTablePicker,
combos: &[KeyCombo::plain(Key::Esc)],
}],
},
];
pub const ER_PICKER_ROWS: &[ModeRow] = &[
ModeRow {
key_short: "Enter",
key: "Enter",
desc_short: "Generate",
description: "Generate ER diagram",
bindings: &[ExecBinding {
action: Action::ErConfirmSelection,
combos: &[KeyCombo::plain(Key::Enter)],
}],
},
ModeRow {
key_short: "Space",
key: "Space",
desc_short: "Select",
description: "Toggle table selection",
bindings: &[ExecBinding {
action: Action::ErToggleSelection,
combos: &[KeyCombo::plain(Key::Char(' '))],
}],
},
ModeRow {
key_short: "^A",
key: "Ctrl+A",
desc_short: "All",
description: "Select/deselect all tables",
bindings: &[ExecBinding {
action: Action::ErSelectAll,
combos: &[KeyCombo::ctrl(Key::Char('a'))],
}],
},
ModeRow {
key_short: "↑↓",
key: "↑↓",
desc_short: "Navigate",
description: "Navigate",
bindings: &[
ExecBinding {
action: Action::SelectNext,
combos: &[KeyCombo::plain(Key::Down)],
},
ExecBinding {
action: Action::SelectPrevious,
combos: &[KeyCombo::plain(Key::Up)],
},
],
},
ModeRow {
key_short: "type",
key: "type",
desc_short: "Filter",
description: "Type to filter",
bindings: &[ExecBinding {
action: Action::ErFilterBackspace,
combos: &[KeyCombo::plain(Key::Backspace)],
}],
},
ModeRow {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close",
bindings: &[ExecBinding {
action: Action::CloseErTablePicker,
combos: &[KeyCombo::plain(Key::Esc)],
}],
},
];
pub const QUERY_HISTORY_PICKER_ROWS: &[ModeRow] = &[
ModeRow {
key_short: "Enter",
key: "Enter",
desc_short: "Select",
description: "Select query",
bindings: &[ExecBinding {
action: Action::QueryHistoryConfirmSelection,
combos: &[KeyCombo::plain(Key::Enter)],
}],
},
ModeRow {
key_short: "↑↓",
key: "↑↓",
desc_short: "Navigate",
description: "Navigate",
bindings: &[
ExecBinding {
action: Action::QueryHistorySelectNext,
combos: &[KeyCombo::plain(Key::Down)],
},
ExecBinding {
action: Action::QueryHistorySelectPrevious,
combos: &[KeyCombo::plain(Key::Up)],
},
],
},
ModeRow {
key_short: "type",
key: "type",
desc_short: "Filter",
description: "Type to filter",
bindings: &[ExecBinding {
action: Action::QueryHistoryFilterBackspace,
combos: &[KeyCombo::plain(Key::Backspace)],
}],
},
ModeRow {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close",
bindings: &[ExecBinding {
action: Action::CloseQueryHistoryPicker,
combos: &[KeyCombo::plain(Key::Esc)],
}],
},
];
pub const COMMAND_PALETTE_ROWS: &[ModeRow] = &[
ModeRow {
key_short: "Enter",
key: "Enter",
desc_short: "Execute",
description: "Execute command",
bindings: &[ExecBinding {
action: Action::ConfirmSelection,
combos: &[KeyCombo::plain(Key::Enter)],
}],
},
ModeRow {
key_short: "j/k / ↑↓",
key: "j/k / ↑↓",
desc_short: "Navigate",
description: "Navigate",
bindings: &[
ExecBinding {
action: Action::SelectNext,
combos: &[KeyCombo::plain(Key::Char('j')), KeyCombo::plain(Key::Down)],
},
ExecBinding {
action: Action::SelectPrevious,
combos: &[KeyCombo::plain(Key::Char('k')), KeyCombo::plain(Key::Up)],
},
],
},
ModeRow {
key_short: "Esc",
key: "Esc",
desc_short: "Close",
description: "Close",
bindings: &[ExecBinding {
action: Action::CloseCommandPalette,
combos: &[KeyCombo::plain(Key::Esc)],
}],
},
];
pub const CONFIRM_DIALOG_KEYS: &[KeyBinding] = &[
KeyBinding {
key_short: "Enter",
key: "Enter",
desc_short: "Confirm",
description: "Confirm",
action: Action::ConfirmDialogConfirm,
combos: &[KeyCombo::plain(Key::Enter)],
},
KeyBinding {
key_short: "Esc",
key: "Esc",
desc_short: "Cancel",
description: "Cancel",
action: Action::ConfirmDialogCancel,
combos: &[KeyCombo::plain(Key::Esc)],
},
];