Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support primary clipboard #548

Merged
merged 31 commits into from
Aug 12, 2021
Merged
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
75fed68
clipboard-none: add in-memory fallback buffer
dsseng Aug 4, 2021
2c20d35
view: add Wayland primary clipboard
dsseng Aug 4, 2021
5b88151
Format
dsseng Aug 4, 2021
8ccbe36
helix-term: copy to primary selection after mouse move stops
dsseng Aug 4, 2021
c938a7b
helix-term: don't update primary selection if it is a single character
dsseng Aug 4, 2021
684b8dc
helix-term: discard result of setting primary selection
dsseng Aug 4, 2021
71eb635
helix-term: add commands for interaction with primary clipboard
dsseng Aug 4, 2021
fb06c20
editor: implement primary selection copy/paste using commands
dsseng Aug 4, 2021
74681bd
clipboard: support xsel for primary selection
dsseng Aug 4, 2021
f898fad
clipboard: support xclip for primary selection
dsseng Aug 4, 2021
19f6c94
helix-term: multiple cursor support for middle click paste
dsseng Aug 4, 2021
05ae650
rename primary selection to primary clipboard in scope of PR
dsseng Aug 4, 2021
1e8162e
helix-term: make middle click paste optional
dsseng Aug 4, 2021
db0d5d5
Format
dsseng Aug 4, 2021
b273396
Update helix-term/src/ui/editor.rs
dsseng Aug 5, 2021
ffef3ea
fix formatting
dsseng Aug 5, 2021
b76b8e7
config: correct defaults if terminal prop is not set
dsseng Aug 5, 2021
2316230
refactor: merge clipboard and primary selection implementations
dsseng Aug 5, 2021
d16eab4
Merge branch 'master' into primary-clipboard
dsseng Aug 5, 2021
7e4a85b
Tidy up code
dsseng Aug 5, 2021
ada6b9d
view: remove names for different clipboard/selection providers
dsseng Aug 5, 2021
a530f88
Update helix-view/src/clipboard.rs
dsseng Aug 7, 2021
b363b0b
helix-view: tidy macros
dsseng Aug 7, 2021
7e82895
helix-term: refactor paste-replace commands
dsseng Aug 7, 2021
bded2fd
Merge branch 'master' into primary-clipboard
dsseng Aug 8, 2021
9294835
helix-term: use new config for middle-click-paste
dsseng Aug 8, 2021
13c8a0c
clipboard: remove memory fallback for command and windows providers
dsseng Aug 8, 2021
cbd58f1
clipboard-win: fix build
dsseng Aug 8, 2021
79a79c5
clipboard: return empty string when primary clipboard is missing
dsseng Aug 8, 2021
5ba6241
clipboard: fix errors in Windows build
dsseng Aug 8, 2021
7fbc25a
Merge branch 'master' into primary-clipboard
dsseng Aug 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
clipboard: return empty string when primary clipboard is missing
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
  • Loading branch information
dsseng committed Aug 8, 2021
commit 79a79c5b7a6ce4fa420ee1c9e2697a58f9a91446
26 changes: 4 additions & 22 deletions helix-view/src/clipboard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,11 +209,7 @@ mod provider {
ClipboardType::Clipboard => {
clipboard_win::get_clipboard(clipboard_win::formats::Unicode)
}
ClipboardType::Selection => Err(std::io::Error::new(
std::io::ErrorKind::Other,
"Primary clipboard is not supported on Windows",
)
.into()),
ClipboardType::Selection => String::new(),
}
}

Expand All @@ -222,13 +218,7 @@ mod provider {
ClipboardType::Clipboard => {
clipboard_win::set_clipboard(clipboard_win::formats::Unicode, contents)
}
ClipboardType::Selection => {
return Err(std::io::Error::new(
std::io::ErrorKind::Other,
"Primary clipboard is not supported on Windows",
)
.into())
}
ClipboardType::Selection => {}
};
Ok(())
}
Expand Down Expand Up @@ -305,11 +295,7 @@ mod provider {
return cmd.execute(None, true)?.context("output is missing");
}

Err(std::io::Error::new(
std::io::ErrorKind::Other,
"No command is set for primary clipboard",
)
.into())
Ok(String::new())
}
}
}
Expand All @@ -321,11 +307,7 @@ mod provider {
if let Some(cmd) = &self.set_primary_cmd {
cmd
} else {
return Err(std::io::Error::new(
std::io::ErrorKind::Other,
"No command is set for primary clipboard",
)
.into());
return Ok(());
}
}
};
Expand Down