Do not add empty tasks to inventory (#8180)

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>
This commit is contained in:
Thorsten Ball 2024-02-22 11:21:19 +01:00 committed by GitHub
parent 36586b77ec
commit 583d85cf66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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;
};