summaryrefslogtreecommitdiff
path: root/helix-term/src/commands.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/commands.rs')
-rw-r--r--helix-term/src/commands.rs37
1 files changed, 17 insertions, 20 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 5dd539cc..5df52855 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -1917,31 +1917,28 @@ fn append_to_line(cx: &mut Context) {
// Creates an LspCallback that waits for formatting changes to be computed. When they're done,
// it applies them, but only if the doc hasn't changed.
-fn make_format_callback(
+async fn make_format_callback(
doc_id: DocumentId,
doc_version: i32,
set_unmodified: bool,
format: impl Future<Output = helix_lsp::util::LspFormatting> + Send + 'static,
-) -> impl Future<Output = anyhow::Result<job::Callback>> {
- async move {
- let format = format.await;
- let call: job::Callback =
- Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
- let view_id = view!(editor).id;
- if let Some(doc) = editor.document_mut(doc_id) {
- if doc.version() == doc_version {
- doc.apply(&Transaction::from(format), view_id);
- doc.append_changes_to_history(view_id);
- if set_unmodified {
- doc.reset_modified();
- }
- } else {
- log::info!("discarded formatting changes because the document changed");
- }
+) -> anyhow::Result<job::Callback> {
+ let format = format.await;
+ let call: job::Callback = Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
+ let view_id = view!(editor).id;
+ if let Some(doc) = editor.document_mut(doc_id) {
+ if doc.version() == doc_version {
+ doc.apply(&Transaction::from(format), view_id);
+ doc.append_changes_to_history(view_id);
+ if set_unmodified {
+ doc.reset_modified();
}
- });
- Ok(call)
- }
+ } else {
+ log::info!("discarded formatting changes because the document changed");
+ }
+ }
+ });
+ Ok(call)
}
enum Open {