@@ -83,6 +83,33 @@ pub fn general() -> std::io::Result<()> {
8383 Ok(())
8484}
8585
86+pub fn clipboard() -> std::io::Result<()> {
87+ let stdout = std::io::stdout();
88+ let mut stdout = stdout.lock();
89+
90+ let board = get_clipboard_provider();
91+ match board.name().as_ref() {
92+ "none" => {
93+ writeln!(
94+ stdout,
95+ "{}",
96+ "System clipboard provider: Not installed".red()
97+ )?;
98+ writeln!(
99+ stdout,
100+ " {}",
101+ "For troubleshooting system clipboard issues, refer".red()
102+ )?;
103+ writeln!(stdout, " {}",
104+ "https://github.com/helix-editor/helix/wiki/Troubleshooting#copypaste-fromto-system-clipboard-not-working"
105+ .red().underlined())?;
106+ }
107+ name => writeln!(stdout, "System clipboard provider: {}", name)?,
108+ }
109+
110+ Ok(())
111+}
112+
86113pub fn languages_all() -> std::io::Result<()> {
87114 let stdout = std::io::stdout();
88115 let mut stdout = stdout.lock();
@@ -281,13 +308,15 @@ fn probe_treesitter_feature(lang: &str, feature: TsFeature) -> std::io::Result<(
281308
282309pub fn print_health(health_arg: Option<String>) -> std::io::Result<()> {
283310 match health_arg.as_deref() {
284− Some("all") => languages_all()?,
285− Some(lang) => language(lang.to_string())?,
286− None => {
311+ Some("languages") => languages_all()?,
312+ Some("clipboard") => clipboard()?,
313+ None | Some("all") => {
287314 general()?;
315+ clipboard()?;
288316 writeln!(std::io::stdout().lock())?;
289317 languages_all()?;
290318 }
319+ Some(lang) => language(lang.to_string())?,
291320 }
292321 Ok(())
293322}