on master help sign in
fixes showing the last prompt on empty input (#2870)
3dbad04Saber Haj Rabiee
helix-core/src/register.rs+4
@@ -73,6 +73,10 @@ impl Registers {
73 self.read(name).and_then(|entries| entries.first())
73 self.read(name).and_then(|entries| entries.first())
74 }
74 }
75
75
76+ pub fn last(&self, name: char) -> Option<&String> {
77+ self.read(name).and_then(|entries| entries.last())
78+ }
79+
76 pub fn inner(&self) -> &HashMap<char, Register> {
80 pub fn inner(&self) -> &HashMap<char, Register> {
77 &self.inner
81 &self.inner
78 }
82 }
helix-term/src/ui/prompt.rs+2−2
@@ -443,7 +443,7 @@ impl Prompt {
443 let input: Cow<str> = if self.line.is_empty() {
443 let input: Cow<str> = if self.line.is_empty() {
444 // latest value in the register list
444 // latest value in the register list
445 self.history_register
445 self.history_register
446− .and_then(|reg| cx.editor.registers.first(reg))
446+ .and_then(|reg| cx.editor.registers.last(reg))
447 .map(|entry| entry.into())
447 .map(|entry| entry.into())
448 .unwrap_or_else(|| Cow::from(""))
448 .unwrap_or_else(|| Cow::from(""))
449 } else {
449 } else {
@@ -522,7 +522,7 @@ impl Component for Prompt {
522 let input: Cow<str> = if self.line.is_empty() {
522 let input: Cow<str> = if self.line.is_empty() {
523 // latest value in the register list
523 // latest value in the register list
524 self.history_register
524 self.history_register
525− .and_then(|reg| cx.editor.registers.first(reg).cloned())
525+ .and_then(|reg| cx.editor.registers.last(reg).cloned())
526 .map(|entry| entry.into())
526 .map(|entry| entry.into())
527 .unwrap_or_else(|| Cow::from(""))
527 .unwrap_or_else(|| Cow::from(""))
528 } else {
528 } else {