* Fix the compile issues with the boost<optional> tests and catch
* tests: add Boost test (back)
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* Add some missing modifiers on the options to the docs and clarify some of them.
* style: pre-commit.ci fixes
* add a more clear force callback and callback on parse modifier for options.
* update the book with new modifiers
* update documentation and add tests
* style: pre-commit.ci fixes
* more updates to the readme
* update formatting
* rework the trigger_on_parse to better support more complex option types
* fix formatting errors
* Update include/CLI/Option.hpp
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: Henry Schreiner <henry.fredrick.schreiner@cern.ch>
* add some capabilities to the config parser and a stream parser
* style: pre-commit.ci fixes
* add additional tests for the config parser
* additional tests of config sections and indexing
* style: pre-commit.ci fixes
* add initialization for member variables
* warning and error fixes
* add test for `parse_from_stream`
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add a test for std::map
* add some test of the relaxed naming and other checks
* add validator for aliases, group names and option groups
* add extra tests and update readme
* style: pre-commit.ci fixes
* update the book chapters
* fix codacy issue
* Apply suggestions from code review
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Add configuration output multi-line description tests
This adds tests for the application's description as well as option
groups and subcommands.
See #592.
* Fix commenting of configuration output multi-line descriptions
* Fix excessive call to subcommand's final_callback
When parse_complete_callback_ is set there is an extra call to
run_callback() inside the App::_parse(std::vector<std::string>&) method.
This extra call also excessively calls a final_callback_ (when it is
also set) for the command and (since it is recursive) for it's
subcommands.
This commit adds extra boolean parameter for the run_callback() method
allowing to explicitly suppress calling to final_callback_. The value of
this parameter is also propagated to recursive calls to run_callback().
Fixes#572
* fix: main app should run final_callback, add tests
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
add a test for char options
add support for char types to the lexical cast, to allow single character types that make sense, add a integral_conversion operations to simplify the conversions from string to integers and allow discrimination in a few cases with enumerations.
* Added an option to change the text between definition and description
* Added test and readme
* Update Option.hpp
Fixed shadowing issue
* style: fix formatting
Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
* Add a dedicated version option to CLI11 to facilitate use of version flags, similar to help flags
* add some test for the version flag
* update errors and formatting
* clear up gcc 4.8 warnings
* add a few more tests
* fix compiler error
* fix a few comments, and change default version flag to only use "--version"
* remove `version` calls and tests
* formatting and add `std::string version()` back in.
* Update options.md book chapter and the readme to better reflect current usage and the modifications to the add_options templates.
add support in add_option for wrapper types, such as std::optional, boost::optional or other types with a value_type trait. Add support for generalized containers beyond vector, add support for nested tuples and vectors, and complex numbers directly in add_option. This includes several new type traits and object categories.
Upgrade the google test version to better support templated tests.
add support for vector argument separator `%%`
* update formatting to match recent changes
* Apply suggestions from code review
Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
* add a get_single_name function for options, and allow short names to be used for configuration output.
* add config input to handle short and positional options
* add some tests about short options and positional options in config files
* allow use of envname_ in config files
* update doc book and readme with fixes
* formatting update
* some formatting updates
* add some notes on the config file generation
* just try modifying a comment