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()), ]) } );