Commit Graph

31 Commits (d285a8a9e5e2e9c0576c21a7bdc5e439b80a636c)

Author SHA1 Message Date
Michael Davis 467fad51b1
clipboard: Sway builtin provider yank and paste commands
The configuration here is not super intuitive - in order to yank from
a clipboard provider we want it to paste the clipboard and in order to
paste to the clipboard we want it to yank the contents we pass.

This swaps the programs for yank and paste to align with that.

Ref #10839
2024-11-20 18:10:46 -05:00
Michael Davis b855cd0cda
clipboard: Fix builtin_names for x-clip, x-sel, win-32-yank
Copy/paste error from #10839
2024-11-20 18:10:31 -05:00
Alfie Richards 68ee87695b
Add clipboard provider configuration (#10839) 2024-11-20 16:06:23 -06:00
Christopher Smyth 5e3de68591
FIx incorrectly spelled cfg options (#10703)
* Fix incorrect cfg key for wasm32

* Fix unicode-lines cfg in helix-view not not being used
2024-05-07 18:14:02 +02:00
Tshepang Mbambo 3e2b85c61b
remove redundant imports (#10154) 2024-04-04 23:28:44 +09:00
Michael Davis 6d724a8f33 Re-export `which` from `helix-stdx::env`
We use `which::which` in many crates, so `which` was a separate
dependency across all of them. We can centralize `which` into the
stdx crate so it's easy for all crates to depend on it.

I also moved the rest of `helix-view/src/env.rs` into helix-stdx's
`env` module since it only contained a thin wrapper around `which`
and `std::env`.
2024-01-24 15:47:49 +09:00
Jonathan LEI 8778083b5a
Detect tmux clipboard provider on macOS (#8182) 2023-09-06 14:01:32 +09:00
ZJPzjp 3b8c15618f
Fix warnings from clippy (#7013)
* Fix warnings from clippy

* revert MAIN_SEPARATOR_STR
2023-05-11 14:44:52 +09:00
Pascal Kuthe 8a3ec443f1
Fix new clippy lints (#5892) 2023-02-09 16:27:08 -06:00
Skyler Hawthorne 0e038fb80c make clipboard message debug 2023-02-02 14:53:18 -05:00
gavynriebau cce19713fb
Fix for lost clipboard contents (#5424) (#5426)
* Fix for lost clipboard contents (#5424)

* PR feedback: Call "setsid" for all unix systems

* PR Feedback: Only install libc for unix targets
2023-01-16 16:13:48 +09:00
Jonathan LEI d3f670c0e2
Use OSC 52 for tmux copy (#5027) 2022-12-07 11:11:45 +09:00
Charlie Groves 1bed2f3043
Use OSC 52 as a fallback for setting the system clipboard (#3220)
This adds a simple base64 implementation to keep us from adding a crate for one function. It's
mostly based on
a675443d32/src/engine/naive.rs (L42)
2022-11-02 10:12:40 +09:00
Skyler Hawthorne 6a0b450f55
Fix multi byte auto pairs (#4024)
* Fix test::print for Unicode

The print function was not generating correct translations when
the input has Unicode (non-ASCII) in it. This is due to its use of
String::len, which gives the length in bytes, not chars.

* Fix multi-code point auto pairs

The current code for auto pairs is counting offsets by summing the
length of the open and closing chars with char::len_utf8. Unfortunately,
this gives back bytes, and the offset needs to be in chars.

Additionally, it was discovered that there was a preexisting bug where
the selection was not computed correctly in the case that the cursor
was:

1. a single grapheme in width
2. this grapheme was more than one char
3. the direction of the cursor is backwards
4. a secondary range

In this case, the offset was not being added into the anchor. This was
fixed.

* migrate auto pairs tests to integration

* review comments
2022-10-21 09:22:20 +09:00
Blaž Hrastnik d993c6349b
One more windows fix... 2022-08-22 10:29:11 +09:00
Blaž Hrastnik e863f6fe27
Fix compilation on windows 2022-08-22 10:18:53 +09:00
Blaž Hrastnik cb7615e0ed
Make external terminal provider configurable
Fixes #1699
2022-08-22 10:11:04 +09:00
Amit Beka fe3a9a868e
clipboard: add logging and healthcheck (#3271)
* add logging to clipboard setup

* healthcheck: add clipboard provider name

Co-authored-by: amitbeka <--->
2022-07-31 17:05:34 +09:00
Kirawi 77ff8d3550
cfg-gate unused functions on macos & windows (#2332) 2022-05-02 23:31:23 +09:00
Blaž Hrastnik ade4cbffaa
Add a nop clipboard provider for wasm 2022-05-01 11:39:31 +09:00
جاد a9635659f7
Reintroduce win32yank as a clipboard provider on Linux for WSL2 + Windows 10 (#1912)
* feat(clipboard): reintroduce win32yank for wsl2 linux

* refactor(clipboard): adjust win32yank position to not interrupt wayland/x11

Co-authored-by: jiqb <gthbji@ml1.net>
2022-04-01 11:35:47 +09:00
Blaž Hrastnik 511f37c736
clipboard: fix import on macOS 2022-03-28 11:08:38 +09:00
Blaž Hrastnik 8611c5b84e
Refactor clipboard to make it easier to feature gate std::process 2022-03-28 11:02:56 +09:00
Blaž Hrastnik adf97e088e
Simplify get_clipboard_provider by defining one per host 2022-03-03 16:52:41 +09:00
Kirawi 0cb5e0b2ca
log syntax highlighting init errors (#895) 2021-10-23 21:52:18 +09:00
Blaž Hrastnik 6dd7dc4eb2 fix: xsel copy should not freeze the editor
If using --nodetach, xsel would end up continually running in the
foreground, so the command execution would never finish.

Fixes #630
2021-08-22 15:01:12 +09:00
Shafkath Shuhan b63afbe74c fix warnings 2021-08-18 11:45:01 -07:00
Dmitry Sharshakov 7d51805e94
Support primary clipboard (#548)
* clipboard-none: add in-memory fallback buffer

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* view: add Wayland primary clipboard

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* Format

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: copy to primary selection after mouse move stops

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: don't update primary selection if it is a single character

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: discard result of setting primary selection

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: add commands for interaction with primary clipboard

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* editor: implement primary selection copy/paste using commands

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard: support xsel for primary selection

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard: support xclip for primary selection

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: multiple cursor support for middle click paste

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* rename primary selection to primary clipboard in scope of PR

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: make middle click paste optional

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* Format

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* Update helix-term/src/ui/editor.rs

* fix formatting

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* config: correct defaults if terminal prop is not set

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* refactor: merge clipboard and primary selection implementations

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* Tidy up code

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* view: remove names for different clipboard/selection providers

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* Update helix-view/src/clipboard.rs

Co-authored-by: Gokul Soumya <gokulps15@gmail.com>

* helix-view: tidy macros

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: refactor paste-replace commands

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* helix-term: use new config for middle-click-paste

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard: remove memory fallback for command and windows providers

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard-win: fix build

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard: return empty string when primary clipboard is missing

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

* clipboard: fix errors in Windows build

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>

Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-08-12 11:53:48 +09:00
Kirawi acaf22d005
Added native Windows clipboard support (#373)
* Added native Windows clipboard support

* make conditional

wip

better conditional

wip

wip

wip

wip

make conditional
2021-06-30 17:11:56 +09:00
Blaž Hrastnik 994ff4b269
Don't run wl-copy with --foreground
It stalls the hx process
2021-06-21 19:06:57 +09:00
Benoît CORTIER a2b8cfca34 Add system clipboard yank and paste commands
This commit adds six new commands to interact with system clipboard:
- clipboard-yank
- clipboard-yank-join
- clipboard-paste-after
- clipboard-paste-before
- clipboard-paste-replace
- show-clipboard-provider

System clipboard provider is detected by checking a few environment
variables and executables. Currently only built-in detection is
supported.

`clipboard-yank` will only yank the "main" selection, which is currently the first
one. This will need to be revisited later.

Closes https://github.com/helix-editor/helix/issues/76
2021-06-20 23:25:53 +09:00