prettyprint
Syntax highlighting library with batteries included.
Quick start
The above output was created with the following code:
let printer = default
.language
.build?;
printer.file?;
Note that prettyprint
is a builder and can be customized. For example, if you don't like the grid or the header, you can disable those:
let printer = default
.header
.grid
.language
.build?;
let example = r#"
def fib(n)
return 1 if n <= 1
fib(n-1) + fib(n-2)
end
"#;
printer.string_with_header?;
"What!? It can also print strings, Matthias? That's insane."
It's true. You're welcome.
Installation
Add this to your Cargo.toml
:
= "*"
But why?
syntect
is a great package for highlighting text.
When writing a command-line tool that prints text however, you might be looking for some additional functionality.
- Line numbers
- More built-in color-themes
- Automatic pagination
- Proper terminal handling
- Showing non-printable characters
- File headers
- Windows support
prettyprint
offers all of this in one crate (thanks to bat).
Known limitations
- Doesn't run on
no-std
targets. I don't plan to support those.
Credits
prettyprint
is simply a fork of bat
, with some functionality stripped out and bundled up as a library.
I built it, because I needed it for cargo-inspect.
All credits go to the original authors.