snapper-fmt 0.10.0

Semantic line break formatter for Org, LaTeX, Markdown, RST, and plaintext
Documentation
---
title: Semantic Line Breaking in Practice
author: A. Researcher
date: 2026-01-15
---

# Introduction

This document demonstrates semantic line breaking for Markdown files.
When collaborating on documentation, blog posts, or papers written in Markdown, traditional wrapping causes noisy diffs.
By placing each sentence on its own line, reviewers can see exactly what changed.

## The Problem

Consider editing a paragraph where you change one word.
With traditional wrapping at 80 columns, the entire paragraph may reflow, producing a diff that touches every line.
With semantic line breaks, only the changed sentence appears in the diff.
This is especially valuable when using GitHub pull requests for review.

## How It Works

The formatter identifies prose regions and structural elements separately.
Front matter and non-source structure pass through unchanged.
Fenced code blocks keep fences fixed; comment lines reflow when `[code.<lang>]` is configured.

```python
# Comment lines reflow when configured; code lines stay as-is
def example():
    return "semantic line breaks"
```

After the code block, prose continues with sentence-level formatting.
The tool handles abbreviations like Dr. Smith, Fig. 3, and Latin terms like e.g. and i.e. correctly.

### Integration

- Use as a pre-commit hook for automatic formatting
- Add to CI with `--check` mode to enforce the convention
- Configure Emacs via Apheleia for format-on-save
- Pipe through stdin/stdout for editor integration

## Conclusion

Semantic line breaks are a simple convention that dramatically improves the collaboration experience on prose documents.
This tool makes adoption painless across Markdown, LaTeX, Org-mode, and plaintext.