Lazy programmer hack for key bindings

pull/3/head
Arijit Basu 3 years ago
parent 720ba38b4d
commit 758f362fee
No known key found for this signature in database
GPG Key ID: 7D7BF809E7378863

2
Cargo.lock generated

@ -1096,7 +1096,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "xplr"
version = "0.1.1"
version = "0.1.2"
dependencies = [
"criterion",
"crossterm",

@ -1,6 +1,6 @@
[package]
name = "xplr"
version = "0.1.1"
version = "0.1.2"
authors = ["Arijit Basu <sayanarijit@gmail.com>"]
edition = "2018"
description = "An experimental, minimal, configurable TUI file explorer, stealing ideas from nnn and fzf."

@ -31,7 +31,6 @@ impl Default for Format {
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum GlobalAction {
// Common actions
ToggleShowHidden,
Back,
@ -54,7 +53,6 @@ pub enum GlobalAction {
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum ExploreModeAction {
// Common actions
ToggleShowHidden,
Back,
@ -86,7 +84,6 @@ pub enum ExploreModeAction {
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum SelectModeAction {
// Common actions
ToggleShowHidden,
Back,
@ -165,126 +162,100 @@ pub struct KeyBindings {
impl Default for KeyBindings {
fn default() -> Self {
let mut global: HashMap<Key, GlobalActionMenu> = Default::default();
let mut explore_mode: HashMap<Key, ExploreModeActionMenu> = Default::default();
let explore_submodes: HashMap<String, ExploreSubmodeActionMenu> = Default::default();
let mut select_mode: HashMap<Key, SelectModeActionMenu> = Default::default();
let select_submodes: HashMap<String, SelectSubmodeActionMenu> = Default::default();
global.insert(
Key::CtrlC,
GlobalActionMenu {
help: "quit".into(),
actions: vec![GlobalAction::Quit],
},
);
global.insert(
Key::Q,
GlobalActionMenu {
help: "quit".into(),
actions: vec![GlobalAction::Quit],
},
);
global.insert(
Key::Escape,
GlobalActionMenu {
help: "quit".into(),
actions: vec![GlobalAction::Quit],
},
);
global.insert(
Key::Left,
GlobalActionMenu {
help: "left".into(),
actions: vec![GlobalAction::Back],
},
);
global.insert(
Key::Dot,
GlobalActionMenu {
help: "show/hide hidden files".into(),
actions: vec![GlobalAction::ToggleShowHidden],
},
);
global.insert(
Key::Right,
GlobalActionMenu {
help: "enter".into(),
actions: vec![GlobalAction::Enter],
},
);
global.insert(
Key::Up,
GlobalActionMenu {
help: "<prev".into(),
actions: vec![GlobalAction::FocusPrevious],
},
);
global.insert(
Key::Down,
GlobalActionMenu {
help: "next>".into(),
actions: vec![GlobalAction::FocusNext],
},
);
global.insert(
Key::G,
GlobalActionMenu {
help: "top".into(),
actions: vec![GlobalAction::FocusFirst],
},
);
global.insert(
Key::ShiftG,
GlobalActionMenu {
help: "bottom".into(),
actions: vec![GlobalAction::FocusLast],
},
);
global.insert(
Key::Tilde,
GlobalActionMenu {
help: "home".into(),
actions: vec![GlobalAction::ChangeDirectory("~".to_string())],
},
);
explore_mode.insert(
Key::Space,
ExploreModeActionMenu {
help: "select".into(),
actions: vec![ExploreModeAction::Select, ExploreModeAction::FocusNext],
},
);
select_mode.insert(
Key::Space,
SelectModeActionMenu {
help: "select/unselect".into(),
actions: vec![
SelectModeAction::ToggleSelection,
SelectModeAction::FocusNext,
],
},
);
Self {
global,
explore_mode,
explore_submodes,
select_mode,
select_submodes,
}
let yaml = r###"
global:
ctrl-c:
help: quit
actions:
- Quit
q:
help: quit
actions:
- Quit
question-mark:
help: print debug info
actions:
- PrintAppStateAndQuit
up:
help: up
actions:
- FocusPrevious
down:
help: down
actions:
- FocusNext
shift-g:
help: bottom
actions:
- FocusLast
forward-slash:
help: go root
actions:
- ChangeDirectory: /
tilde:
help: go home
actions:
- ChangeDirectory: "~"
dot:
help: toggle show hidden
actions:
- ToggleShowHidden
right:
help: enter
actions:
- Enter
left:
help: back
actions:
- Back
escape:
help: quit
actions:
- Quit
explore_mode:
g:
help: go to
actions:
- EnterSubmode: GoTo
return:
help: done
actions:
- PrintFocusedAndQuit
space:
help: select
actions:
- Select
- FocusNext
explore_submodes:
GoTo:
g:
help: top
actions:
- FocusFirst
- ExitSubmode
select_mode:
space:
help: toggle selection
actions:
- ToggleSelection
- FocusNext
g:
help: go to
actions:
- EnterSubmode: GoTo
return:
help: done
actions:
- PrintSelectedAndQuit
select_submodes:
GoTo:
g:
help: top
actions:
- FocusFirst
- ExitSubmode
"###;
serde_yaml::from_str(yaml).unwrap()
}
}

Loading…
Cancel
Save