Unnamed repository; edit this file 'description' to name the repository.
Merge #10334
10334: Give rustfmt spawn error context. r=jonas-schievink a=aDotInTheVoid This mean if you misconfigure to ```json { "rust-analyzer.rustfmt.overrideCommand": [ "./nonono" ] } ``` The error message is ``` [Error - 17:54:33] Request textDocument/formatting failed. Message: Failed to spawn "./nonono" Code: -32603 ``` instead of ``` [Error - 17:56:12] Request textDocument/formatting failed. Message: No such file or directory (os error 2) Code: -32603 ``` I'm not sure how to test this, or if it needs a test. Co-authored-by: Nixon Enraght-Moony <[email protected]>
bors[bot] 2021-09-25
parent 5d948ca · parent 720a3da · commit 8b08666
-rw-r--r--crates/rust-analyzer/src/handlers.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index dbbe1841fc..6b8f1f6d1a 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -7,6 +7,7 @@ use std::{
process::{self, Stdio},
};
+use anyhow::Context;
use ide::{
AnnotationConfig, AssistKind, AssistResolveStrategy, FileId, FilePosition, FileRange,
HoverAction, HoverGotoTypeData, Query, RangeInfo, Runnable, RunnableKind, SingleResolve,
@@ -1696,8 +1697,12 @@ fn run_rustfmt(
}
};
- let mut rustfmt =
- rustfmt.stdin(Stdio::piped()).stdout(Stdio::piped()).stderr(Stdio::piped()).spawn()?;
+ let mut rustfmt = rustfmt
+ .stdin(Stdio::piped())
+ .stdout(Stdio::piped())
+ .stderr(Stdio::piped())
+ .spawn()
+ .context(format!("Failed to spawn {:?}", rustfmt))?;
rustfmt.stdin.as_mut().unwrap().write_all(file.as_bytes())?;