From 3213fa610a17e3f52ece8c069eb123b2a38f1266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 22 Sep 2021 15:57:20 -0700 Subject: [PATCH] feat(narrated): global footer and related diagnostics support --- src/handlers/narratable.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/handlers/narratable.rs b/src/handlers/narratable.rs index c38ee22..0581e0a 100644 --- a/src/handlers/narratable.rs +++ b/src/handlers/narratable.rs @@ -58,6 +58,10 @@ impl NarratableReportHandler { self.render_causes(f, diagnostic)?; self.render_snippets(f, diagnostic)?; self.render_footer(f, diagnostic)?; + self.render_related(f, diagnostic)?; + if let Some(footer) = &self.footer { + writeln!(f, "{}", footer)?; + } Ok(()) } @@ -95,6 +99,26 @@ impl NarratableReportHandler { Ok(()) } + fn render_related( + &self, + f: &mut impl fmt::Write, + diagnostic: &(dyn Diagnostic), + ) -> fmt::Result { + if let Some(related) = diagnostic.related() { + writeln!(f)?; + for rel in related { + write!(f, "Error: ")?; + self.render_header(f, rel)?; + writeln!(f)?; + self.render_causes(f, rel)?; + self.render_snippets(f, rel)?; + self.render_footer(f, rel)?; + self.render_related(f, rel)?; + } + } + Ok(()) + } + fn render_snippets( &self, f: &mut impl fmt::Write,