From 72e9765d58b87125bdd5a2664bbc58202bdedff7 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Mon, 21 Nov 2022 14:26:02 -0600 Subject: chore: split out projectr from tmuxr --- src/finder/config.rs | 84 ---------------------------------------------------- src/finder/error.rs | 16 ---------- 2 files changed, 100 deletions(-) delete mode 100644 src/finder/config.rs delete mode 100644 src/finder/error.rs (limited to 'src/finder') diff --git a/src/finder/config.rs b/src/finder/config.rs deleted file mode 100644 index 4c3abda..0000000 --- a/src/finder/config.rs +++ /dev/null @@ -1,84 +0,0 @@ -use figment::{providers::Serialized, value, Figment, Metadata, Profile, Provider}; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(default)] -pub struct Config { - pub program: String, - pub args: Vec, -} - -impl Config { - // Extract the configuration from any `Provider` - pub fn extract(provider: T) -> figment::error::Result { - Figment::from(provider).extract() - } - - // Provide a default provider, a `Figment`. - pub fn figment() -> Figment { - Figment::from(Config::default()) - } -} - -impl Default for Config { - fn default() -> Self { - Self { - program: "fzf-tmux".into(), - args: [ - "-p", - "--", - "--multi", - "--print-query", - "-d/", - "--preview-window=right,75%,<80(up,75%,border-bottom)", - "--preview='sel={}; less ${sel:-{q}} 2>/dev/null'", - ] - .map(Into::into) - .to_vec(), - } - } -} - -impl Provider for Config { - fn metadata(&self) -> Metadata { - Metadata::named("Tmuxr finder config") - } - - fn data(&self) -> figment::error::Result> { - Serialized::defaults(self).data() - } -} - -#[cfg(test)] -mod tests { - use super::*; - use figment::providers::{Format, Serialized, Toml}; - use pretty_assertions::assert_eq; - - #[test] - fn test_extract() { - figment::Jail::expect_with(|jail| { - jail.create_file( - "tmuxr.toml", - r#" - program = "fzf" - args = ["-0", "-1", "--preview='cat'"] - "#, - )?; - - let config: Config = Figment::from(Serialized::defaults(Config::default())) - .merge(Toml::file("tmuxr.toml")) - .extract()?; - - assert_eq!( - config, - Config { - program: "fzf".into(), - args: ["-0", "-1", "--preview='cat'"].map(Into::into).to_vec(), - } - ); - - Ok(()) - }); - } -} diff --git a/src/finder/error.rs b/src/finder/error.rs deleted file mode 100644 index a8009a8..0000000 --- a/src/finder/error.rs +++ /dev/null @@ -1,16 +0,0 @@ -pub type Result = std::result::Result; - -#[derive(thiserror::Error, Debug)] -pub enum Error { - #[error("Child process has not been spawned")] - NoChild, - - #[error("Failed to get Child's stdin")] - Stdin, - - #[error("Config error: {0}")] - Config(#[from] figment::error::Error), - - #[error("IO error: {0}")] - IO(#[from] std::io::Error), -} -- cgit v1.2.3-70-g09d2