Expand description
§snapper
Semantic line break formatter for prose documents. Reformats text so each sentence occupies its own line, producing minimal git diffs when collaborating on papers and documentation.
The crate is published as snapper-fmt on crates.io; the binary it
installs is called snapper.
§Supported formats
- Org-mode: blocks, drawers, tables, keywords preserved
- LaTeX: preamble, math, environments, comments preserved
- Markdown: code blocks, front matter, headings preserved
- Plaintext: everything treated as prose
§Library usage
use snapper_fmt::{format_text, FormatConfig};
use snapper_fmt::format::Format;
let input = "Hello world. This is a test. Another sentence.";
let config = FormatConfig {
format: Format::Plaintext,
max_width: 0,
use_neural: false,
extra_abbreviations: vec![],
};
let output = format_text(input, &config).unwrap();
assert_eq!(output, "Hello world.\nThis is a test.\nAnother sentence.");Modules§
Structs§
- Format
Config - Configuration for the formatting pipeline.
Functions§
- format_
range - Format only lines within a range (1-indexed, inclusive). Lines outside the range pass through unchanged.
- format_
text - Format text with semantic line breaks.