1
0
mirror of https://github.com/CLIUtils/CLI11.git synced 2025-05-03 05:53:52 +00:00

223 Commits

Author SHA1 Message Date
Henry Schreiner
73aa158d38
Wandbox now shows better 1.8 style code 2019-05-21 12:21:47 +02:00
Henry Schreiner
d23c1e7408
Update wandbox for 1.8 2019-05-21 12:18:50 +02:00
Henry Schreiner
13becaddb6
Version 1.8 (#280)
* Version bump

* Update README

* Apply suggestions from code review

Co-Authored-By: Philip Top <top1@llnl.gov>

* Adding mark for deprecated items
2019-05-20 14:23:11 +02:00
Henry Fredrick Schreiner
acee69a8cc Update changelog and contributers
[skip ci]
2019-05-18 06:40:10 +02:00
Viacheslav Kroilov
59a36565fe Support for size values (640 KB) and numbers with unit in general (#253)
* [WIP] Initial implementation

* Add mapping validation

* More documentation

* Add support for floats in checked_multiply and add tests

* Place SuffixedNumber declaration correctly

* Add tests

* Refactor SuffixedNumber

* Add as size value

* Update README

* SFINAE for checked_multiply()

* Mark ctors as explicit

* Small fixes

* Clang format

* Clang format

* Adding GCC 4.7 support

* Rename SuffixedNumber to AsNumberWithUnit
2019-05-18 06:22:17 +02:00
Henry Schreiner
433fd91212
Build testing (#277)
* build-testing better supported

* Add formatting to Azure

* Adding more jobs to Azure

* Control

* Allow libc++ to be used on linux

* Fix modernize message

* Fix variable

* fixup! Fix modernize message

* Drop auto exp. optional

* Update readme, better user id in docker

* Fix BUILD_TESTING

* Drop format from travis, leave tidy for now

* Check tidy and format

* Tidy fully on Azure now
2019-05-14 15:33:15 +02:00
Henry Schreiner
0be526e247
Adding argparse mention
See nothings/single_file_libs#150
2019-05-04 13:56:13 +02:00
Philip Top
f6351b62a7 Readme examples description (#271)
* 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
2019-05-03 22:22:18 +02:00
Henry Schreiner
d81843002a
To string and default option revamp (#242)
* 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)
2019-04-28 22:44:30 +02:00
Philip Top
b1036a1ad0 add a function to get the remaining arguments in a valid order (#265)
* 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
2019-04-28 16:20:52 +02:00
Philip Top
76d2cde656 Positional argument checks (#262)
* 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.
2019-04-11 12:04:30 +02:00
Philip Top
a1c18e058a Do a little cleanup on the readme. (#259) 2019-04-03 13:17:57 +02: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
059f6ef254 change add_option_function to take a std::function with void return type and update 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.
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
e9934e058d add transformer and checkedTransformer (#239)
* add transform and checkedTransform tests

add Transformer and CheckedTransformer validators

* Eliminate the Validator description string, some code cleanup

add tests

Make Validators a full Object and remove friend,  move to descriptions instead of overriding type name.

update validators to actually merge the type strings and use all validators in the type outputs

rework join so it works without the start variable,  allow some forwarding references in the validator types, some tests for non-copyable maps, and transforms

merge the search function and enable use of member search function,  make the pair adapters forwarding instead of copying

* add a few more tests and documentation

fix some gcc 4.7 issues and add a few more test cases and more parts of the README

Work on ReadMe and add Bound validator to clamp values

* updates to README.md

* Add some more in TOC of README and fix style in Option.hpp
2019-03-02 12:24:26 +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
Henry Schreiner
4a4608102d
Minor update to broken link
[skip ci]
2019-02-28 13:26:29 +01:00
Henry Schreiner
49ab339a51
Set up CI with Azure Pipelines (#244)
* Set up CI with Azure Pipelines

* Adding more agents to Azure
2019-02-28 13:12:51 +01:00
Henry Fredrick Schreiner
33be37ae4c Add new symbols to 1.7 features
[skip ci]
2019-02-28 10:54:13 +01:00
Henry Fredrick Schreiner
c4fe25b60c Adding some details to changelog 2019-02-28 10:37:17 +01:00
Philip Top
9f81385bcd Option delimiter (#240)
* move delimiter controls to Option vs in the App callbacks
2019-02-27 18:04:21 +01:00
Henry Schreiner
7254ea7916
Minor touchup 2019-02-24 22:23:07 +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
Philip Top
6c645b55a1 Add better enum support in the library (#233)
* add some notes about enums in the readme

add some helpers tests for enumerations

Add better enum support in the library

* fix Helpers Test for Enums
2019-02-20 22:57:37 +01:00
Philip Top
571fb07cfb Add a ! operator to Validators for checking a false condition (#230) 2019-02-20 19:15:34 +01:00
Henry Schreiner
17d05b000c
Adding map support to IsMember (#228)
* 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
2019-02-20 17:17:51 +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
3d7de7d25c Add documentation for positionals_at_end documentation clarification on some of 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.
2019-02-12 09:43:41 +01:00
Henry Fredrick Schreiner
f19b052974 Adding changelog
[skip ci]
2019-02-10 00:04:04 +01:00
Philip Top
c8bd97156b click-style boolean flags (#219)
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.
2019-02-09 23:51:38 +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
Philip Top
b26894458b add some more tests of custom parsers and adjustments to the README
Add a test that creates and uses a custom parser to store a value

add a check around regex to see if it is working

fix warning in AppTest from gcc
2019-01-31 23:53:04 +01:00
Henry Fredrick Schreiner
59de6befa4 Try 1.7.1 online 2019-01-30 17:49:04 +01:00
Philip Top
1a6ed01d87 add some additional tests for the failure case, and update the README with documentation on the new function.
use bracket initialization

add callback functions for options with the derived values
2019-01-30 16:44:04 +01:00
Philip Top
49ac989a95 Fixes to the readme 2019-01-30 14:13:01 +01:00
Henry Fredrick Schreiner
2f551e2ef6 Fix for GCC 8 warning 2019-01-25 09:21:47 +01:00
Henry Fredrick Schreiner
97f5730979 Preparing for 1.7 2019-01-24 11:05:06 +01:00
Henry Schreiner
02c49388d7
Making mutable sets explicit (#200) 2019-01-24 10:10:37 +01:00
Fred Helmesjö
8d7aefe21f Added option description setter (#199)
* Added posibility to modify option description: Option::description(const std::string&).
Related: https://github.com/CLIUtils/CLI11/issues/193

* Return Option* from Option::description(...).
Format-fix to make clang-format happy.

* Fixing format

* Added posibility to modify app description: App::description(const std::string&).

* Fixing Style

* Update readme and changelog
2019-01-22 18:19:47 +01:00
Henry Fredrick Schreiner
72c384cfbb Adding notes to changelog 2019-01-19 12:35:16 +01:00
Philip Top
ce6dc0723e add options to handle windows style command line options (#187)
* 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
2019-01-10 23:07:17 +01:00
Henry Fredrick Schreiner
2c024401cc Minor touch up after #186 2019-01-06 10:46:12 +01:00
Henry Fredrick Schreiner
f49447c590 Adding some updates to changelog and readme 2019-01-03 09:36:24 +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 Fredrick Schreiner
afa7a45665 Preparing for 1.6.2 2018-11-13 21:45:38 +01:00
Henry Schreiner
7e724c5cf3
Structure changed to match Standard Readme Style (#155)
* Structure changed to match Standard Readme Style

* Nicer links

* Using remarkjs/remark-lint

Run with: remark README.md --use remark-preset-lint-recommended -o

* Standard headings

* Adding logo
2018-08-01 12:23:55 +02:00
Henry Fredrick Schreiner
92b8f6e3bf Bump version to 1.6.1 2018-07-30 09:53:25 +02:00