From c280c85ce714575f1fd7ee980a75211a9ce3c993 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 30 Mar 2022 17:08:40 -0700 Subject: [PATCH] Hard-code LSP formatting options for now This is needed for auto-formatting to work properly in TypeScript and JSON Co-Authored-By: Keith Simmons --- crates/lsp/src/lsp.rs | 2 ++ crates/project/src/project.rs | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index de47381c4666b7980b1c484d06fdae770d032767..51a68b83c8997747ffe0880fdab7f9d597417008 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -181,6 +181,7 @@ impl LanguageServer { buffer.resize(message_len, 0); stdout.read_exact(&mut buffer).await?; + log::trace!("incoming message:{}", String::from_utf8_lossy(&buffer)); if let Ok(AnyNotification { id, method, params }) = serde_json::from_slice(&buffer) @@ -229,6 +230,7 @@ impl LanguageServer { let _clear_response_handlers = ClearResponseHandlers(response_handlers); let mut content_len_buffer = Vec::new(); while let Ok(message) = outbound_rx.recv().await { + log::trace!("outgoing message:{}", String::from_utf8_lossy(&message)); content_len_buffer.clear(); write!(content_len_buffer, "{}", message.len()).unwrap(); stdin.write_all(CONTENT_LEN_HEADER.as_bytes()).await?; diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 5a415ca3eb320a63c838300457faf47f3c494179..e859e756f86d0c7abde09392d504abc17a828625 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -2046,7 +2046,12 @@ impl Project { language_server .request::(lsp::DocumentFormattingParams { text_document, - options: Default::default(), + options: lsp::FormattingOptions { + tab_size: 4, + insert_spaces: true, + insert_final_newline: Some(true), + ..Default::default() + }, work_done_progress_params: Default::default(), }) .await? @@ -2064,7 +2069,12 @@ impl Project { lsp::DocumentRangeFormattingParams { text_document, range: lsp::Range::new(buffer_start, buffer_end), - options: Default::default(), + options: lsp::FormattingOptions { + tab_size: 4, + insert_spaces: true, + insert_final_newline: Some(true), + ..Default::default() + }, work_done_progress_params: Default::default(), }, )