fix incorrect parenthesis
update some clang-tidy fixes mainly else after return but a few conversions from into to bool
add extra newline before footer
add an extra field to the extra Error
add a footer callback for help operations
* add some tests with default capture on the two parameter template and some notes about it in the README.md
remove the test from visual studio 2015
vs2015 doesn't seem to properly deal with is_assignable in the cases we care about so make a standalone version that is more direct in what we are doing
add version to appveyor and add some notes to the readme
fix a few test cases to make sure code is covered and test a few other paths
remove unneeded enum streaming operator
add some diagnostic escapes around trait code to eliminate gcc Wnarrowing warnings
work specification of the template operations
remove optional add some templates for options conversions
add the two parameter template for add_option
* Fix some comments from Code review and add more description
* start work on trying to clean up the type traits for which lexical cast overload to use
* fix readme issue and make the condition tests a little clearer
* add a check for out of range errors on boolean conversions
* Fix capitalization and some comments on option functions
* Allow immediate_callback on the main app to run the main app callback prior to named subcommand callbacks, and reflect this change in the a new test and docs.
* add a is_tuple_like trait, and type_count structure for getting the number of elements to require
* add lexical conversion functions for tuples and other types
* remove the separate vector option and option function
* test out the type names for tuples
* add some more lexical conversion functions and test
* more work on tuples and tests
* fix some merge warnings
* fix some typename usage and c++14 only constructs
* tweak some of the template to remove undefined references
* add extra static assert about is_tuple_like
* fix some undefined references in clang
* move around some of the type_count templates to be used in the type_name functions
* move the type_count around and add some additional checks on the classification
* add some info to the readme
* add a check loop for missing required positional, when the number of arguments get small.
* fix a few warnings on signed/unsigned checks
* add check for a required positional vector.
This cleans up the type checking a bit and makes it more readable, along with some other cleanup.
* start work on trying to clean up the type traits for which lexical cast overload to use
* fix readme issue and make the condition tests a little clearer
* add a check for out of range errors on boolean conversions
* Fix capitalization and some comments on option functions
* fix a few code analysis warnings for VS2019
* add some tests with default capture on the two parameter template and some notes about it in the README.md
remove the test from visual studio 2015
vs2015 doesn't seem to properly deal with is_assignable in the cases we care about so make a standalone version that is more direct in what we are doing
add version to appveyor and add some notes to the readme
fix a few test cases to make sure code is covered and test a few other paths
remove unneeded enum streaming operator
add some diagnostic escapes around trait code to eliminate gcc Wnarrowing warnings
work specification of the template operations
remove optional add some templates for options conversions
add the two parameter template for add_option
* Fix some comments from Code review and add more description
* fix case when string_view doesn't work to append to a string.
* This PR also addressed #300
* modify lexical_cast to take const std::string &, instead of by value to allow string_view in a few cases
* Allow immediate_callback on the main app to run the main app callback prior to named subcommand callbacks, and reflect this change in the a new test and docs.
* Update README.md
Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
* Fixing some warnings
* Make gtest a system library
* Fixing format
* Adding better method for adding warnings
* Nicer Windows deprecated test
* JSON update and drop testing timer
* Warnings as errors everywhere
* Start adding a description of the various examples to the README
* add an examples segment to the readme describing the different examples
* add a reserve operation when constructing vector from argc and argv
* First streaming version
* Using to_string instead
* Switching to new backend
* Moving to capture function for defaults
* Rename capture_default + _str
* defaultval -> default_str, added always_capture_default
* Fix style
* Adding tests and docs to readme
* Dropping macOS on Travis (supported through Azure)
* add a function to get the remaining arguments in a valid order for parse. and add rvalue reference overloads for parse and _parse so args is not refilled if not needed.
* check a few more tests and verify ExtrasError works on parse(rValue vector)
remove impossible to reach branches in _parse function
* add callback_passthrough example and tests
* some tweaks with optional
* remove set_results function that was bypassing some of the result processing in some cases of config files.
* add positional Validator example and tests add CLI::Number validator.
* add positional Validator example and tests add CLI::Number validator.
* do some reformatting for style checks and remove auto in test lambda.
add some test of the remove_excludes functions
add test for Issue #256
add remove_subcommand fail test
add remove_subcommand function and add_subcommand to option_group and some tests associated with them.
Allow option groups to use ignore_case ignore_underscore for inheritance
Allow option groups to specify allow_extras even if the parent app doesn't in which case extra options flow down into the option_group.
rework return values from _parse_* function to return true if the value was processed false otherwise, this simplified the logic and got rid of the pulling and clearing of the missing fields from option groups.
add TriggerOff and TriggerOn helper functions and some tests for them
add shapes example of multiple callbacks in order.
allow specification of callbacks that get executed immediately on completion of parsing of subcommand
add tests for enabled/disabled by default
add _get_fallthrough_parent. To get the most appropriate parent to fallthrough to
add enabled and disabled by default functions
add positional_arity example
Add a pre_parse_callback_ for apps. The Pre parse callback takes an argument for the number of remaining arguments left to process, and will execute prior to parsing for subcommands, and after the first option parse for option_groups.
Make sure that nameless subcommands can handle subcommands and that App will treat subcommands in a group nearly the same as if they were in the in the app to begin with.
* change the move function to _move_option and add an additional test
add a validation check on min options to make sure it is even possible to succeed.
add some additional tests to cover code paths and potential errors.
add a number of additional tests and checks and fix some issues with the add function in option_groups
clean up example and help formatting
add option_groups example to play with
move create_option_group to a member function using a dummy template
add some optionGroup tests
add min and max options calls and an associated Error call
* add ranges example, add excludes to app for options and subcommands.
* add some tests on ranges, and some subcommand tests with exclusion
* add tests in optionGroups for some invalid inputs
* add required option to subcommands and option_groups
* add disabled flag
* add disable option to subcommands and some more tests
* start work on ReadMe modifications
* update the readme with descriptions of function and methods added for option_groups
* clear up gcc 4.7 warnings
* some update to the Readme and a few more warnings fixed
* Minor readme touchup
add some comments in readME about performance
move operator[] to return const Option *
Apply suggestions from code review
Co-Authored-By: phlptp <top1@llnl.gov>
update readme and add some IniTests and fix a bug from the tests
add_flag_callback
add a few tests to capture the different paths
fix incorrectly updated CMAKE file, and add some subcommand test for option finding
add disable_flag_override and work out some kinks in the find option functions
add some more tests and fix a few bugs in as<> function for options
Allow general flag types and default values, add shortcut notation for retrieving values
* clear up some additional Wshadow warnings on older compilers
* clear up a few more Wshadow warnings in option
* add extra test for delimiter in add_option_function call.
* clear up a warning from the test
* Adding first draft of mapping
* IsMember now supports maps
* Adding example, better Val combs, and cleanup
* Reversing order of map, adding pair support
* Check/Transform suppport for Validators
* Adding enum tools from @phlptp, more tests
* Adding first draft of Sets
Use IsMember now
Using IsMember as backend for Set
Non-const validator backend
Move set tests to set
Clearer inits
* Drop shortcut
Tighten up classes a bit for MSVC
Check with GCC 4.8 too
* Simpler templates, but more of them
Dropping more type safety for older compilers
Shortcut string set
* Adding shortcut init
Making g++ 4.7 docker image happy
Fix Clang tidy issue with last commit
Adding one more shortcut, adding a couple of tests
* Dropping dual pointer versions of code
* Smarter shortcut syntax
* Adding slighly faster choices
* Cleanup to make InMember simpler
* Drop choices for now, adding some tests
* ValidationError is now always the error from a validator
* Support for other types of initializer lists, including enums
* Factor out type utilities, single version of IsMember code
* Adding a few tests for #224
* Minor cleanup for Validation Error
* Adding tests, moved deprecated tests
* Docs updates
Add a flag that specifies that positional options can only occur as the last arguments of a command line. Will generate an ExtrasError if all positional arguments are not captured, regardless of the state of allow_extras.
Updates to the readme
update the readme with some documentation
add a few more tests to complete code coverage
update with count strings in flags instead an array of strings for each count
add the '!' shortcut notation. add some checks on the help output
allow the false flag syntax to support --option{false}
add a bool lexical cast to make everything consistent when converting to a bool. Moved a few functions around
make the command line behave like the INI file wrt flags, flag options are allowed to process the value so `--flag=false` actually does the expected thing.
Add functionality similar to click style argument that allow specifying a false flag that when used generates a false result on the flag.
This commit allows parsing any char separated list given by the user.
E.g app -a 1,2,3
std::vector<int> params;
app.add_option("-a", params, "Parse the params", ',');
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
add tests for delimiter parsing
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
Fixing style, adding docker version of clang-format
increment the parse_ variable on unnamed subcommands.
update the readme, and add a formatter test for nameless subcommands in nondefault group with other named subcommands.
add a test of default arguments
add a formatter test
add tests for unnamed subcommands and an example of the partitioned subcommands.
change the app_p to be a shared_ptr so you can add an App later on and merge them together
add the ability to add unnamed subcommands that allow partitioning on options into multiple apps.
* Getting a bit closer to Version 1.7
* Check and fix for deleting an option pointer directly that is also a help option. It is not common, but could be done
* Clear up Wshadow warnings from gcc 4.9. Most of these were local variable names with the same name as a member function.
Also a few spelling fixes and adding some std::move around some of the arguments when appropriate.
* Touchup
* add some fields and functions for windows like options
add test cases for windows options and refactor for additional string functions
* try to fix code coverage to 100% again. add some additional documentation and a few additional test cases to verify documentation
* remove some extra brackets
* add Tests and ability to handle program file inclusion in the single string.
add the ability to deal with a single string in the parse command and handle quoted string appropriately
* Add extra test cases for full coverage, clear up escape quote sequencing and handling of extra spaces
* add ignore_underscore test cases and options to app
* add ignore_underscore for add_sets and some more tests for the sets and subcommands
* add some documentation lines and some failing tests
* update readme with ignore_underscore option
* remove failing tests from known issue
* remove empty line for code coverage
* Adding new parse layout
* Dropping shortcurcuit from help, since it has special override
* Refactor help call
* Dropping shortcurcuit since it is not needed now that help has custom behavoir
* Dropping MaxSubcommand error (cannot occur)