From 63e54e30a74bb0d1d782877ddbbcf95f2817d061 Mon Sep 17 00:00:00 2001 From: Blaž Hrastnik Date: Sat, 24 Jul 2021 17:48:45 +0900 Subject: Implement in-memory prompt history Implementation is similar to kakoune: we store the entries into a register. --- helix-core/src/register.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'helix-core/src') diff --git a/helix-core/src/register.rs b/helix-core/src/register.rs index cc881a17..c3e6652e 100644 --- a/helix-core/src/register.rs +++ b/helix-core/src/register.rs @@ -22,13 +22,17 @@ impl Register { self.name } - pub fn read(&self) -> &Vec { + pub fn read(&self) -> &[String] { &self.values } pub fn write(&mut self, values: Vec) { self.values = values; } + + pub fn push(&mut self, value: String) { + self.values.push(value); + } } /// Currently just wraps a `HashMap` of `Register`s @@ -42,11 +46,7 @@ impl Registers { self.inner.get(&name) } - pub fn get_mut(&mut self, name: char) -> Option<&mut Register> { - self.inner.get_mut(&name) - } - - pub fn get_or_insert(&mut self, name: char) -> &mut Register { + pub fn get_mut(&mut self, name: char) -> &mut Register { self.inner .entry(name) .or_insert_with(|| Register::new(name)) @@ -57,7 +57,7 @@ impl Registers { .insert(name, Register::new_with_values(name, values)); } - pub fn read(&self, name: char) -> Option<&Vec> { + pub fn read(&self, name: char) -> Option<&[String]> { self.get(name).map(|reg| reg.read()) } } -- cgit v1.2.3-70-g09d2