25 releases
new 0.11.5 | Dec 9, 2024 |
---|---|
0.11.4 | Jun 15, 2024 |
0.11.2 | Apr 27, 2024 |
0.11.1 | Mar 21, 2024 |
0.1.0 | May 22, 2018 |
#7 in Programming languages
458,866 downloads per month
Used in 280 crates
(60 directly)
97KB
2K
SLoC
annotate-snippets
annotate-snippets
is a Rust library for annotation of programming code slices.
The library helps visualize meta information annotating source code slices.
It takes a data structure called Snippet
on the input and produces a String
which may look like this:
Local Development
cargo build
cargo test
When submitting a PR please use cargo fmt
(nightly).
lib.rs
:
A library for formatting of text or programming code snippets.
It's primary purpose is to build an ASCII-graphical representation of the snippet with annotations.
Example
The crate uses a three stage process with two conversions between states:
Message --> Renderer --> impl Display
The input type - [Message] is a structure designed to align with likely output from any parser whose code snippet is to be annotated.
The middle structure - [Renderer] is a structure designed to convert a snippet into an internal structure that is designed to store the snippet data in a way that is easy to format. [Renderer] also handles the user-configurable formatting options, such as color, or margins.
Finally, impl Display
into a final String
output.
features
testing-colors
- Makes Renderer::styled colors OS independent, which allows for easier testing when testing colored output. It should be added as a feature in[dev-dependencies]
, which can be done with the following command:
cargo add annotate-snippets --dev --feature testing-colors
Dependencies
~1.5MB
~24K SLoC