diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs index 3f58e3c93e..4fc15c7962 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs @@ -537,13 +537,16 @@ pub fn handle_formatting( let output = rustfmt.wait_with_output()?; let captured_stdout = String::from_utf8(output.stdout)?; if !output.status.success() { - failure::bail!( - r#"rustfmt exited with: + return Err(LspError::new( + gen_lsp_server::ErrorCode::ParseError as i32, + format!( + r#"rustfmt exited with: Status: {} stdout: {}"#, - output.status, - captured_stdout, - ); + output.status, captured_stdout, + ), + ) + .into()); } Ok(Some(vec![TextEdit {