mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-15 01:17:27 +00:00
Auto merge of #13064 - Veykril:rustfmt-err, r=Veykril
Log rustfmt parsing errors as warnings We unconditionally pass an edition parameter to rustfmt, for some crates this might fail rustfmt so instead of swallowing the error, at least Log it on a level that is logged by default so users won't be completely confused about it. See for context https://github.com/rust-lang/rust-analyzer/issues/10209 Closes https://github.com/rust-lang/rust-analyzer/issues/10209
This commit is contained in:
commit
a2ad3d0669
1 changed files with 8 additions and 4 deletions
|
@ -1777,7 +1777,7 @@ fn run_rustfmt(
|
|||
|
||||
let line_index = snap.file_line_index(file_id)?;
|
||||
|
||||
let mut rustfmt = match snap.config.rustfmt() {
|
||||
let mut command = match snap.config.rustfmt() {
|
||||
RustfmtConfig::Rustfmt { extra_args, enable_range_formatting } => {
|
||||
let mut cmd = process::Command::new(toolchain::rustfmt());
|
||||
cmd.args(extra_args);
|
||||
|
@ -1842,12 +1842,12 @@ fn run_rustfmt(
|
|||
}
|
||||
};
|
||||
|
||||
let mut rustfmt = rustfmt
|
||||
let mut rustfmt = command
|
||||
.stdin(Stdio::piped())
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::piped())
|
||||
.spawn()
|
||||
.context(format!("Failed to spawn {:?}", rustfmt))?;
|
||||
.context(format!("Failed to spawn {:?}", command))?;
|
||||
|
||||
rustfmt.stdin.as_mut().unwrap().write_all(file.as_bytes())?;
|
||||
|
||||
|
@ -1866,7 +1866,11 @@ fn run_rustfmt(
|
|||
// formatting because otherwise an error is surfaced to the user on top of the
|
||||
// syntax error diagnostics they're already receiving. This is especially jarring
|
||||
// if they have format on save enabled.
|
||||
tracing::info!("rustfmt exited with status 1, assuming parse error and ignoring");
|
||||
tracing::warn!(
|
||||
?command,
|
||||
%captured_stderr,
|
||||
"rustfmt exited with status 1"
|
||||
);
|
||||
Ok(None)
|
||||
}
|
||||
_ => {
|
||||
|
|
Loading…
Reference in a new issue