Unnamed repository; edit this file 'description' to name the repository.
registers: Use saved values for clipboard providers which can't read
This fixes reading from the clipboard when using the termcode provider. Reading isn't implemented for the termcode provider so `get_contents` returns `ClipboardError::ReadingNotSupported`. `read_from_clipboard` needs to recognize this case and use the saved values instead of emitting an error log and returning nothing. Follow-up of #10839 Also see #12142
Michael Davis 2024-12-02
parent 548f04f · commit ec1628c
-rw-r--r--helix-view/src/register.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/helix-view/src/register.rs b/helix-view/src/register.rs
index 5647dd06..d286a85c 100644
--- a/helix-view/src/register.rs
+++ b/helix-view/src/register.rs
@@ -5,7 +5,7 @@ use arc_swap::access::DynAccess;
use helix_core::NATIVE_LINE_ENDING;
use crate::{
- clipboard::{ClipboardProvider, ClipboardType},
+ clipboard::{ClipboardError, ClipboardProvider, ClipboardType},
Editor,
};
@@ -238,6 +238,10 @@ fn read_from_clipboard<'a>(
RegisterValues::new(iter::once(contents.into()))
}
}
+ Err(ClipboardError::ReadingNotSupported) => match saved_values {
+ Some(values) => RegisterValues::new(values.iter().map(Cow::from).rev()),
+ None => RegisterValues::new(iter::empty()),
+ },
Err(err) => {
log::error!(
"Failed to read {} clipboard: {err}",