summaryrefslogtreecommitdiffstats
path: root/src/verb/verb.rs
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2021-03-09 20:23:04 +0100
committerCanop <cano.petrole@gmail.com>2021-03-09 20:23:04 +0100
commit3026dd3be18e497770e5dd2bdff72e4cea59c4ea (patch)
tree61c0c4dec1e393e38427a4c094f6fc0017f99ab1 /src/verb/verb.rs
parent4d44b1585cde2b95e4742ca8615bd9c0b2772072 (diff)
allow definition of several key shortcuts for one verb
Using the 'keys' verb attribute, for example { keys: [ f2 ctrl-b ] external: xdg-open https://dystroy.org/broot leave_broot: false } Fix #358
Diffstat (limited to 'src/verb/verb.rs')
-rw-r--r--src/verb/verb.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/verb/verb.rs b/src/verb/verb.rs
index d8aa994..05414b2 100644
--- a/src/verb/verb.rs
+++ b/src/verb/verb.rs
@@ -81,17 +81,25 @@ impl Verb {
need_another_panel,
})
}
-
- pub fn with_key(mut self, key: KeyEvent) -> Self {
- self.keys.push(key);
+ fn update_key_desc(&mut self) {
self.keys_desc = self
.keys
.iter()
.map(|&k| keys::key_event_desc(k))
.collect::<Vec<String>>() // no way to join an iterator today ?
.join(", ");
+ }
+ pub fn with_key(mut self, key: KeyEvent) -> Self {
+ self.keys.push(key);
+ self.update_key_desc();
self
}
+ pub fn add_keys(&mut self, keys: Vec<KeyEvent>) {
+ for key in keys {
+ self.keys.push(key);
+ }
+ self.update_key_desc();
+ }
pub fn with_alt_key(self, chr: char) -> Self {
self.with_key(KeyEvent {
code: KeyCode::Char(chr),