on master help sign in
Keymap infobox: Idiomatic body tuple.
19326d2gibbz00
helix-term/src/keymap.rs+5−5
@@ -77,7 +77,7 @@ impl KeyTrieNode {
77 }
77 }
78
78
79 pub fn infobox(&self) -> Info {
79 pub fn infobox(&self) -> Info {
80− let mut body: Vec<(&str, BTreeSet<KeyEvent>)> = Vec::with_capacity(self.len());
80+ let mut body: Vec<(BTreeSet<KeyEvent>, &str)> = Vec::with_capacity(self.len());
81 for (&key, trie) in self.iter() {
81 for (&key, trie) in self.iter() {
82 let desc = match trie {
82 let desc = match trie {
83 KeyTrie::MappableCommand(cmd) => {
83 KeyTrie::MappableCommand(cmd) => {
@@ -89,14 +89,14 @@ impl KeyTrieNode {
89 KeyTrie::Node(n) => n.name(),
89 KeyTrie::Node(n) => n.name(),
90 KeyTrie::Sequence(_) => "[Multiple commands]",
90 KeyTrie::Sequence(_) => "[Multiple commands]",
91 };
91 };
92− match body.iter().position(|(d, _)| d == &desc) {
92+ match body.iter().position(|(_, d)| d == &desc) {
93 Some(pos) => {
93 Some(pos) => {
94− body[pos].1.insert(key);
94+ body[pos].0.insert(key);
95 }
95 }
96− None => body.push((desc, BTreeSet::from([key]))),
96+ None => body.push((BTreeSet::from([key]), desc)),
97 }
97 }
98 }
98 }
99− body.sort_unstable_by_key(|(_, keys)| {
99+ body.sort_unstable_by_key(|(keys, _)| {
100 self.order
100 self.order
101 .iter()
101 .iter()
102 .position(|&k| k == *keys.iter().next().unwrap())
102 .position(|&k| k == *keys.iter().next().unwrap())
helix-view/src/info.rs+2−2
@@ -55,10 +55,10 @@ impl Info {
55 }
55 }
56 }
56 }
57
57
58− pub fn from_keymap(title: &str, body: Vec<(&str, BTreeSet<KeyEvent>)>) -> Self {
58+ pub fn from_keymap(title: &str, body: Vec<(BTreeSet<KeyEvent>, &str)>) -> Self {
59 let body: Vec<_> = body
59 let body: Vec<_> = body
60 .into_iter()
60 .into_iter()
61− .map(|(desc, events)| {
61+ .map(|(events, desc)| {
62 let events = events.iter().map(ToString::to_string).collect::<Vec<_>>();
62 let events = events.iter().map(ToString::to_string).collect::<Vec<_>>();
63 (events.join(", "), desc)
63 (events.join(", "), desc)
64 })
64 })