Unnamed repository; edit this file 'description' to name the repository.
Keymap infobox: Idiomatic body tuple.
Does not change any behavior other than making the tuple slightly more idiomatic. Keymap infobox shows key events, then the respective description. This commit makes sure that order is used from the get go, rather than flipping it midway.
gibbz00 2023-06-07
parent 3a0892f · commit 19326d2
-rw-r--r--helix-term/src/keymap.rs10
-rw-r--r--helix-view/src/info.rs4
2 files changed, 7 insertions, 7 deletions
diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs
index b5f71135..b9e0ec1d 100644
--- a/helix-term/src/keymap.rs
+++ b/helix-term/src/keymap.rs
@@ -77,7 +77,7 @@ impl KeyTrieNode {
}
pub fn infobox(&self) -> Info {
- let mut body: Vec<(&str, BTreeSet<KeyEvent>)> = Vec::with_capacity(self.len());
+ let mut body: Vec<(BTreeSet<KeyEvent>, &str)> = Vec::with_capacity(self.len());
for (&key, trie) in self.iter() {
let desc = match trie {
KeyTrie::MappableCommand(cmd) => {
@@ -89,14 +89,14 @@ impl KeyTrieNode {
KeyTrie::Node(n) => n.name(),
KeyTrie::Sequence(_) => "[Multiple commands]",
};
- match body.iter().position(|(d, _)| d == &desc) {
+ match body.iter().position(|(_, d)| d == &desc) {
Some(pos) => {
- body[pos].1.insert(key);
+ body[pos].0.insert(key);
}
- None => body.push((desc, BTreeSet::from([key]))),
+ None => body.push((BTreeSet::from([key]), desc)),
}
}
- body.sort_unstable_by_key(|(_, keys)| {
+ body.sort_unstable_by_key(|(keys, _)| {
self.order
.iter()
.position(|&k| k == *keys.iter().next().unwrap())
diff --git a/helix-view/src/info.rs b/helix-view/src/info.rs
index 3080cf8e..eced78e1 100644
--- a/helix-view/src/info.rs
+++ b/helix-view/src/info.rs
@@ -55,10 +55,10 @@ impl Info {
}
}
- pub fn from_keymap(title: &str, body: Vec<(&str, BTreeSet<KeyEvent>)>) -> Self {
+ pub fn from_keymap(title: &str, body: Vec<(BTreeSet<KeyEvent>, &str)>) -> Self {
let body: Vec<_> = body
.into_iter()
- .map(|(desc, events)| {
+ .map(|(events, desc)| {
let events = events.iter().map(ToString::to_string).collect::<Vec<_>>();
(events.join(", "), desc)
})