mirror of
https://github.com/helix-editor/helix.git
synced 2025-01-19 13:37:06 +04:00
remove Document::format_and_save
This commit is contained in:
parent
3f07885b35
commit
9e64974f13
@ -520,32 +520,12 @@ pub fn save<P: Into<PathBuf>>(
|
|||||||
path: Option<P>,
|
path: Option<P>,
|
||||||
force: bool,
|
force: bool,
|
||||||
) -> Result<(), anyhow::Error> {
|
) -> Result<(), anyhow::Error> {
|
||||||
self.save_impl::<futures_util::future::Ready<_>, _>(None, path, force)
|
self.save_impl::<futures_util::future::Ready<_>, _>(path, force)
|
||||||
}
|
|
||||||
|
|
||||||
pub fn format_and_save<F, P>(
|
|
||||||
&mut self,
|
|
||||||
formatting: Option<F>,
|
|
||||||
path: Option<P>,
|
|
||||||
force: bool,
|
|
||||||
) -> anyhow::Result<()>
|
|
||||||
where
|
|
||||||
F: Future<Output = Result<Transaction, FormatterError>> + 'static + Send,
|
|
||||||
P: Into<PathBuf>,
|
|
||||||
{
|
|
||||||
self.save_impl(formatting, path, force)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The `Document`'s text is encoded according to its encoding and written to the file located
|
/// The `Document`'s text is encoded according to its encoding and written to the file located
|
||||||
/// at its `path()`.
|
/// at its `path()`.
|
||||||
///
|
fn save_impl<F, P>(&mut self, path: Option<P>, force: bool) -> Result<(), anyhow::Error>
|
||||||
/// If `formatting` is present, it supplies some changes that we apply to the text before saving.
|
|
||||||
fn save_impl<F, P>(
|
|
||||||
&mut self,
|
|
||||||
formatting: Option<F>,
|
|
||||||
path: Option<P>,
|
|
||||||
force: bool,
|
|
||||||
) -> Result<(), anyhow::Error>
|
|
||||||
where
|
where
|
||||||
F: Future<Output = Result<Transaction, FormatterError>> + 'static + Send,
|
F: Future<Output = Result<Transaction, FormatterError>> + 'static + Send,
|
||||||
P: Into<PathBuf>,
|
P: Into<PathBuf>,
|
||||||
@ -561,7 +541,7 @@ fn save_impl<F, P>(
|
|||||||
|
|
||||||
// we clone and move text + path into the future so that we asynchronously save the current
|
// we clone and move text + path into the future so that we asynchronously save the current
|
||||||
// state without blocking any further edits.
|
// state without blocking any further edits.
|
||||||
let mut text = self.text().clone();
|
let text = self.text().clone();
|
||||||
|
|
||||||
let path = match path {
|
let path = match path {
|
||||||
Some(path) => helix_core::path::get_canonicalized_path(&path.into())?,
|
Some(path) => helix_core::path::get_canonicalized_path(&path.into())?,
|
||||||
@ -602,23 +582,6 @@ fn save_impl<F, P>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(fmt) = formatting {
|
|
||||||
match fmt.await {
|
|
||||||
Ok(transaction) => {
|
|
||||||
let success = transaction.changes().apply(&mut text);
|
|
||||||
if !success {
|
|
||||||
// This shouldn't happen, because the transaction changes were generated
|
|
||||||
// from the same text we're saving.
|
|
||||||
log::error!("failed to apply format changes before saving");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(err) => {
|
|
||||||
// formatting failed: report error, and save file without modifications
|
|
||||||
log::error!("{}", err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut file = File::create(&path).await?;
|
let mut file = File::create(&path).await?;
|
||||||
to_writer(&mut file, encoding, &text).await?;
|
to_writer(&mut file, encoding, &text).await?;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user