Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add clipboard provider configuration (#8826)
This change adds the `clipboard-provider` setting to the `editor` section of configuration. This option can have values of: - `none` (use an internal buffer) (on windows only) - `windows` (use native windows clipboard) (on MacOS only) - `macos` (use pbcopy/pbpaste) (on neiter of the above) - `wayland` - `xclip` - `xsel` - `win23yank` (for wsl) (on all targets with "term") - `termux` - `tmux` - `term` (osc codes) - `custom` (see below for the configuration) Note for a custom provider the configurations should look like: ```toml [editor.clipboard-provider.config] copy = ["tee", "test.txt"] paste = ["cat", "test.txt"] primary-copy = ["tee", "test-primary.txt"] // optional primary-copy = ["cat", "test-primary.txt"] // optional ``` This can be configured at runtime with the usual: ``` set clipboard-provider term ``` Note: I was unable to work out a syntax expression for setting a `custom` provider at runtime. In my opinion this is probably a fine limitation to have but I am curious if there is a correct way I couldn't work out. This ports over the previous provider selection logic so hopefully the same default behaviour should apply. I updated the health command to reflect the provider. Note: this required reading the user configurations within the health command which warrants discussion as this seems to not have been done before. This is my first contribution, I am a C++ developer by profession and a rust hobyist at best so nits and style updates very welcome. Note: This adds the `nonempty` crate as a new dependency. This is because I wanted a way to fail parsing custom commands if they were empty and didn't want to write custom parsign Serde code. I do not know what the process is for considering new dependencies and am very willing to change this for an alternative solution when presented with a better one! I looked for a `serde` annotation as I thought that was likely but couldn't find one.
- Loading branch information