Move from language-reporting to codespan (#1825)

This commit is contained in:
Jonathan Turner
2020-05-18 11:44:27 -07:00
committed by GitHub
parent 5f1136dcb0
commit 0743b69ad5
12 changed files with 116 additions and 320 deletions

View File

@ -464,8 +464,8 @@ pub async fn run_pipeline_standalone(
}
LineResult::Error(line, err) => {
context.with_host(|host| {
print_err(err, host, &Text::from(line.clone()));
context.with_host(|_host| {
print_err(err, &Text::from(line.clone()));
});
context.maybe_print_errors(Text::from(line));
@ -654,8 +654,8 @@ pub async fn cli(
rl.add_history_entry(line.clone());
let _ = rl.save_history(&History::path());
context.with_host(|host| {
print_err(err, host, &Text::from(line.clone()));
context.with_host(|_host| {
print_err(err, &Text::from(line.clone()));
});
context.maybe_print_errors(Text::from(line.clone()));
@ -908,19 +908,19 @@ async fn process_line(
}
}
pub fn print_err(err: ShellError, host: &dyn Host, source: &Text) {
pub fn print_err(err: ShellError, source: &Text) {
if let Some(diag) = err.into_diagnostic() {
let writer = host.err_termcolor();
let mut source = source.to_string();
source.push_str(" ");
let files = nu_parser::Files::new(source);
let source = source.to_string();
let mut files = codespan_reporting::files::SimpleFiles::new();
files.add("shell", source);
let writer = codespan_reporting::term::termcolor::StandardStream::stderr(
codespan_reporting::term::termcolor::ColorChoice::Always,
);
let config = codespan_reporting::term::Config::default();
let _ = std::panic::catch_unwind(move || {
let _ = language_reporting::emit(
&mut writer.lock(),
&files,
&diag,
&language_reporting::DefaultConfig,
);
let _ = codespan_reporting::term::emit(&mut writer.lock(), &config, &files, &diag);
});
}
}

View File

@ -181,14 +181,11 @@ impl Context {
let errors = self.current_errors.clone();
let mut errors = errors.lock();
let host = self.host.clone();
let host = host.lock();
if errors.len() > 0 {
let error = errors[0].clone();
*errors = vec![];
crate::cli::print_err(error, &*host, &source);
crate::cli::print_err(error, &source);
true
} else {
false