From 8d1633fe142e82bf263bb972a4df2cae1f029aeb Mon Sep 17 00:00:00 2001 From: David Sherret Date: Fri, 31 May 2024 23:25:36 -0400 Subject: [PATCH] fix(diagnostics): don't output trailing blank line in display (#249) --- src/diagnostics.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/diagnostics.rs b/src/diagnostics.rs index af83d0a..8107e27 100644 --- a/src/diagnostics.rs +++ b/src/diagnostics.rs @@ -346,7 +346,15 @@ fn print_diagnostic( colors::yellow(format_args!(":{}:{}", line, column)) )?; } - writeln!(io)?; + + if diagnostic.snippet().is_some() + || diagnostic.hint().is_some() + || diagnostic.snippet_fixed().is_some() + || !diagnostic.info().is_empty() + || diagnostic.docs_url().is_some() + { + writeln!(io)?; + } if let Some(snippet) = diagnostic.snippet() { print_snippet(io, &snippet, max_line_number_digits)?; @@ -366,22 +374,17 @@ fn print_diagnostic( print_snippet(io, &snippet, max_line_number_digits)?; } - writeln!(io)?; + if !diagnostic.info().is_empty() || diagnostic.docs_url().is_some() { + writeln!(io)?; + } - let mut needs_final_newline = false; for info in diagnostic.info().iter() { - needs_final_newline = true; writeln!(io, " {}: {}", colors::intense_blue("info"), info)?; } if let Some(docs_url) = diagnostic.docs_url() { - needs_final_newline = true; writeln!(io, " {}: {}", colors::intense_blue("docs"), docs_url)?; } - if needs_final_newline { - writeln!(io)?; - } - Ok(()) }