1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-04-29 12:13:52 +00:00

70 Commits

Author SHA1 Message Date
Philip Top
6b7f6a7480 Value initialization (#416)
* work on the flags book chapter and making sure the values are initialized properly.

* Fix initialization of values used in flags or options

* update some formatting and more brace initialization

* update more formatting and fix a incorrect initializer

* more formatting and some error fixes

* more formatting

* Small formatting fix

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-01-27 09:42:03 -06:00
Henry Schreiner
d5cd986046 Rename size_t -> std::size_t 2019-12-31 10:35:24 -05:00
Henry Fredrick Schreiner
2244ecc3f3 Adding and fixing Weffc++ 2019-11-29 21:49:05 -05:00
Philip Top
343a730a04 Add needs to subcommand (#317)
* 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
2019-10-25 10:21:34 -04:00
Philip Top
cf4933db91 Third stage callback (#313)
* 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>
2019-09-03 22:46:13 -04:00
Philip Top
68c8b1b789 Allow immediate_callback on the main app (#292)
* 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>
2019-07-25 13:03:19 -04:00
Philip Top
49e93cac3c add docs for remove_subcommand and add_subcommand in option_group
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.
2019-03-22 17:56:36 -04:00
Philip Top
3f9fafd916 make immediate_callback inheritable, add tests for that and for valid strings, some 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
2019-03-22 17:56:36 -04:00
Philip Top
fe7e84f29a add some unit tests for the fallthrough_parent command
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.
2019-03-22 17:56:36 -04:00
Philip Top
2cd58ef8cf add a test of duplicate named subcommands in different option_groups and make sure that executes them over running the same one twice. (#247)
make duplicate subcommands work
2019-03-03 16:46:32 +01:00
Philip Top
6aa546fc42 merge upstream App (#246)
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.
2019-03-02 12:14:58 +01:00
Philip Top
0631189b4d Option groups (#227)
* 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
2019-03-01 17:43:08 +01:00
Philip Top
ed5cd89636 remove template for operator[] and adjust some tests
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
2019-02-23 07:40:41 +01:00
Henry Schreiner
c9123811d1
CLI::IsMember (#222)
* 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
2019-02-19 09:56:02 +01:00
Philip Top
598046c397 Add unnamed subcommand (#216)
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.
2019-02-06 10:27:06 +01:00
Henry Schreiner
b4910df3d7
Move to using literals in testing (#213) 2019-02-01 11:32:47 +01:00
Henry Schreiner
f932b51374
Touchupwin (#189)
* Move lambda funtion to real function

* Fix some warnings when compiling in LLVM

* Adding one test back in

* Adding details to changelog
2019-01-11 11:58:00 +01:00
Philip Top
a83109002c Add ignore underscore (#185)
* 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
2019-01-03 09:22:09 +01:00
Henry Schreiner
c3d8d4a2d0
Adding new parse layout (#178)
* 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)
2019-01-02 22:16:42 +01:00
Henry Fredrick Schreiner
bd4dc91184 add extra test 2018-11-24 23:40:18 +02:00
Henry Fredrick Schreiner
85aa0e7813 Dropping last (required) usages of clear 2018-06-27 12:26:03 +02:00
Henry Fredrick Schreiner
8635c4d0eb Dropping reset in favor of clear 2018-06-27 12:26:03 +02:00
Henry Fredrick Schreiner
b2e471ac4d Removing set_ for failure_message, footer, name, and callback 2018-06-18 15:13:59 +02:00
Henry Fredrick Schreiner
101d847c29 Use filter fn to simplify, sort includes 2018-05-06 18:36:33 +02:00
Henry Fredrick Schreiner
952f2913e3 First attempt at formatter (app and option)
in progress: formatters

Getting closer

Working on apps

One test actually runs

All builds, added filter functions

Reverting a few behavours as needed

Repairs

All tests pass

Fixing error with adding help flag

Labels are simpler mappings, normalized setters

Adding help_all

Adding a few more tests

One more line tested

Adding one more check

Adding to readme

Simplify naming

Adding default constructors

Fixing spacing issues with subcommand all printout

Adding a couple of tests
2018-04-30 08:17:31 -04:00
Henry Fredrick Schreiner
8f1215873c Allow -- to end unlimited options 2018-04-09 13:55:53 +02:00
Henry Fredrick Schreiner
0303929552 Adding tests for old behavior 2018-04-09 13:55:53 +02:00
Henry Fredrick Schreiner
67cd2e6345 Adding get_parent() 2017-12-12 15:19:32 -06:00
Henry Fredrick Schreiner
e2e88b78e0 Make unlimited arguments less grabby 2017-11-22 14:13:28 -05:00
Henry Fredrick Schreiner
bcbd8c862b Using -N for up-to N 2017-11-22 14:13:28 -05:00
Henry Fredrick Schreiner
65493d64fb Adding refactor of min/max for subcommand 2017-11-22 14:13:28 -05:00
Henry Fredrick Schreiner
9acaeebd1e Subcommand parse order corrected and preserved 2017-11-21 14:42:33 -05:00
Henry Fredrick Schreiner
512b3604e2 Fix spacing 2017-11-21 14:42:33 -05:00
Marcus Brinkmann
51c32efb7c Fix ExtrasError. 2017-11-21 14:42:33 -05:00
Marcus Brinkmann
852929f0f6 Support runtime errors. 2017-11-20 12:31:14 -05:00
Marcus Brinkmann
642a67034d Support groups for subcommands. 2017-11-20 11:39:51 -05:00
Henry Fredrick Schreiner
1b02682223 Adding some info to docs 2017-11-19 15:19:20 -05:00
Henry Fredrick Schreiner
89c57961f4 Adding more tests 2017-11-19 15:19:20 -05:00
Henry Fredrick Schreiner
59b6de2550 Dropping missing(), now implemented correctly 2017-11-19 15:19:20 -05:00
Henry Fredrick Schreiner
cb7c3ff85a Move to using remaining, drop return from parse 2017-11-19 15:19:20 -05:00
Henry Fredrick Schreiner
fc35014dad Adding remaining, only works on master app for now 2017-11-19 15:19:20 -05:00
Henry Schreiner
54114d0948 Travis improvements and updates (#28)
* Adding check for style

* Adding reformats

* Fix syntax error in travis

* Support clang-format 3.9

* Adding clang-tidy check
2017-09-01 16:51:09 -04:00
Henry Fredrick Schreiner
4dcab42bc7 Convincing myself that the errors are correct 2017-08-23 09:59:55 -07:00
Henry Fredrick Schreiner
de56a9c87a Fixing the foo foo problem 2017-08-23 09:41:45 -07:00
Henry Fredrick Schreiner
b480e2f163 Adding fix for #23; throws ExtraError instead of RequiredError?... 2017-08-22 22:35:37 -07:00
Henry Fredrick Schreiner
635eb65ace Prefix program support 2017-06-02 12:34:25 -04:00
Henry Fredrick Schreiner
27f718125d Reformat with clang-format 2017-05-31 12:03:05 -04:00
Henry Fredrick Schreiner
c8206bf400 Adding one final check for 100% coverage again 2017-04-23 14:40:22 -04:00
Henry Fredrick Schreiner
de432f6213 Adding ->parsed 2017-04-23 14:20:23 -04:00
Henry Fredrick Schreiner
cd98e70c9e Adding one more test 2017-04-23 14:06:58 -04:00