Pavan Kumar Sunkara
699a3f76d6
Implement BitOr for settings
2021-09-23 14:57:10 +05:30
Roland Fredenhagen
5580e8c465
ArgValue builder ( #2758 )
...
* feat(arg_value): ArgValue can be used for possible_values
Through the ArgValue it is possible:
* `hide` possible_values from showing in completion, help and validation
* add `about` to possible_values in completion
* Resolved a few change-requests by epage
* make clippy happy
* add ArgValue::get_visible_value
* remove verbose destructering
* rename ArgValue::get_hidden to ArgValue::is_hidden
* add test for help output of hidden ArgValues
* Documentation for ArgValue
There is an issue that required to implement From<&ArgValue> for
ArgValue. We should probably find a solution without that.
* fix requested changes by epage
* fix formatting
* add deref in possible_values call to remove From<&&str>
* make clippy happy
* use copied() instad of map(|v|*v)
* Finishing up for merge, hopefully
* changes requested by pksunkara
2021-09-19 10:29:09 +00:00
patrick-gu
d79c59ab17
Add test for default_missing_values
with value_delimiter
2021-09-18 15:47:03 -07:00
patrick-gu
90dde89ec4
Apply value_delimiter
to default values
2021-09-18 15:15:25 -07:00
Pavan Kumar Sunkara
76859b16bb
Merge pull request #2773 from tangmi/fix-large-display-order
...
Add test for very large display_order values and a possible fix
2021-09-17 19:39:37 +01:00
Mustafa Guler
50b9e65d39
Fix bug with duplicate error messages
...
This addresses a bug that causes duplicate flags reported in user-facing
error messages when two flags require one-another but also are required
under other conditions. The fix involves removing duplicates in unrolled
requirements, which addresses the user-facing aspect of this bug.
2021-09-17 10:47:06 -04:00
Michael Tang
cc592ed800
Add test for very large display_order values and a possible fix.
...
Fixes #2772
2021-09-16 19:11:30 -07:00
patrick-gu
044f9c5669
Don't suggest help
or --help
when not applicable ( #2749 )
...
* Don't suggest `help` or `--help` when not applicable
* Apply suggestions from code review
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
* Update test usage to match intended
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2021-09-04 20:10:24 +00:00
Pavan Kumar Sunkara
f085fa64f4
Merge pull request #2722 from epage/group
...
fix(yaml): Don't panic on multiple groups
2021-08-19 07:40:41 +01:00
Ed Page
bd25b5f615
fix(yaml): Don't panic on multiple groups
...
Because we gradually build the `ArgGroup` as we parse the YAML, we don't
use `ArgGroup::new`. Clap3 introduced an internal `id` in addition to
the public `name` and it appears that this custom initialization code
was not updated.
This shows the problem with publically exposing `impl Default`.
Choices:
- Remove `impl Default`
- Always valid
- Requires spreading invariants
- Callers can't implement code the same way we do
- Add `ArgGroup::name`
- Can be constructed in an invalid state
- Centralizes invariants
- A caller could implement code like the yaml logic
I decided to go with `ArgGroup::name`.
Fixes #2719
2021-08-18 15:16:44 -05:00
Ed Page
aeaf01e3e7
fix: Provide path to avoid UTF-8 panics
...
Before, validating UTF-8 was all-or-nothing and would cause a `panic` if
someone used the right API with non-UTF-8 input.
Now, all arguments are validated for UTF-8, unless opted-out. This
ensures a non-panicing path forward at the cost of people using the
builder API that previously did `value_of_os` need to now set this flag.
Fixes #751
2021-08-18 14:15:18 -05:00
Donough Liu
0394ae6102
Fix handling of number_of_values
when displaying arg ( #2701 )
...
* Remove dead logic
* Outline common logic
* Fix issue 1571
2021-08-17 09:17:18 +00:00
Pavan Kumar Sunkara
9dd75987df
Remove TakesValue restriction for HideEnv*
2021-08-15 19:40:24 +01:00
Pavan Kumar Sunkara
203613d5e3
Merge pull request #2696 from ldm0/override
...
Make `overrides_with` working when `MultipleValues` is enabled.
2021-08-14 10:41:40 +01:00
liudingming
a85857dfb0
Make overrides_with working when MultipleValues
is enabled.
2021-08-14 16:34:26 +08:00
Pavan Kumar Sunkara
441ff68c2d
Merge pull request #2694 from clap-rs/env-feature
...
Add env feature gate
2021-08-14 03:11:21 +01:00
Pavan Kumar Sunkara
c7985fb73e
Add env feature gate
2021-08-14 01:55:05 +01:00
Pavan Kumar Sunkara
61eb921f63
Fix value_names & num_vals interaction
2021-08-14 01:08:44 +01:00
liudingming
a60836d96a
Make value_delimiter
accept char rather than String
2021-08-14 02:54:56 +08:00
Pavan Kumar Sunkara
476dd190b7
Merge pull request #2682 from clap-rs/checker
...
Set TakesValue to true for positional args when building
2021-08-12 22:46:15 +01:00
Pavan Kumar Sunkara
b4a662b6c9
Set TakesValue to true for positional args when building
2021-08-12 21:27:42 +01:00
Steven Engler
1bd63feffe
Hide help heading when all args are hidden
2021-08-12 00:51:58 +01:00
rami3l
5f781c72a5
feat(parser): accept non-false
literals with env vars as true
2021-08-10 12:21:12 +02:00
rami3l
f2f9b665ed
feat(parser): accept boolean literal with env vars, take 1
2021-08-10 12:21:02 +02:00
liudingming
e851a82080
Move pos_counter before parsing flags.
...
Then checking if AllowHyphenValues is set when parsing flag is possible.
2021-08-08 03:38:41 +08:00
rami3l
ac12c30352
fix(style): allow bool_assert_comparison
in default_missing_value_flag_value
2021-08-02 23:10:51 +02:00
rami3l
d7c984896d
fix(style): remove unnecessary usages of 'static
and ref
2021-08-02 23:05:21 +02:00
Pavan Kumar Sunkara
4bec66dd03
Merge pull request #2619 from rami3l/flag-literal
...
fix(parser): Ban long flags with literals
2021-08-01 12:31:29 +01:00
rami3l
d848c88773
fix(test): fix typo in flag_using_long_with_literals
2021-08-01 12:19:00 +02:00
rami3l
2b3fc4d0b6
test: simplify flag_using_long_with_literals
2021-08-01 11:57:44 +02:00
liudingming
ab119b342a
Fix value_of returns None when the first value group is empty
2021-08-01 03:56:23 +08:00
patrick-gu
88dec14775
Fix order of arguments in help message with AllowMissingPositional ( #2648 )
...
* Fix small formatting error
I accidentally introduced this in #2642
* Fix order of arguments in help message with AllowMissingPositional
2021-07-31 07:39:23 +01:00
rami3l
87479dfb8c
fix: ban all uses of literals with flags
2021-07-30 22:33:56 +02:00
rami3l
2d2db652ef
fix: fix #1649 , take 1
2021-07-30 22:33:56 +02:00
liudingming
a419f25fdb
Fix issue, add tests
2021-07-30 15:39:34 +08:00
patrick-gu
a4dc72ed19
Replace "Prints" with "Print" for default help and version commands
2021-07-29 20:23:25 -07:00
Pavan Kumar Sunkara
5fbd764b06
Merge pull request #2622 from patrick-gu/master
...
Refactor creation of `App` and `Arg` from YAML
2021-07-27 10:31:55 +01:00
patrick-gu
9b64ac2b45
Refactor creation of App
and Arg
from YAML
...
Improved the `impl`s of `From` for `&'help Yaml` to use expects with useful messages instead of unwraps. Also made changes to avoid potentially fetching redundant data from YAML hashes and unwrapping the same data multiple times. Finally, there are tests to ensure the panics are correct.
2021-07-25 15:24:43 -07:00
Pavan Kumar Sunkara
27311139c2
Merge pull request #2610 from ldm0/value_name
...
Print `value_name` `number_of_values` times with single value_name
2021-07-25 14:23:21 +01:00
liudingming
62fa1e7454
Print value_name
number_of_values
times with single value_name
2021-07-21 03:38:58 +08:00
liudingming
6094520541
Don't show default_val in smart usage
2021-07-21 02:50:41 +08:00
anatawa12
89d1519f69
Show summary in subcommands list ( #2558 )
...
* Show short about in SUBCOMMANDS list
* add tests
* move test
* cargo fmt
2021-06-20 16:28:50 +01:00
Ethan Budd
6a48698fcd
Add a new arg option for the max_occurrences ( #2543 )
...
* add a new arg option for the max_occurrences
* check ErrorKind in tests
* Updated grammer in doc comments
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
* assert is_err() before unwraping
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2021-06-17 19:54:24 +01:00
Pavan Kumar Sunkara
947523f7f5
Merge pull request #2480 from kolloch/feature/partial-parsing
...
setting: IgnoreErrors - Allow parsing despite missing option values
2021-06-16 09:09:52 +01:00
Pavan Kumar Sunkara
e5e20b389e
Forbid multiple_occurrences for positional args
2021-06-16 08:27:04 +01:00
Pavan Kumar Sunkara
3f94d17c71
Removed Arg::multiple
2021-06-16 07:17:11 +01:00
Peter Kolloch
171dcbe424
setting: IgnoreErrors - Reaction to review comments
...
https://github.com/clap-rs/clap/pull/2480
2021-06-14 10:26:23 +02:00
Peter Kolloch
c50d338962
setting: IgnoreErrors - Allow parsing despite missing option values
...
Implemented as AppSetting::Ignore errors as suggested by
@CreepySkeleton in
https://github.com/clap-rs/clap/issues/1880#issuecomment-637779787 .
This is not a complete implementation but it works already in
surprisingly many situations.
https://github.com/clap-rs/clap/issues/1880
2021-06-14 10:26:18 +02:00
Terts Diepraam
834f600a6f
infer long arguments
2021-06-05 13:18:06 +02:00
Pavan Kumar Sunkara
82e42cd07e
Ignore extra fields in YAML only when specified
2021-06-01 21:59:44 +01:00
rami3l
fbd338ce26
fix: flag_subcommands
unexpected behavior after long arg ( #2501 )
...
* fix(wip): add necessary debugging prints for analysis
* fix(wip): implement the fix, take 1
* docs: add docstring for `Parser::flag_subcmd_at` and `Parser::flag_subcmd_skip`
* test: make `flag_subcommand_short_after_long_arg` test more realistic
2021-05-27 05:14:50 +05:30
Pavan Kumar Sunkara
6a395d3208
ArgMacthes::is_present should not deal with subcommands at all, fixes #2494
2021-05-26 00:40:38 +01:00
Ajeet D'Souza
5809ae6060
feat: Add AppSettings::DisableEnv ( #2493 )
...
* Add DisableEnv flag
* Apply formatting
* Add tests
2021-05-21 00:47:47 +05:30
Ajeet D'Souza
460459c771
fix(usage): Move positional args to end of usage string ( #2492 )
...
* Move positional args to end of USAGE
* Remove -- from usage string
2021-05-21 00:29:21 +05:30
Pavan Kumar Sunkara
abe2373cca
Merge pull request #2026 from zkat/master
...
feat(derive): Add support from inheriting global options in subcommands
2021-05-20 13:52:24 +01:00
Felipe Sere
03d4989ef9
Replicate the derive test for from_global
2021-05-18 22:21:18 +01:00
Eldritch Cheese
fa991754d3
imp(validator): Case-insensitive required_if_eq when arg is case-insensitive
2021-05-15 09:45:24 -07:00
Donough Liu
2a921d4cda
Fix clippy warnings.
2021-05-07 19:05:18 +00:00
liudingming
a995e5a204
Add yaml multiple_* tests
2021-05-07 14:34:03 +08:00
sharnoff
47aaca1e5d
change 'tests/macros.rs' to not import clap_app!
...
This should help to guard against future errors where `clap_app!` refers
to itself without the required "$crate::" prefix
2021-04-27 11:21:54 -07:00
Reagan McFarland
b184dc001b
setting: SubcommandHelpShowsLongForm implemented
...
Refactoring and better test cases
Refactored SubcommandHelpShowsLongForm to
UseLongFormatForHelpSubcommand.
Tests and docuemntation examples use about and long_about instead of
(before/after)_help.
Removed commented out tests
Linting: Fix trailing new line
Updated change log, refactored tests and doc str
Reordered items in the Changelog
New test added and old tests removed that were redundant
Doc string for AppSettings::UseLongFormatForHelpSubcommand fixed
2021-04-11 14:31:40 -04:00
Pavan Kumar Sunkara
52814b893c
Merge pull request #2415 from cbzehner/ignore-extra-fields-on-arg
...
Ignore extra fields in Arg yaml definitions
2021-03-14 14:00:30 +05:30
Chris Zehner
407e629523
Ignore extra fields in Arg yaml definitions
2021-03-13 19:46:38 -06:00
Pavan Kumar Sunkara
f029047c03
Rename NoEmptyValues to ForbidEmptyValues
2021-03-13 12:05:34 +05:30
Pavan Kumar Sunkara
49954c28ad
Remove unstable feature flag
2021-03-13 11:40:56 +05:30
ldm0
a1d4bd8488
Allow empty value by default, introduce NoEquals Error
2021-03-10 17:39:50 +00:00
Pavan Kumar Sunkara
30d784ffd1
Merge pull request #2400 from ldm0/unset-default
...
Support unsetting/removing the default if an option/flag is set
2021-03-10 18:13:52 +05:30
ldm0
448ff95fb0
ldm0's patch
2021-03-09 19:06:44 +00:00
Steven Engler
6626365359
feat(build/arg/mod.rs): default_vals_if supports an Option as the default
2021-03-09 18:15:20 +00:00
ldm0
2b0f0d3e1a
Implement NoEquals error
2021-03-09 17:56:57 +00:00
ldm0
886b873709
Demangle interlinking flags
2021-03-09 13:45:11 +00:00
Omar El Halabi
701a4610b3
feat: Implement Arg::required_if_eq_all
2021-02-28 14:52:34 +02:00
Logan SQUIREL
52e74fa305
Fix App::version/long_version test
2021-02-27 16:31:32 +01:00
Logan SQUIREL
3c049b4e22
Fix compatibility with help2man output (see #1432 )
...
Change default help template:
- The new template introduce new lines before and after
author/about sections.
- Add help template placeholders:
- about-section
- author-section
- Documentation of new placeholders in clap::App::help_template
- Update all unit tests by incorporating new lines
2021-02-27 16:20:52 +01:00
ldm0
3873b647d1
Add tests for 2229
2021-02-16 03:58:58 +00:00
ldm0
28b58af63b
Change to num_vals, min_vals, max_vals interacts with Multi*
2021-02-16 03:45:20 +00:00
Pavan Kumar Sunkara
6634444c3c
Remove Arg::settings to be consistent with App
2021-02-12 10:42:38 +00:00
Pavan Kumar Sunkara
2b5a23597a
Better help message support for hidden and heading stuff
2021-02-08 05:22:27 +00:00
Pavan Kumar Sunkara
3758bba5e2
Remove help_about in favor of mut_arg
2021-02-07 17:22:56 +00:00
Pavan Kumar Sunkara
423e2dde00
Remove version_about in favor of mut_arg
2021-02-07 16:14:07 +00:00
Pavan Kumar Sunkara
1bd902370a
Add tests for mut_arg on help and version
2021-02-07 15:54:24 +00:00
Pavan Kumar Sunkara
93a737a4fa
Merge pull request #2333 from clap-rs/build_help_and_version_at_start
...
Build help and version args at the beginning
2021-02-07 15:53:45 +00:00
Pavan Kumar Sunkara
c9cb22905c
Build help and version args at the beginning
2021-02-07 14:46:38 +00:00
ldm0
560aa536df
Change tests prefix
2021-02-07 05:59:29 +00:00
ldm0
fb3033834b
Change the way parser do self override
2021-02-07 04:46:56 +00:00
Donough Liu
58b9f35771
Add tests, fix grouped_values_of()
...
Fix clippy
type complexity fix
2021-02-07 04:46:56 +00:00
ldm0
1000c9fb03
Fix eagerly trimming dash in parse_long_flag
2021-02-06 11:26:20 +00:00
Pavan Kumar Sunkara
8d5a021e1e
Merge pull request #2309 from ldm0/parser0
...
Dehack, Revert #1856
2021-01-30 14:52:02 +00:00
ldm0
5ee6e07858
Fix usage of positional grouped arguments uses arg name rather than val_name
2021-01-24 19:02:43 +00:00
Donough Liu
0df169bbdc
Fix incorrect error message.
...
Comment out regressed logic
Fix clippy
2021-01-23 14:51:40 +00:00
Donough Liu
9477a5ffdb
Correct tests, reveal real problem
2021-01-23 14:51:40 +00:00
Pavan Kumar Sunkara
d7f6748887
Merge pull request #2306 from ldm0/unset_setting
...
Fix unset_setting()
2021-01-23 13:37:57 +00:00
Bowen Ding
3907e11621
Make @group accept multiple attributes ( #2248 )
...
* Make @group accept multiple attributes.
* New syntax: remove parenthese and "=>".
* Fix example
* Make Clippy happy
* Make clippy happy again
2021-01-23 13:12:40 +00:00
ldm0
68a0ef930a
Fix copied code
2021-01-23 06:41:11 +00:00
Pavan Kumar Sunkara
c156571f14
Merge pull request #2302 from AriusX7/visible-aliases
...
Allow visible alias(es) for args from YAML files
2021-01-20 18:07:06 +00:00
Donough Liu
d5e3c6b0b9
Add regression test for issue 2279
2021-01-21 01:09:20 +08:00
AriusX7
448c102f4f
fix: allow visible alias(es) in yaml files
2021-01-20 02:17:17 +05:30
Donough Liu
fa9be84b18
Propagate global arg in subcommand to subsubcommand
2020-12-12 22:20:16 +08:00
Donough Liu
5f5474d803
Fix only one arg printed in multiple required_unless missing situation
2020-12-12 12:57:17 +08:00
Donough Liu
d7e2fd6294
Add regression test for issue 1794
2020-12-09 01:13:05 +08:00