feat(narrated): global footer and related diagnostics support

This commit is contained in:
Kat Marchán 2021-09-22 15:57:20 -07:00
parent 612967d381
commit 3213fa610a
1 changed files with 24 additions and 0 deletions

View File

@ -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,