From 4c9c9df730c2123f9083b466334f022eda7fe3ce Mon Sep 17 00:00:00 2001 From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Date: Thu, 7 Mar 2024 05:59:25 -0500 Subject: [PATCH] Add ZED_SELECTED_TEXT variable to tasks (#8865) Tasks are able to access a users selected text using the environment variable "ZED_SELECTED_TEXT". Release notes: - Added ZED_SELECTED_TEXT task variable which contains contents of selection --- crates/tasks_ui/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/tasks_ui/src/lib.rs b/crates/tasks_ui/src/lib.rs index e0d78da4de295d90c7380675e8090993966ba775..a3fa71bb125bd652917c706c22a15ec36bdf1575 100644 --- a/crates/tasks_ui/src/lib.rs +++ b/crates/tasks_ui/src/lib.rs @@ -114,9 +114,12 @@ fn task_context( .map(|worktree| worktree.read(cx).abs_path().to_string_lossy().to_string()) }); + let selected_text = buffer.read(cx).chars_for_range(selection_range).collect(); + let mut env = HashMap::from_iter([ ("ZED_ROW".into(), row.to_string()), ("ZED_COLUMN".into(), column.to_string()), + ("ZED_SELECTED_TEXT".into(), selected_text), ]); if let Some(path) = current_file { env.insert("ZED_FILE".into(), path); @@ -321,6 +324,7 @@ mod tests { ("ZED_WORKTREE_ROOT".into(), "/dir".into()), ("ZED_ROW".into(), "1".into()), ("ZED_COLUMN".into(), "1".into()), + ("ZED_SELECTED_TEXT".into(), "".into()) ]) } ); @@ -338,6 +342,7 @@ mod tests { ("ZED_SYMBOL".into(), "this_is_a_rust_file".into()), ("ZED_ROW".into(), "1".into()), ("ZED_COLUMN".into(), "15".into()), + ("ZED_SELECTED_TEXT".into(), "is_i".into()), ]) } ); @@ -354,6 +359,7 @@ mod tests { ("ZED_SYMBOL".into(), "this_is_a_test".into()), ("ZED_ROW".into(), "1".into()), ("ZED_COLUMN".into(), "1".into()), + ("ZED_SELECTED_TEXT".into(), "".into()), ]) } );