summaryrefslogtreecommitdiffstats
path: root/src/finder/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/finder/config.rs')
-rw-r--r--src/finder/config.rs84
1 files changed, 0 insertions, 84 deletions
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<String>,
-}
-
-impl Config {
- // Extract the configuration from any `Provider`
- pub fn extract<T: Provider>(provider: T) -> figment::error::Result<Config> {
- 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<value::Map<Profile, value::Dict>> {
- 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(())
- });
- }
-}