feat: default editing to shared system clipboard

This commit is contained in:
Valdemar Lorenzen
2026-10-09 10:26:04 +02:00
parent d61f0b750b
commit 981011096e
9 changed files with 1591 additions and 68 deletions
+8 -3
View File
@@ -21,6 +21,7 @@ pub struct Config {
pub file_explorer_side: String,
pub file_picker_view: String,
pub file_explorer_view: String,
pub clipboard_mode: String,
}
impl Default for Config {
@@ -32,6 +33,7 @@ impl Default for Config {
file_explorer_side: "right".into(),
file_picker_view: "tree".into(),
file_explorer_view: "tree".into(),
clipboard_mode: "system".into(),
}
}
}
@@ -50,6 +52,7 @@ pub fn load_config(path: &Path) -> Result<Config, String> {
file_explorer_side,
file_picker_view,
file_explorer_view,
clipboard_mode,
..
} => {
let mut config = Config::default();
@@ -65,6 +68,7 @@ pub fn load_config(path: &Path) -> Result<Config, String> {
config.file_explorer_side = file_explorer_side;
config.file_picker_view = file_picker_view;
config.file_explorer_view = file_explorer_view;
config.clipboard_mode = clipboard_mode;
Ok(config)
}
Response::Error {
@@ -213,6 +217,7 @@ enum Response {
file_explorer_side: String,
file_picker_view: String,
file_explorer_view: String,
clipboard_mode: String,
},
#[serde(rename = "result")]
Result {
@@ -608,9 +613,9 @@ end
assert!(load_config(&path).unwrap_err().contains(error), "{value}");
}
for frame in [
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree"}"#,
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"leader":null,"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree"}"#,
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"leader":7,"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree"}"#,
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree","clipboard_mode":"system"}"#,
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"leader":null,"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree","clipboard_mode":"system"}"#,
r#"{"type":"config","version":1,"plugins":[],"bindings":[],"leader":7,"file_explorer_side":"right","file_picker_view":"list","file_explorer_view":"tree","clipboard_mode":"system"}"#,
] {
assert!(serde_json::from_str::<Response>(frame).is_err(), "{frame}");
}