Notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- New: support pointer flags. #22
- New: support grouping command into different categories in help. #23
- New: support flag value and positional arg completion by function. #27 (thanks @akemrir)
- Fix: typo in README.md. #28 (thanks @maartenverheul)
- Change: use capitalized words instead of all uppercase in usage title. #25
- New: support shell auto-completion. #11
- New: support single quote name in flag usage. #13
- Fix unnecessary space in usage output
- New: support optional app description. #7
- New: support root command. #7
- Change: make app options be public accessible.
- Add more tests, increase coverage to 85%.
- Add coverage report and badge to readme. #2
- Fix suggestion not work in some cases. #3
- New: validate non-flag arguments for invalid usage.
- New: support value implementing encoding.TextUnmarshaler, allowing command-line flags and arguments to have types such as big.Int, netip.Addr, and time.Time.
- New: add type Context to allow using
func(*Context)
as command action, making it easier to use manually created App. - Change: drop support for Go < 1.17.
- Fix: reflect.Pointer not exists when using with Go below 1.18.
- Fix: error handling for invalid command.
- New: add options
ReplaceUsage
andWithFooter
to customize usage help. - New: add option to allow parsing posix-style single token multiple options.
- New: support alias commands.
- Change: remove api
KeepCommandOrder
, replaced bySetOptions
. - Change: optimize help padding.
- Change: refactor code for better maintainability.
- Support alternative 'mcli' tag.
- Support global flags.
- Support keep command order in help.
- Improve compatibility with flag.FlagSet.
- Improve examples and docs.
Initial public release.