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
This commit is contained in:
Anthony Eid 2024-03-07 05:59:25 -05:00 committed by GitHub
parent 3a9ec906af
commit 4c9c9df730
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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