|
|
@ -1917,16 +1917,14 @@ fn append_to_line(cx: &mut Context) {
|
|
|
|
|
|
|
|
|
|
|
|
// Creates an LspCallback that waits for formatting changes to be computed. When they're done,
|
|
|
|
// 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.
|
|
|
|
// it applies them, but only if the doc hasn't changed.
|
|
|
|
fn make_format_callback(
|
|
|
|
async fn make_format_callback(
|
|
|
|
doc_id: DocumentId,
|
|
|
|
doc_id: DocumentId,
|
|
|
|
doc_version: i32,
|
|
|
|
doc_version: i32,
|
|
|
|
set_unmodified: bool,
|
|
|
|
set_unmodified: bool,
|
|
|
|
format: impl Future<Output = helix_lsp::util::LspFormatting> + Send + 'static,
|
|
|
|
format: impl Future<Output = helix_lsp::util::LspFormatting> + Send + 'static,
|
|
|
|
) -> impl Future<Output = anyhow::Result<job::Callback>> {
|
|
|
|
) -> anyhow::Result<job::Callback> {
|
|
|
|
async move {
|
|
|
|
|
|
|
|
let format = format.await;
|
|
|
|
let format = format.await;
|
|
|
|
let call: job::Callback =
|
|
|
|
let call: job::Callback = Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
|
|
|
|
Box::new(move |editor: &mut Editor, compositor: &mut Compositor| {
|
|
|
|
|
|
|
|
let view_id = view!(editor).id;
|
|
|
|
let view_id = view!(editor).id;
|
|
|
|
if let Some(doc) = editor.document_mut(doc_id) {
|
|
|
|
if let Some(doc) = editor.document_mut(doc_id) {
|
|
|
|
if doc.version() == doc_version {
|
|
|
|
if doc.version() == doc_version {
|
|
|
@ -1941,7 +1939,6 @@ fn make_format_callback(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
Ok(call)
|
|
|
|
Ok(call)
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
enum Open {
|
|
|
|
enum Open {
|
|
|
|