Commit d28c230e0b8860320466018c4e6e38f6ca19c237
Committed by
Henry Schreiner
1 parent
44de4de1
Adding docs
Showing
2 changed files
with
7 additions
and
3 deletions
CHANGELOG.md
| @@ -15,9 +15,12 @@ | @@ -15,9 +15,12 @@ | ||
| 15 | * The order is now preserved for subcommands (list and callbacks) [#49](https://github.com/CLIUtils/CLI11/pull/49) | 15 | * The order is now preserved for subcommands (list and callbacks) [#49](https://github.com/CLIUtils/CLI11/pull/49) |
| 16 | * Tests now run individually, utilizing CMake 3.10 additions if possible [#50](https://github.com/CLIUtils/CLI11/pull/50) | 16 | * Tests now run individually, utilizing CMake 3.10 additions if possible [#50](https://github.com/CLIUtils/CLI11/pull/50) |
| 17 | * Failure messages are now customizable, with a shorter default [#52](https://github.com/CLIUtils/CLI11/pull/52) | 17 | * Failure messages are now customizable, with a shorter default [#52](https://github.com/CLIUtils/CLI11/pull/52) |
| 18 | +* Some improvements to error codes [#53](https://github.com/CLIUtils/CLI11/pull/53) | ||
| 18 | * `require_subcommand` now offers a two-argument form and negative values on the one-argument form are more useful [#51](https://github.com/CLIUtils/CLI11/pull/51) | 19 | * `require_subcommand` now offers a two-argument form and negative values on the one-argument form are more useful [#51](https://github.com/CLIUtils/CLI11/pull/51) |
| 19 | * Subcommands no longer match after the max required number is obtained [#51](https://github.com/CLIUtils/CLI11/pull/51) | 20 | * Subcommands no longer match after the max required number is obtained [#51](https://github.com/CLIUtils/CLI11/pull/51) |
| 20 | * Unlimited options no longer prioritize over remaining/unlimited positionals [#51](https://github.com/CLIUtils/CLI11/pull/51) | 21 | * Unlimited options no longer prioritize over remaining/unlimited positionals [#51](https://github.com/CLIUtils/CLI11/pull/51) |
| 22 | +* Added `->transform` which modifies the string parsed [#54](https://github.com/CLIUtils/CLI11/pull/54) | ||
| 23 | +* Changed of API in validators to `void(std::string &)` (const for users), throwing providing nicer errors [#54](https://github.com/CLIUtils/CLI11/pull/54) | ||
| 21 | 24 | ||
| 22 | ## Version 1.2 | 25 | ## Version 1.2 |
| 23 | 26 |
README.md
| @@ -170,8 +170,9 @@ The add commands return a pointer to an internally stored `Option`. If you set t | @@ -170,8 +170,9 @@ The add commands return a pointer to an internally stored `Option`. If you set t | ||
| 170 | * `->check(CLI::ExistingDirectory)`: Requires that the directory exists. | 170 | * `->check(CLI::ExistingDirectory)`: Requires that the directory exists. |
| 171 | * `->check(CLI::NonexistentPath)`: Requires that the path does not exist. | 171 | * `->check(CLI::NonexistentPath)`: Requires that the path does not exist. |
| 172 | * `->check(CLI::Range(min,max))`: Requires that the option be between min and max (make sure to use floating point if needed). Min defaults to 0. | 172 | * `->check(CLI::Range(min,max))`: Requires that the option be between min and max (make sure to use floating point if needed). Min defaults to 0. |
| 173 | +* `->transform(std::string(std::string))`: Converts the input string into the output string, in-place in the parsed options. | ||
| 173 | 174 | ||
| 174 | -These options return the `Option` pointer, so you can chain them together, and even skip storing the pointer entirely. Check takes any function that has the signature `bool(std::string)`. If you just want to see the unconverted values, use `.results()` to get the `std::vector<std::string>` of results. | 175 | +These options return the `Option` pointer, so you can chain them together, and even skip storing the pointer entirely. Check takes any function that has the signature `void(const std::string&)`; it should throw a `ValidationError` when validation fails. The help message will have the name of the parent option prepended. Since `check` and `transform` use the same underlying mechanism, you can chain as many as you want, and they will be executed in order. If you just want to see the unconverted values, use `.results()` to get the `std::vector<std::string>` of results. |
| 175 | 176 | ||
| 176 | 177 | ||
| 177 | On the command line, options can be given as: | 178 | On the command line, options can be given as: |
| @@ -263,10 +264,10 @@ arguments, use `.config_to_str(default_also=false)`, where `default_also` will a | @@ -263,10 +264,10 @@ arguments, use `.config_to_str(default_also=false)`, where `default_also` will a | ||
| 263 | 264 | ||
| 264 | Many of the defaults for subcommands and even options are inherited from their creators. The inherited default values for subcommands are `allow_extras`, `prefix_command`, `ignore_case`, `fallthrough`, `group`, `footer`, and maximum number of required subcommands. The help flag existence, name, and description are inherited, as well. | 265 | Many of the defaults for subcommands and even options are inherited from their creators. The inherited default values for subcommands are `allow_extras`, `prefix_command`, `ignore_case`, `fallthrough`, `group`, `footer`, and maximum number of required subcommands. The help flag existence, name, and description are inherited, as well. |
| 265 | 266 | ||
| 266 | -Options have defaults for `group`, `required`, `take_last`, and `ignore_case`. To set these defaults, you should set the `option_defauts()` object, for example: | 267 | +Options have defaults for `group`, `required`, `take_last`, and `ignore_case`. To set these defaults, you should set the `option_defaults()` object, for example: |
| 267 | 268 | ||
| 268 | ```cpp | 269 | ```cpp |
| 269 | -app.option_defauts()->required(); | 270 | +app.option_defaults()->required(); |
| 270 | // All future options will be required | 271 | // All future options will be required |
| 271 | ``` | 272 | ``` |
| 272 | 273 |