Return back the ability to save non-dirty singleton buffers (#10174)
This commit is contained in:
parent
0861ceaac2
commit
0f1c2e6f2b
1 changed files with 31 additions and 24 deletions
|
@ -705,9 +705,15 @@ impl Item for Editor {
|
||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only format and save the buffers with changes. For clean buffers,
|
if buffers.len() == 1 {
|
||||||
// we simulate saving by calling `Buffer::did_save`, so that language servers or
|
// Apply full save routine for singleton buffers, to allow to `touch` the file via the editor.
|
||||||
// other downstream listeners of save events get notified.
|
project
|
||||||
|
.update(&mut cx, |project, cx| project.save_buffers(buffers, cx))?
|
||||||
|
.await?;
|
||||||
|
} else {
|
||||||
|
// For multi-buffers, only format and save the buffers with changes.
|
||||||
|
// For clean buffers, we simulate saving by calling `Buffer::did_save`,
|
||||||
|
// so that language servers or other downstream listeners of save events get notified.
|
||||||
let (dirty_buffers, clean_buffers) = buffers.into_iter().partition(|buffer| {
|
let (dirty_buffers, clean_buffers) = buffers.into_iter().partition(|buffer| {
|
||||||
buffer
|
buffer
|
||||||
.update(&mut cx, |buffer, _| {
|
.update(&mut cx, |buffer, _| {
|
||||||
|
@ -731,6 +737,7 @@ impl Item for Editor {
|
||||||
})
|
})
|
||||||
.ok();
|
.ok();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue