diff options
author | Denis Isidoro <denisidoro@users.noreply.github.com> | 2024-01-19 06:43:08 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 06:43:08 -0300 |
commit | c45b767edd1c751691d353622ae0ad7336f94ab7 (patch) | |
tree | 8bc968a3fb5d16fc3cede21da0475aa3d232e97c | |
parent | 80e30b508bc04cc91263bb549e527c1c06c31d25 (diff) | |
parent | c3d75383f89a568b0ee0dc6f807f18f1c8bb9311 (diff) |
Merge pull request #873 from cyhyraethz/master
fix: #845 Add config option to support tealdeer
-rw-r--r-- | docs/config_file_example.yaml | 7 | ||||
-rw-r--r-- | src/clients/tldr.rs | 12 | ||||
-rw-r--r-- | src/config/mod.rs | 4 | ||||
-rw-r--r-- | src/config/yaml.rs | 15 |
4 files changed, 32 insertions, 6 deletions
diff --git a/docs/config_file_example.yaml b/docs/config_file_example.yaml index 1eb7ab7..8fa2f0c 100644 --- a/docs/config_file_example.yaml +++ b/docs/config_file_example.yaml @@ -25,11 +25,14 @@ finder: # path: /path/to/some/dir # (DEPRECATED) equivalent to the --path option # search: -# tags: git,!checkout # equivalent to the --tag-rules option +# tags: git,!checkout # equivalent to the --tag-rules option + +# client: +# tealdeer: true # enables tealdeer support for navi --tldr shell: # Shell used for shell out. Possible values: bash, zsh, dash, ... # For Windows, use `cmd.exe` instead. command: bash - + # finder_command: bash # similar, but for fzf's internals diff --git a/src/clients/tldr.rs b/src/clients/tldr.rs index cd040e4..01cec89 100644 --- a/src/clients/tldr.rs +++ b/src/clients/tldr.rs @@ -1,4 +1,5 @@ use crate::prelude::*; +use crate::config::CONFIG; use std::process::{Command, Stdio}; lazy_static! { @@ -51,7 +52,9 @@ fn markdown_lines(query: &str, markdown: &str) -> Vec<String> { } pub fn call(query: &str) -> Result<Vec<String>> { - let args = [query, "--markdown"]; + let tealdeer = CONFIG.tealdeer(); + let output_flag = if tealdeer { "--raw" } else { "--markdown" }; + let args = [query, output_flag]; let child = Command::new("tldr") .args(args) @@ -86,9 +89,9 @@ Note: Ok(lines) } else { let msg = format!( - "Failed to call: + "Failed to call: tldr {} - + Output: {} @@ -96,8 +99,9 @@ Error: {} Note: +The client.tealdeer config option can be set to enable tealdeer support. Please make sure you're using a version that supports the --markdown flag. -If you are already using a supported version you can ignore this message. +If you are already using a supported version you can ignore this message. {} ", args.join(" "), diff --git a/src/config/mod.rs b/src/config/mod.rs index b652608..a5b89c1 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -99,6 +99,10 @@ impl Config { .or_else(|| self.yaml.finder.overrides_var.clone()) } + pub fn tealdeer(&self) -> bool { + self.yaml.client.tealdeer.clone() + } + pub fn shell(&self) -> String { self.yaml.shell.command.clone() } diff --git a/src/config/yaml.rs b/src/config/yaml.rs index 70a5a17..e0c7e87 100644 --- a/src/config/yaml.rs +++ b/src/config/yaml.rs @@ -78,6 +78,12 @@ pub struct Shell { pub finder_command: Option<String>, } +#[derive(Deserialize, Debug)] +#[serde(default)] +pub struct Client { + pub tealdeer: bool, +} + #[derive(Deserialize, Default, Debug)] #[serde(default)] pub struct YamlConfig { @@ -86,6 +92,7 @@ pub struct YamlConfig { pub cheats: Cheats, pub search: Search, pub shell: Shell, + pub client: Client, } impl YamlConfig { @@ -162,3 +169,11 @@ impl Default for Shell { } } } + +impl Default for Client { + fn default() -> Self { + Self { + tealdeer: false, + } + } +} |