mirror of
https://github.com/denisidoro/navi
synced 2024-11-21 11:03:08 +00:00
Add config option to support tealdeer
This commit is contained in:
parent
80e30b508b
commit
c3d75383f8
4 changed files with 32 additions and 6 deletions
|
@ -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
|
||||
|
|
|
@ -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(" "),
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue