# rcz
A tool to write a commit message based on [Conventional Commits](https://www.conventionalcommits.org/) inspired by [git-cz](https://github.com/streamich/git-cz)
## Installation
```sh
cargo install rcz
```
## Example
```zsh
# bash
function gitk {
git commit -m "`rcz`"
}
```
## Configuration
The configuration file will be automatically generated on:
- Linux: `~/.config/rcz`
- Windows: `{FOLDERID_RoamingAppData}\rcz`
- Mac OS: `~/Library/Preferences/rs.rcz`
<details>
<summary>Default configuration</summary>
```toml
format = '''
{type}: {emoji}{subject}'''
[[types]]
description = 'A bug fix'
value = 'fix'
emoji = '๐'
[[types]]
description = 'A new feature'
value = 'feat'
emoji = 'โจ'
[[types]]
description = 'Changes that introduces a breaking API change'
value = 'BREAKING CHANGE'
emoji = '๐ฅ'
[[types]]
description = 'build system or external dependencies'
value = 'chore'
emoji = '๐ ๏ธ'
[[types]]
description = 'CI related changes'
value = 'ci'
emoji = '๐ซ'
[[types]]
description = 'Documentation only changes'
value = 'docs'
emoji = 'โ๏ธ'
[[types]]
description = 'Changes that do not affect the meaning of the code'
value = 'style'
emoji = '๐'
[[types]]
description = 'A code change that neither fixes a bug nor adds a feature'
value = 'refactor'
emoji = '๐งน'
[[types]]
description = ' A code change that improves performance'
value = 'perf'
emoji = '๐'
[[types]]
description = 'Adding or correcting tests'
value = 'test'
emoji = '๐งช'
```
</details>
### Format
All section etc `{scope}` that you can add on the format are bellow.
- `{type}`
- `{emoji}`
- `{subject}`
- `{section}`
- `{scope}`
- `{body}`
- `{footer}`
A example for your customize is bellow.
```toml
format = '''
{type}{scope}: {emoji}{subject}
{body}
{footer}'''
```