From baceb02a090fe711ad772d855635bc590826fa53 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Mon, 10 Jul 2023 18:48:29 -0500 Subject: Use refactored Registers type This is an unfortunately noisy change: we need to update virtually all callsites that access the registers. For reads this means passing in the Editor and for writes this means handling potential failure when we can't write to a clipboard register. --- helix-core/src/lib.rs | 1 - helix-core/src/register.rs | 89 ---------------------------------------------- 2 files changed, 90 deletions(-) delete mode 100644 helix-core/src/register.rs (limited to 'helix-core') diff --git a/helix-core/src/lib.rs b/helix-core/src/lib.rs index e1b5a1a1..9a512eae 100644 --- a/helix-core/src/lib.rs +++ b/helix-core/src/lib.rs @@ -18,7 +18,6 @@ pub mod movement; pub mod object; pub mod path; mod position; -pub mod register; pub mod search; pub mod selection; pub mod shellwords; diff --git a/helix-core/src/register.rs b/helix-core/src/register.rs deleted file mode 100644 index df68a759..00000000 --- a/helix-core/src/register.rs +++ /dev/null @@ -1,89 +0,0 @@ -use std::collections::HashMap; - -#[derive(Debug)] -pub struct Register { - name: char, - values: Vec, -} - -impl Register { - pub const fn new(name: char) -> Self { - Self { - name, - values: Vec::new(), - } - } - - pub fn new_with_values(name: char, values: Vec) -> Self { - Self { name, values } - } - - pub const fn name(&self) -> char { - self.name - } - - 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 -#[derive(Debug, Default)] -pub struct Registers { - inner: HashMap, -} - -impl Registers { - pub fn get(&self, name: char) -> Option<&Register> { - self.inner.get(&name) - } - - pub fn read(&self, name: char) -> Option<&[String]> { - self.get(name).map(|reg| reg.read()) - } - - pub fn write(&mut self, name: char, values: Vec) { - if name != '_' { - self.inner - .insert(name, Register::new_with_values(name, values)); - } - } - - pub fn push(&mut self, name: char, value: String) { - if name != '_' { - if let Some(r) = self.inner.get_mut(&name) { - r.push(value); - } else { - self.write(name, vec![value]); - } - } - } - - pub fn first(&self, name: char) -> Option<&String> { - 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 { - &self.inner - } - - pub fn clear(&mut self) { - self.inner.clear(); - } - - pub fn remove(&mut self, name: char) -> Option { - self.inner.remove(&name) - } -} -- cgit v1.2.3-70-g09d2