diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs index 4a266e48..ac9f06fc 100644 --- a/helix-term/src/health.rs +++ b/helix-term/src/health.rs @@ -83,6 +83,33 @@ pub fn general() -> std::io::Result<()> { Ok(()) } +pub fn clipboard() -> std::io::Result<()> { + let stdout = std::io::stdout(); + let mut stdout = stdout.lock(); + + let board = get_clipboard_provider(); + match board.name().as_ref() { + "none" => { + writeln!( + stdout, + "{}", + "System clipboard provider: Not installed".red() + )?; + writeln!( + stdout, + " {}", + "For troubleshooting system clipboard issues, refer".red() + )?; + writeln!(stdout, " {}", + "https://github.com/helix-editor/helix/wiki/Troubleshooting#copypaste-fromto-system-clipboard-not-working" + .red().underlined())?; + } + name => writeln!(stdout, "System clipboard provider: {}", name)?, + } + + Ok(()) +} + pub fn languages_all() -> std::io::Result<()> { let stdout = std::io::stdout(); let mut stdout = stdout.lock(); @@ -281,13 +308,15 @@ fn probe_treesitter_feature(lang: &str, feature: TsFeature) -> std::io::Result<( pub fn print_health(health_arg: Option) -> std::io::Result<()> { match health_arg.as_deref() { - Some("all") => languages_all()?, - Some(lang) => language(lang.to_string())?, - None => { + Some("languages") => languages_all()?, + Some("clipboard") => clipboard()?, + None | Some("all") => { general()?; + clipboard()?; writeln!(std::io::stdout().lock())?; languages_all()?; } + Some(lang) => language(lang.to_string())?, } Ok(()) } diff --git a/helix-term/src/main.rs b/helix-term/src/main.rs index 7f04f201..d21d3e77 100644 --- a/helix-term/src/main.rs +++ b/helix-term/src/main.rs @@ -61,8 +61,9 @@ ARGS: FLAGS: -h, --help Prints help information --tutor Loads the tutorial - --health [LANG] Checks for potential errors in editor setup - If given, checks for config errors in language LANG + --health [CATEGORY] Checks for potential errors in editor setup + CATEGORY can be a language or one of 'clipboard', 'languages' + or 'all'. 'all' is the default if not specified. -g, --grammar {{fetch|build}} Fetches or builds tree-sitter grammars listed in languages.toml -c, --config Specifies a file to use for configuration -v Increases logging verbosity each use for up to 3 times