-
* fix some warnings generated from klocwork static analyzer * Some more visual studio static analyzer and clang-tidy fixes * some formatting updates
-
* add checks for files and directories so the code can be used in the config check * add use of std::filesystem when available * add some documentation * try a verbatim section * update formatting on validators * update error call to use FileError::Missing * add FileError test for invalid file * format tweak
-
* add expanded type_size specification * add some more checks for type_size_max * continued work on getting type sizes more flexible * make some more tweaks to option to split up validate and reduce sections * git rid of exceptions on the type_size functions exceptions, allow any number to be entered for the min and max and don't make a distinction between flags and other types. * add expected count * add the allow extra args flag in an option * start working in allow_extra_args * write some stuff in the book, and continue working on the failing test cases * fix a few more of the helpers tests * a few more test cases running * all tests pass, fixing calls in ini files * get vector<pair> working and all tests passing * change callback to use reference to remove allocation and copy operation * add support and test for vector<vector<X>> * change Validators_ to validators_ for consistency * fix linux warnings and errors by reording some templates and adding some typename keywords * add support for std::vector<X> as the cross conversion type so optional<std::vector<X>> is supported using the full template of add_option. * a few more test cases to take care of some coverage gaps * add missing parenthesis * add some more tests for coverage gaps * add test for flag like option * add transform test for `as<X>` function and make it pass through the defaults * add a few more tests and have vector default string interpreted correctly. * add test for defaulted integer, and route default string for defaulted value which would otherwise be empty * some code cleanup and comments and few more test coverage gap tests * add more tests and fix a few bugs on the type size and different code paths * remove path in results by fixing the clear of options so they go back to parsing state. * get coverage back to 100% * clang_tidy, and codacy fixes * reorder the lexical_conversion definitions * update some formatting * update whitespace on book chapter
-
* add a needs method to the app/subcommand * add some needs subcommand tests * add a few more subcommand tests for needs and alias * fix shadow warnings * add some tests of the error pathways and fix a few anomalous conditions on the Option excludes function * add needs and alias functions in the readme * add some tests of ignore_case and underscore with the alias operations * add a few more test cases for needs option groups * add callback tests with needs and add a few comments in the readme * update formatting * add error checks on the aliases and restrictions on valid names for subcommands and aliases * add checks for matching subcommands and improve error return values to include the offending name * add some tests of the alias errors * add some more tests to check subcommand name matching during addition * add some additional tests and remove a redundant chunk of codes * add some more checks of subcommand name overlap in option_groups * allow disabled subcommand to bypass name matching check
-
* fix signed mismatch add test from readme about callbacks update callback documentation, add a subbcommand immediate_callback test add third callback and readme update * a few more updates to the readme on `immediate_callback` * Apply suggestions from code review Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>
-
remove restrictions on tuple size, and add some additional tests and modified documentation fix some issues with the negative number check add some test for indexed validation on tuple allow specific validators for specific elements in a type with multiple values, or to just apply to the last given argument
-
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 default case to resolve -Werror=switch-default. * Add missing enumeration values to resolve -Werror=switch-enum. * Fix coverage
-
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.
-
…ate some corresponding test cases and documentation 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.
-
…ome cleanup in the README.md Apply suggestions from code review Co-Authored-By: phlptp <top1@llnl.gov> allow callbacks for option_groups, and allow some other characters as flags
-
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.
-
…re that executes them over running the same one twice. (#247) make duplicate subcommands work
-
Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
-
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
-
* move delimiter controls to Option vs in the App callbacks
-
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
-
…the validators (#223) 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 maintains the CLI11 previous way of working. Signed-off-by: Rafi Wiener <rafiw@mellanox.com>
-
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.