diff options
author | Amit Beka | 2022-07-31 08:05:34 +0000 |
---|---|---|
committer | GitHub | 2022-07-31 08:05:34 +0000 |
commit | fe3a9a868ea944a17f5a70e892bd8b985d6485e9 (patch) | |
tree | 15b1a47cb66275458cd1dbd5484affbb64640106 | |
parent | e405e88c86ecf98ff432e7b95a0147ca3de97e3a (diff) |
clipboard: add logging and healthcheck (#3271)
* add logging to clipboard setup
* healthcheck: add clipboard provider name
Co-authored-by: amitbeka <--->
-rw-r--r-- | helix-term/src/health.rs | 3 | ||||
-rw-r--r-- | helix-view/src/clipboard.rs | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs index f64e121d..6d49105a 100644 --- a/helix-term/src/health.rs +++ b/helix-term/src/health.rs @@ -4,6 +4,7 @@ use crossterm::{ }; use helix_core::config::{default_syntax_loader, user_syntax_loader}; use helix_loader::grammar::load_runtime_file; +use helix_view::clipboard::get_clipboard_provider; use std::io::Write; #[derive(Copy, Clone)] @@ -52,6 +53,7 @@ pub fn general() -> std::io::Result<()> { let lang_file = helix_loader::lang_config_file(); let log_file = helix_loader::log_file(); let rt_dir = helix_loader::runtime_dir(); + let clipboard_provider = get_clipboard_provider(); if config_file.exists() { writeln!(stdout, "Config file: {}", config_file.display())?; @@ -76,6 +78,7 @@ pub fn general() -> std::io::Result<()> { if rt_dir.read_dir().ok().map(|it| it.count()) == Some(0) { writeln!(stdout, "{}", "Runtime directory is empty.".red())?; } + writeln!(stdout, "Clipboard provider: {}", clipboard_provider.name())?; Ok(()) } diff --git a/helix-view/src/clipboard.rs b/helix-view/src/clipboard.rs index fed1deb1..4d57a5b7 100644 --- a/helix-view/src/clipboard.rs +++ b/helix-view/src/clipboard.rs @@ -17,6 +17,10 @@ pub trait ClipboardProvider: std::fmt::Debug { #[cfg(not(windows))] macro_rules! command_provider { (paste => $get_prg:literal $( , $get_arg:literal )* ; copy => $set_prg:literal $( , $set_arg:literal )* ; ) => {{ + log::info!( + "Using {} to interact with the system clipboard", + if $set_prg != $get_prg { format!("{}+{}", $set_prg, $get_prg)} else { $set_prg.to_string() } + ); Box::new(provider::command::Provider { get_cmd: provider::command::Config { prg: $get_prg, @@ -36,6 +40,10 @@ macro_rules! command_provider { primary_paste => $pr_get_prg:literal $( , $pr_get_arg:literal )* ; primary_copy => $pr_set_prg:literal $( , $pr_set_arg:literal )* ; ) => {{ + log::info!( + "Using {} to interact with the system and selection (primary) clipboard", + if $set_prg != $get_prg { format!("{}+{}", $set_prg, $get_prg)} else { $set_prg.to_string() } + ); Box::new(provider::command::Provider { get_cmd: provider::command::Config { prg: $get_prg, @@ -146,6 +154,9 @@ mod provider { #[cfg(not(target_os = "windows"))] impl NopProvider { pub fn new() -> Self { + log::warn!( + "No clipboard provider found! Yanking and pasting will be internal to Helix" + ); Self { buf: String::new(), primary_buf: String::new(), @@ -184,6 +195,7 @@ mod provider { #[cfg(target_os = "windows")] impl ClipboardProvider for WindowsProvider { fn name(&self) -> Cow<str> { + log::info!("Using clipboard-win to interact with the system clipboard"); Cow::Borrowed("clipboard-win") } |