difftreelog
refactor finish renaming hi-doc format
in: master
2 files changed
crates/jrsonnet-cli/src/trace.rsdiffbeforeafterboth1use clap::{Parser, ValueEnum};2use jrsonnet_evaluator::trace::{3 AssStrokeFormat, CompactFormat, ExplainingFormat, PathResolver, TraceFormat,4};56#[derive(PartialEq, Eq, ValueEnum, Clone)]7pub enum TraceFormatName {8 /// Only show `filename:line:column`9 Compact,10 /// Display source code with attached trace annotations11 Explaining,12 /// Experimental trace formatting based on hi-doc library13 HiDoc,14}1516#[derive(Parser)]17#[clap(next_help_heading = "STACK TRACE VISUAL")]18pub struct TraceOpts {19 /// Format of stack traces' display in console.20 #[clap(long)]21 trace_format: Option<TraceFormatName>,22 /// Amount of stack trace elements to be displayed.23 /// If set to `0` then full stack trace will be displayed.24 #[clap(long, short = 't', default_value = "20")]25 max_trace: usize,26}27impl TraceOpts {28 pub fn trace_format(&self) -> Box<dyn TraceFormat> {29 let resolver = PathResolver::new_cwd_fallback();30 let max_trace = self.max_trace;31 let format: Box<dyn TraceFormat> = match self32 .trace_format33 .as_ref()34 .unwrap_or(&TraceFormatName::Compact)35 {36 TraceFormatName::Compact => Box::new(CompactFormat {37 resolver,38 padding: 4,39 max_trace,40 }),41 TraceFormatName::Explaining => Box::new(ExplainingFormat {42 resolver,43 max_trace,44 }),45 TraceFormatName::HiDoc => Box::new(AssStrokeFormat {46 resolver,47 max_trace,48 }),49 };50 format51 }52}1use clap::{Parser, ValueEnum};2use jrsonnet_evaluator::trace::{3 CompactFormat, ExplainingFormat, HiDocFormat, PathResolver, TraceFormat,4};56#[derive(PartialEq, Eq, ValueEnum, Clone)]7pub enum TraceFormatName {8 /// Only show `filename:line:column`9 Compact,10 /// Display source code with attached trace annotations11 Explaining,12 /// Experimental trace formatting based on hi-doc library13 HiDoc,14}1516#[derive(Parser)]17#[clap(next_help_heading = "STACK TRACE VISUAL")]18pub struct TraceOpts {19 /// Format of stack traces' display in console.20 #[clap(long)]21 trace_format: Option<TraceFormatName>,22 /// Amount of stack trace elements to be displayed.23 /// If set to `0` then full stack trace will be displayed.24 #[clap(long, short = 't', default_value = "20")]25 max_trace: usize,26}27impl TraceOpts {28 pub fn trace_format(&self) -> Box<dyn TraceFormat> {29 let resolver = PathResolver::new_cwd_fallback();30 let max_trace = self.max_trace;31 let format: Box<dyn TraceFormat> = match self32 .trace_format33 .as_ref()34 .unwrap_or(&TraceFormatName::Compact)35 {36 TraceFormatName::Compact => Box::new(CompactFormat {37 resolver,38 padding: 4,39 max_trace,40 }),41 TraceFormatName::Explaining => Box::new(ExplainingFormat {42 resolver,43 max_trace,44 }),45 TraceFormatName::HiDoc => Box::new(HiDocFormat {46 resolver,47 max_trace,48 }),49 };50 format51 }52}crates/jrsonnet-evaluator/src/trace/mod.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/trace/mod.rs
+++ b/crates/jrsonnet-evaluator/src/trace/mod.rs
@@ -368,12 +368,12 @@
#[cfg(feature = "explaining-traces")]
#[derive(Trace)]
-pub struct AssStrokeFormat {
+pub struct HiDocFormat {
pub resolver: PathResolver,
pub max_trace: usize,
}
#[cfg(feature = "explaining-traces")]
-impl TraceFormat for AssStrokeFormat {
+impl TraceFormat for HiDocFormat {
fn write_trace(
&self,
out: &mut dyn std::fmt::Write,
@@ -420,7 +420,7 @@
let rendered = builder.build();
let ansi = source_to_ansi(&rendered);
if let Some(loc) = &last_location {
- let _ = writeln!(out, "...because of {}", loc.0.source_path());
+ let _ = writeln!(out, "...at {}", loc.0.source_path());
}
let _ = write!(out, "{}", ansi.trim_end());
}
@@ -456,7 +456,8 @@
writeln!(out)?;
write!(out, "{flushed}")?;
}
- write!(out, "{desc}")?;
+ writeln!(out)?;
+ write!(out, " {desc}")?;
}
}