373 Commits

Author SHA1 Message Date
Philip Top
31be35b241 feat: add a validator that checks for specific types conversion (#526) 2020-12-28 10:58:57 -05:00
allcontributors[bot]
3bf24c5164 docs: add dbarowy as a contributor (#534)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-11-03 23:53:09 -05:00
allcontributors[bot]
a9e8c56499 docs: add dfleury2 as a contributor (#532)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-10-28 12:34:47 -04:00
Philip Top
438eabe5f8 feat: add char type (#449)
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.
2020-09-30 17:58:39 -04:00
allcontributors[bot]
a1dd4d708d docs: add ZeeD26 as a contributor (#519)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-09-30 09:23:35 -04:00
Henry Schreiner
c1666528ef 📝 Add @jakoblover as a contributor 2020-09-09 21:44:59 -04:00
Henry Schreiner
08b03fdeb8 📝 Add @ferdymercury as a contributor 2020-09-09 21:44:41 -04:00
Henry Schreiner
635ffe716b 📝 Add @mbhall88 as a contributor 2020-09-09 21:44:28 -04:00
allcontributors[bot]
246d9092c9 docs: add rcurtin as a contributor (#511)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-09-09 14:12:15 -04:00
Philip Top
6aa58d5828 Add an ability to deal handle multiple config files (#494) 2020-09-03 19:42:35 -04:00
Jakob Lover
11141525ac Customize text between option name and description (#497)
* 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>
2020-09-03 19:40:42 -04:00
ferdymercury
82c71bd7ee Clarify inclusion of CLI11 via CMake (#499)
Installing is not optional if you want find_package to work
Specify other options when using shared folders (system-wide) rather than local ones.
Fixes https://github.com/CLIUtils/CLI11/issues/498
2020-08-13 17:58:41 -04:00
Philip Top
34bd80971b allow the use of allow_extra_args(false) to specify only a single argument at a time with a container output. (#484) 2020-07-24 00:02:33 -04:00
allcontributors[bot]
a2bf5cdea2 docs: add samhocevar as a contributor (#479)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-06-14 11:37:34 -04:00
Henry Schreiner
5925f94b69 Update Azure 2020-06-01 23:01:26 -04:00
Henry Schreiner
3bea1de2d5 📝 Add @certik as a contributor 2020-06-01 21:26:41 -04:00
Philip Top
b9a2f320b9 Add windows latest and gcc 8 builds to azure (#446)
* add windows latest and gcc 8 builds to azure

* try adding pr trigger

* try adding something specific for gcc 8

* use interface instead of public

* try C++17 on clang 8

* update the readme with some additional notes about gcc 8

* fix some incorrect doxygen comment formatting

* try using the glibcxx_release value

* debug some code paths to make sure macros are working

* Update readme and fix formatting.

* update formatting for Validators
2020-04-02 01:55:20 -04:00
Philip Top
27da2f952e Container options (#423)
* 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>
2020-03-22 14:06:34 -04:00
Philip Top
f346f29802 Config short (#443)
* 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
2020-03-22 13:58:46 -04:00
Philip Top
967bfe0e02 Set the default configuration file output as TOML (#435)
* Set the default configuration file output as TOML

* update formatting
2020-03-06 00:11:59 -05:00
Henry Schreiner
ba68040e92 📝 Add @geir-t as a contributor 2020-02-17 14:03:09 +00:00
Henry Schreiner
42fd0434bb 📝 Add @jsoref as a contributor 2020-02-17 14:03:09 +00:00
Christoph Bachhuber
ffe5b29e1f Add cstdint and std::prefix to its symbols (#409)
* Add cstdint and std::prefix to its symbols

* Use int64_t in std::
2020-01-21 18:24:40 -06:00
Henry Schreiner
828e09e55c Add updated wandbox link 2020-01-20 21:44:44 -06:00
Henry Schreiner
dd0d8e4fe7 Bump version to 1.9.0 (#408)
* Bump version to 1.9.0

* Include CMake mention
2020-01-19 17:00:53 -06:00
allcontributors[bot]
93c90d1d93 docs: add jgerityneurala as a contributor (#406)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]
2020-01-15 20:59:22 -05:00
Philip Top
e0c882ae3b Address issue #402 (#404)
* fix some typos in the book and clarify fallthrough on subcommands in the readme

* remove trailing whitespace
2020-01-15 20:38:04 -05:00
allcontributors[bot]
602df7581b docs: add KOLANICH as a contributor (#401)
* docs: update README.md

* docs: update .all-contributorsrc
2020-01-13 10:40:59 -05:00
allcontributors[bot]
a609605db5 docs: add slurps-mad-rips as a contributor (#395)
* docs: update README.md

* docs: update .all-contributorsrc
2020-01-09 09:54:32 -05:00
Henry Schreiner
59052a6b27 Update changelog (#383)
* Update changelog

[skip ci]

* Use code for maintainers instead

* Generate file with GitHub Actions

* Apply suggestions from code review

Co-Authored-By: Philip Top <phlptp@gmail.com>

* Adding default val and combine one line

Co-authored-by: Philip Top <top1@llnl.gov>
2020-01-02 17:38:44 -05:00
Philip Top
5b17abf22f default_val option call (#387)
* Fix invalid callback calls for default_val Option function.  the update adds a flag variable to control it, makes default_val exception safe and a template to convert from actual value types.

* update readme and fix some compilation issues on older compilers

* revert README.md with mistake erasures

* Update README.md

Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
2020-01-02 17:38:26 -05:00
Philip Top
c67ab9dd43 Config file handling refactor. (#362)
Refactor some of the configuration file handling code.  Make it easier to get the actual file that was processed, and allow extras in the config file to be ignored (default now), captured or errored.

fix std::error reference and formatting

add test for required but no default and fix a shadow warning on 'required' from gcc 4.8

Test correctness of config write-read loop

fix config generation for flag definitions

make the config output conform with toml

continue work on the config file interpretation and construction

get all the ini tests working again with the cleaned up features.

update formatting

rename IniTest to ConfigFileTest to better reflect actual tests and add a few more test of the configTOML
disambiguate enable/disable by default to an enumeration, and to make room for a configurable option to allow subcommands to be triggered by a config file.
add a ConfigBase class to generally reflect a broader class of configuration files formats of similar nature to INI files

add configurable to app and allow it to trigger subcommands

add test of ini formatting

add section support to the config files so sections can be opened and closed and the callbacks triggered as appropriate.

add handling of option groups to the config file output

add subcommand and option group configuration to config file output

subsubcom test on config files

fix a few sign comparison warnings and formatting

start working on the book edits for configuration and a few more tests

more test to check for subcommand close in config files

more tests for coverage

generalize section opening and closing

add more tests and some fixes for different configurations

yet more tests of different situations related to configuration files

test more paths for configuration file sections

remove some unused code and fix some codacy warnings

update readme with updates from configuration files

more book edits and README formatting

remove extra space

Apply suggestions from code review

Co-Authored-By: Henry Schreiner <HenrySchreinerIII@gmail.com>

fix some comments and documentation

fix spacing

Rename size_t -> std::size_t

Fix compiler warnings with -Wsign-conversion

Fix new warnings with -Wsign-conversion in PR
2019-12-31 11:28:25 -05:00
Henry Schreiner
d5cd986046 Rename size_t -> std::size_t 2019-12-31 10:35:24 -05:00
Henry Schreiner
c901ac4bed All-Contributors (#379)
* 📝 Add @henryiii as a contributor

* 📝 Add @phlptp as a contributor

* 📝 Add @cbachhuber as a contributor

* 📝 Add @lambdafu as a contributor

* 📝 Update @lambdafu as a contributor

* 📝 Update @lambdafu as a contributor

* 📝 Add @SkyToGround as a contributor

* 📝 Add @dvj as a contributor

* 📝 Add @lczech as a contributor

* 📝 Add @rafiw as a contributor

* 📝 Add @mensinda as a contributor

* 📝 Add @jbriales as a contributor

* 📝 Update @jbriales as a contributor

* 📝 Add @seanfisk as a contributor

* 📝 Add @fpeng1985 as a contributor

* 📝 Add @almikhayl as a contributor

* 📝 Add @andrew-hardin as a contributor

* 📝 Add @SX91 as a contributor

* 📝 Add @helmesjo as a contributor

* 📝 Add @skannan89 as a contributor

* 📝 Add @kraj as a contributor

* 📝 Add @mogigoma as a contributor

* 📝 Add @msoeken as a contributor

* 📝 Add @nathanhourt as a contributor

* 📝 Add @pleroux0 as a contributor

* 📝 Add @chfast as a contributor

* Fixes

* 📝 Add @peterazmanov as a contributor

* 📝 Add @delpinux as a contributor

* 📝 Add @metopa as a contributor

* Contributing guide

* 📝 Add @ChristosT as a contributor

* 📝 Add @deining as a contributor

* 📝 Add @elszon as a contributor

* 📝 Add @ncihnegn as a contributor

* 📝 Add @nurelin as a contributor

* 📝 Add @ryan4729 as a contributor

* Remove extra parts

* More cleanup

* Instructions added
2019-12-30 15:34:50 -05:00
Christoph Bachhuber
11519d8c75 Minor fixes in enum examples (#377)
* Initialize variable, use std::map, update comment

* Analog changes as in enum.cpp, clarify ostream operator

* Add enum_ostream, fix typo
2019-12-30 14:05:09 -05:00
Philip Top
fc0f82a81f Deprecated retired options (#358)
* add ability to specify deprecated or retired options.

* add retired example and tests

* update some formatting and a few more test executions

* fix formatting on retired.cpp

* add another test to fill coverage gap for existing options that are being retired.

* add example comments

* Update readme with the descriptions of the new helper functions

* fix space on readme

* Apply suggestions from code review

Co-Authored-By: Christoph Bachhuber <cbachhuber89@gmail.com>

* add some flags to the code coverage report and update some names and add more descriptions to deprecated options

* update formatting on App
2019-12-04 21:16:30 -05:00
Philip Top
ba7b29f9f8 allow hidden option groups for help. (#356)
* allow hidden option groups for help.

* refactor condition so it continues appropriately but only prints on the desired conditions.
2019-11-30 13:30:03 -05:00
Christoph Bachhuber
7a4d376d35 Fix optional display, grammar, and link (#357) 2019-11-30 12:15:59 -05:00
Henry Fredrick Schreiner
67dc672e5c Using action for pre-commit 2019-11-29 21:49:05 -05:00
christos
51a395ec9f Handle float type in positive number (CLIUtils#328) (#342)
* fix https://github.com/CLIUtils/CLI11/issues/328

 * use same assumptions about the size (ie double is enough) as in Number validator

* fix spelling in error message

* fix class description comment

* PositiveNumber accepts now >0 while NonNegative >=0

* update README for PositiveNumber and NonNegativeNumber

* spelling
2019-11-25 14:52:37 -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
Henry Schreiner
88bbbf0358 Move links to the github version of the gitbook 2019-09-06 17:32:22 -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
67c441b527 add separate condition for index into vectors
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
2019-09-02 20:58:26 -04:00
Philip Top
06ab2d0fbd Footer callback (#309)
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
2019-08-18 19:51:14 -04:00
Philip Top
127f5388ab Support tuple (#307)
* 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
2019-08-16 09:58:15 -04:00
Philip Top
17ddce2fb2 Add classification type traits (#286)
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
2019-07-30 09:46:10 -04:00
Philip Top
eab92ed988 modified option template (#285)
* 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
2019-07-29 00:19:35 -04:00
Daniel Mensinger
821940c368 Update README.md (#302)
Fixed typo
2019-07-25 16:14:56 -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