Add quit mode and key bindings

`:q<enter>` -> Just quit.
`:qp` -> quit printing pwd.
`:qf` -> quit printing focus.
`:qs` -> quit printing selection.
`:qr` -> quit printing result.

Ref: https://github.com/sayanarijit/xplr/issues/257
pull/260/head
Arijit Basu 3 years ago committed by Arijit Basu
parent 6b03598b5d
commit f6d1be61d5

@ -828,6 +828,9 @@ pub struct BuiltinModesConfig {
#[serde(default)]
pub switch_layout: Mode,
#[serde(default)]
pub quit: Mode,
}
impl BuiltinModesConfig {
@ -857,6 +860,7 @@ impl BuiltinModesConfig {
"relative path does not contain" => Some(&self.relative_path_does_not_contain),
"switch layout" => Some(&self.switch_layout),
"switch_layout" => Some(&self.switch_layout),
"quit" => Some(&self.quit),
_ => None,
}
}
@ -945,6 +949,11 @@ impl BuiltinModesConfig {
pub fn recover(&self) -> &Mode {
&self.recover
}
/// Get a reference to the builtin modes config's quit.
pub fn quit(&self) -> &Mode {
&self.quit
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]

@ -1345,9 +1345,10 @@ xplr.config.modes.builtin.action = {
}
},
["q"] = {
help = "quit",
help = "quit options",
messages = {
"Quit",
"PopMode",
{ SwitchModeBuiltin = "quit" },
}
}
},
@ -1367,6 +1368,59 @@ xplr.config.modes.builtin.action = {
}
}
------ Quit
xplr.config.modes.builtin.quit = {
name = "quit",
help = nil,
extra_help = nil,
key_bindings = {
on_key = {
enter = {
help = "just quit",
messages = {
"Quit",
}
},
p = {
help = "quit printing pwd",
messages = {
"PrintPwdAndQuit",
}
},
f = {
help = "quit printing focus",
messages = {
"PrintFocusPathAndQuit",
}
},
s = {
help = "quit printing selection",
messages = {
"PrintSelectionAndQuit",
}
},
r = {
help = "quit printing result",
messages = {
"PrintResultAndQuit",
}
},
esc = {
help = "cancel",
messages = {
"PopMode",
}
},
["ctrl-c"] = {
help = "terminate",
messages = {
"Terminate",
}
}
}
}
}
------ Search
xplr.config.modes.builtin.search = {
name = "search",

Loading…
Cancel
Save