#errors #pretty #cli


Nice, colorful and simple error output

3 releases

0.1.3 Apr 26, 2020
0.1.2 Apr 25, 2020
0.1.1 Apr 25, 2020
0.1.0 Apr 25, 2020

#8 in #errors

23 downloads per month


503 lines


License Version Build status

This is a library to display simple errors in colorful, rustc-like way. It can't show multi-line errors or draw arrows between parts of code, but its interface is simple and easy to use. If you want something more complex, you probably should use annotate-snippets, which is used by rustc itself.

example output

Basic usage

Entry point of this library is AnnotationList. You should create it, add some errors and then use .show_stderr() or .show_stdout() with some Stylesheet to display the message.

let mut list = AnnotationList::new("hello.txt", "Hello world!");
    .warning(4..7, "punctuation problem", "you probably forgot a comma")?
    .info(0..0, "consider adding some translations", None)?;
assert_eq!(list.to_string()?, r#"
warning: punctuation problem
  --> hello.txt:1:5
 1 | Hello world!
   |     ^^^ you probably forgot a comma

info: consider adding some translations
  --> hello.txt:1:1
 1 | Hello world!


Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

SPDX-License-Identifier: MIT OR Apache-2.0


~22K SLoC