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

889 Commits

Author SHA1 Message Date
Henry Schreiner
8570ffb564
Check for switch enum (#393)
* Check for switch enum

* Add missing cases
2020-01-08 10:17:36 -05:00
Andrew Hardin
417a978aba Add missing case to resolve -Wswitch-enum. (#392) 2020-01-07 23:32:41 -05:00
Henry Schreiner
7a85aa9118
Update CHANGELOG.md 2020-01-06 14:21:25 -05:00
Henry Schreiner
5d07c46efe Adding google-explicit-constructor fixes
Used '-DCLI11_CLANG_TIDY=ON -DCLI11_CLANG_TIDY_OPTIONS=-fix;-checks=google-explicit-constructor"'
2020-01-06 14:16:36 -05:00
Henry Schreiner
4bfcc0e9c7 Fix error with clang tidy 2020-01-06 14:16:36 -05:00
Henry Schreiner
ab94ee7e81 clang-tidy correctly run by CI 2020-01-06 14:16:36 -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
ed7e0dcdeb Fix compiler warnings with -Wsign-conversion 2019-12-31 10:35:24 -05:00
Henry Schreiner
9ef88ee93d
Add C++11 check for Clang, protect C++14 test (#381)
* Add C++11 check for macOS

* Update azure-pipelines.yml

* Constexpr pair is C++14+ only on some impls
2019-12-30 18:33:28 -05:00
Henry Schreiner
8e8746a907
Removing deprecated features (#380) 2019-12-30 17:52:44 -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
ba07592ed8 add //LCOV_EXCL_STOP for coverage exclusion sections (#376)
* add //LCOV_EXCL_STOP for coverage exclusion sections

* try using different // LCOV exclusions
2019-12-28 21:58:24 -05:00
Philip Top
73950eb6a2 add a cmakeLists for the book (#374)
* add a cmakeLists for the book to add a project in visual studio so the book can be edited with the code

* remove trailing whitespace

* remove restrictions on MSVC and use a globbing expression in finding the files.  Also add a check to make sure book directory exists which seems to be important on appveyor

* apparently doxygen was updated and the old download script no longer worked

* try a different url for the older download

* use github source tar
2019-12-28 17:59:47 -05:00
Khem Raj
c72057d877 clang and cross-compile fixes (#373)
* Add CLANG_TIDY check

Signed-off-by: Khem Raj <raj.khem@gmail.com>

* Use GNUInstallDirs instead of hard-coded path

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-12-28 17:55:47 -05:00
Philip Top
b979d3a370 Bug fix for issue 369. (#370)
* Bug fix for issue 369.  The default_val call was not resetting the option state after it had executed the callback and reset the results vector, allowing the possibility of an empty results getting passed to some conversions functions.

* add the source and attribution of the new test

* update formatting
2019-12-17 09:17:31 -05:00
deining
df7f4f6d1c Fixing wrong default value (#368)
Updating link o Click homepage
2019-12-15 19:40:10 -05:00
Henry Schreiner
704e1692a4 Fix book links 2019-12-12 19:36:47 -05:00
Henry Schreiner
3bdbbd7875
Adding CUDA NVCC build (#365)
* Adding CUDA build

* Filter NVCC warning

* Constexpr reword
2019-12-10 11:42:32 -05:00
Christoph Bachhuber
d9379cccf5 Clang-tidy fixes (#360)
* Clang-tidy fixes

* Format

* Satisfy pre-commit hooks

* Fix getters to constref return

* Final name getter as constref
2019-12-04 21:17:06 -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
Philip Top
5a25cee383 allow transform to work with arrays. (#349)
* allow transform to work with arrays.  The element_type trait required pointer_traits<T> to be defined for the type which it was for vector but not for array due to decay rules in C++, even though it was not used.  So Element type had to be split into two templates instead of a conditional.

* fix formatting

* clean up array initialization

* add constexpr array test

* add extra braces to make clang happy
2019-11-30 12:00:25 -05:00
Henry Fredrick Schreiner
67dc672e5c Using action for pre-commit 2019-11-29 21:49:05 -05:00
Henry Fredrick Schreiner
2244ecc3f3 Adding and fixing Weffc++ 2019-11-29 21:49:05 -05:00
Philip Top
5f696596d7 fix some warnings generated from klocwork static analyzer (#350)
* fix some warnings generated from klocwork static analyzer

* Some more visual studio static analyzer and clang-tidy fixes

* some formatting updates
2019-11-29 08:54:32 -05:00
Philip Top
d621658e6d Issue #339 (#348)
* add an example where the name of the enum is printed through a stream output function, which subverted the checkTransformer conversion and prevented conversion of the enumeration.

* add missing 'typename'

* try a simpler version of the value_string using const reference for all overloads

* use auto return type to match to_string return type in value_string

* remove extra spaces
2019-11-29 08:52:09 -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
a8d597dae4 Filedir checks (#341)
* 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
2019-11-25 14:50:25 -05:00
Philip Top
418b7175f5 Type size refactor (#325)
* 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
2019-11-10 05:36:16 +10:30
Jesus Briales
41d3c967d7 Add test for non-const version of App::get_options (#337)
After https://github.com/CLIUtils/CLI11/pull/329 the get_options version being used in the test was the non-const.
Forced testing on non-const by using a const-ref to the app.
Also added testing to ensure the list of options of both const and non-const are the same as expected.
2019-10-27 13:53:54 -04:00
Kannan
2bea3983c0 Return empty string in Option::get_name() for hidden options (#333)
* Return empty string in Option::get_name() for hidden options

Fixes https://github.com/CLIUtils/CLI11/issues/332

* Remove to_lower() call

* Formatting

* Fix THelp.Hidden
2019-10-27 13:53:27 -04:00
Jesus Briales
a687eb9587 Add non-const version of App::get_options (#329) 2019-10-26 07:07:05 -04: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
c1799d2c59
Run formatting on pull requests 2019-10-25 08:24:23 -04:00
Henry Fredrick Schreiner
4376990d3a Adding github actions, precommit, and fix for travis
Adding pre-commit files

GitHub actions, and Python 3 on Travis

Fix missing pip

Adding pre-commit instructions

Using bionic

Fix

Drop extra parts, add pip

Setuptools
2019-10-24 19:07:01 -04:00
Henry Fredrick Schreiner
fda6126d7c Adding pre-commit 2019-10-24 19:07:01 -04:00
fpeng1985
8ecce8fd2c Option check method error (#320) 2019-09-20 15:17:00 -04:00
fpeng1985
09c169c2d9 refine the implementation of has_find type_traits (#319)
* refine the implementation of has_find type_traits

* Format fix
2019-09-18 14:24:24 -04:00
Henry Schreiner
b029b325b5 Don't keep html history 2019-09-06 17:33:13 -04:00
Henry Schreiner
88bbbf0358 Move links to the github version of the gitbook 2019-09-06 17:32:22 -04:00
Henry Schreiner
c408505638 Fixes for doxygen generation 2019-09-06 17:31:03 -04:00
Henry Schreiner
4660788c6f Fix token 2019-09-06 15:41:45 -04:00
Henry Schreiner
efb99b97b3
Tutorial book (#318)
* Clean up book merge

* Book building in place
2019-09-06 15:20:16 -04:00
Henry Schreiner
4917b8b763
Moving tutorial docs (#304) 2019-09-06 14:25:27 -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