mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-30 20:24:08 +00:00
vim: Disregard non-text content on system clipboard for yanking (#39118)
Closes #39086 Release Notes: - Fixed the vim problem that image clipboard content overrides the unnamed register and produces an empty paste.
This commit is contained in:
parent
6e5ff6d091
commit
90ea252c82
1 changed files with 7 additions and 8 deletions
|
|
@ -807,11 +807,10 @@ impl VimGlobals {
|
|||
self.last_yank.replace(content.text.clone());
|
||||
cx.write_to_clipboard(content.clone().into());
|
||||
} else {
|
||||
self.last_yank = cx
|
||||
.read_from_clipboard()
|
||||
.and_then(|item| item.text().map(|string| string.into()));
|
||||
if let Some(text) = cx.read_from_clipboard().and_then(|i| i.text()) {
|
||||
self.last_yank.replace(text.into());
|
||||
}
|
||||
}
|
||||
|
||||
self.registers.insert('"', content.clone());
|
||||
if is_yank {
|
||||
self.registers.insert('0', content);
|
||||
|
|
@ -885,10 +884,10 @@ impl VimGlobals {
|
|||
|
||||
fn system_clipboard_is_newer(&self, cx: &App) -> bool {
|
||||
cx.read_from_clipboard().is_some_and(|item| {
|
||||
if let Some(last_state) = &self.last_yank {
|
||||
Some(last_state.as_ref()) != item.text().as_deref()
|
||||
} else {
|
||||
true
|
||||
match (item.text().as_deref(), &self.last_yank) {
|
||||
(Some(new), Some(last)) => last.as_ref() != new,
|
||||
(Some(_), None) => true,
|
||||
(None, _) => false,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue