Do not add empty tasks to inventory (#8180)
Thorsten Ball
and
Kirill
created 2 years ago
I ran into this when trying out which keybindings work and accidentally
added empty tasks. They get then added to the task inventory and
displayed in the picker.
Release Notes:
- Fixed empty tasks being added to the list of tasks when using `task:
spawn`
---------
Co-authored-by: Kirill <kirill@zed.dev>
Change summary
crates/tasks_ui/src/modal.rs | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
Detailed changes
@@ -180,16 +180,21 @@ impl PickerDelegate for TasksModalDelegate {
fn confirm(&mut self, secondary: bool, cx: &mut ViewContext<picker::Picker<Self>>) {
let current_match_index = self.selected_index();
- let Some(task) = secondary
- .then(|| self.spawn_oneshot(cx))
- .flatten()
- .or_else(|| {
- self.matches.get(current_match_index).map(|current_match| {
- let ix = current_match.candidate_id;
- self.candidates[ix].clone()
- })
+
+ let task = if secondary {
+ if !self.last_prompt.trim().is_empty() {
+ self.spawn_oneshot(cx)
+ } else {
+ None
+ }
+ } else {
+ self.matches.get(current_match_index).map(|current_match| {
+ let ix = current_match.candidate_id;
+ self.candidates[ix].clone()
})
- else {
+ };
+
+ let Some(task) = task else {
return;
};