diff options
-rw-r--r-- | helix-core/src/register.rs | 4 | ||||
-rw-r--r-- | helix-term/src/ui/prompt.rs | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/helix-core/src/register.rs b/helix-core/src/register.rs index 7fa34644..1cff77ba 100644 --- a/helix-core/src/register.rs +++ b/helix-core/src/register.rs @@ -73,6 +73,10 @@ impl Registers { self.read(name).and_then(|entries| entries.first()) } + pub fn last(&self, name: char) -> Option<&String> { + self.read(name).and_then(|entries| entries.last()) + } + pub fn inner(&self) -> &HashMap<char, Register> { &self.inner } diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs index beba8ce9..55b08032 100644 --- a/helix-term/src/ui/prompt.rs +++ b/helix-term/src/ui/prompt.rs @@ -443,7 +443,7 @@ impl Prompt { let input: Cow<str> = if self.line.is_empty() { // latest value in the register list self.history_register - .and_then(|reg| cx.editor.registers.first(reg)) + .and_then(|reg| cx.editor.registers.last(reg)) .map(|entry| entry.into()) .unwrap_or_else(|| Cow::from("")) } else { @@ -522,7 +522,7 @@ impl Component for Prompt { let input: Cow<str> = if self.line.is_empty() { // latest value in the register list self.history_register - .and_then(|reg| cx.editor.registers.first(reg).cloned()) + .and_then(|reg| cx.editor.registers.last(reg).cloned()) .map(|entry| entry.into()) .unwrap_or_else(|| Cow::from("")) } else { |