commitfmt 0.0.1

A git commit message formatter
Documentation
# commitfmt

A git commit message formatter written in Rust.

## Features

- Enforces subject line length (default: 50 chars)
- Wraps body lines (default: 72 chars)
- Preserves git comments and diffs
- Works seamlessly with editors like nvim
- Configurable via `.commitfmt.toml`

## Installation

```bash
cargo install commitfmt
```

Or build from source:

```bash
cargo install --path .
```

## Usage

### Format from stdin

```bash
cat commit.txt | commitfmt
```

### Format a file in-place

```bash
commitfmt COMMIT_EDITMSG
```

### Use with nvim

Add to your git config:

```bash
git config --global core.editor "nvim"
```

Then use with a git hook in `.git/hooks/commit-msg`:

```bash
#!/bin/sh
commitfmt "$1"
```

### Custom config

Create `.commitfmt.toml` in your project:

```toml
subject_max_length = 50
body_max_line_length = 72
```

## How it works

- Subject lines longer than the max length have overflow words moved to the body
- Body lines longer than max are wrapped at word boundaries
- Lines starting with `#` (git comments/diffs) are preserved
- Intentional line breaks in the body are maintained

## License

MIT