Pavan Kumar Sunkara
9e381f92a9
Rename required_unless_eq_* to required_unless_present_*
2020-08-29 11:48:35 +02:00
CreepySkeleton
ccb1ea2d65
Remove useless code
...
This code does not serve any purpose as far as I can tell
2020-08-29 00:44:11 +03:00
CreepySkeleton
3a099a6627
Implement std::error::Error for clap::Error
2020-08-28 20:57:39 +03:00
bors[bot]
e4b5407296
Merge #1976 #2073
...
1976: Refactor r=pksunkara a=CreepySkeleton
2073: Add new "regex" feature r=CreepySkeleton a=bkaestner
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
Co-authored-by: Benjamin Kästner <benjamin.kaestner@gmail.com>
2020-08-28 17:14:31 +00:00
CreepySkeleton
5020333037
Refactor coloring
2020-08-28 19:21:05 +03:00
Benjamin Kästner
cde1a2d218
regex: Introduce convenience Cow-wrapper RegexRef
...
As previously discussed on [GitHub], this commit introduces a Cow-like
wrapper RegexRef to enable both `Regex` as well as `&Regex` as
arguments.
It also introduces a new module in the `build:arg` path to remove
clutter from the main module. For more information see #2073 .
[GitHub]: https://github.com/clap-rs/clap/pull/2073#issuecomment-674442310
2020-08-26 17:54:54 +02:00
Benjamin Kästner
8cb9a7d486
Add new "regex" feature
...
This commit introduces a new feature called `"regex"`. It adds a new
function `validator_regex` to `Arg` and was inspired by the discussion
in #1968 . The name `validator_regex` was chosen instead of
`regex_validator` to make sure that the developer keeps in mind that
there may only be a single `Validator` on an `Arg`.
The feature can be used with YAML files, however there is no proper
pattern in `clap_app!` (yet).
2020-08-26 17:54:54 +02:00
Sergey Dubovyk
d525be42c5
chore: use if instead of matching
...
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-25 11:07:19 +03:00
knidarkness
530b179776
fix: detect if space should be added before spec_vals
2020-08-25 10:41:08 +03:00
bors[bot]
29df5c2d16
Merge #2100 #2106
...
2100: Allow for nested subcommands with ZSH generation. r=pksunkara a=newAM
2106: Update the env var example for derive r=pksunkara a=rgreinho
Co-authored-by: Alex M <alexmgit@protonmail.com>
Co-authored-by: Rémy Greinhofer <remy.greinhofer@gmail.com>
2020-08-24 06:45:45 +00:00
bors[bot]
7853903052
Merge #2102
...
2102: Fix propagation r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-24 06:22:27 +00:00
CreepySkeleton
1cd069090e
Fix propagation
2020-08-23 20:56:29 +03:00
Alex M
60dfcf13b5
Allow for nested subcommands with ZSH generation.
2020-08-23 09:33:29 -07:00
Simon Morgan
2e973a2649
Fix a few documentation typos
2020-08-22 16:49:09 +01:00
CreepySkeleton
28ad25fe66
Ensure the lifetime is 'static
2020-08-21 08:41:50 +03:00
CreepySkeleton
fd1ee7872e
Make caching in crate_authors! actually work
2020-08-21 08:21:21 +03:00
bors[bot]
ed3bb993c5
Merge #2087
...
2087: refactor: Avoid second traversal and unwrap r=pksunkara a=phimuemue
Co-authored-by: philipp <descpl@yahoo.de>
2020-08-21 03:56:53 +00:00
aspen
96b7fd454b
Forbid all unsafe code.
2020-08-20 18:38:40 -04:00
philipp
86dc14f5cd
refactor: Avoid second traversal and unwrap
2020-08-20 19:32:53 +02:00
Danil Kondratiev
4878f7b7b1
don't print spaces in long help
2020-08-20 17:25:36 +03:00
bors[bot]
1e3d53fd1f
Merge #2081
...
2081: Polish doc comments for App r=CreepySkeleton a=mkantor
Co-authored-by: Matt Kantor <the.matt.kantor@gmail.com>
2020-08-17 20:56:13 +00:00
bors[bot]
025ec3c28b
Merge #2078
...
2078: Unify naming cheme r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-17 20:35:05 +00:00
Matt Kantor
f6e28c5ff0
Remove doc mention of no-longer-existing from_yaml method.
2020-08-17 12:54:24 -07:00
Matt Kantor
494fddd06e
Polish doc comments for App.
...
- Fix some links.
- Make the punctuation consistent.
- Correct some spelling/grammar mistakes.
2020-08-17 11:00:00 -07:00
tomjw64
27771ceeb7
Show arguments in conflict message in reverse order of input
2020-08-16 03:47:19 -05:00
tomjw64
97149e37f5
Remove underscore prefix for build_conflict_err_usage
2020-08-16 03:42:58 -05:00
tomjw64
35f761e699
Extract extra logic to _build_conflict_err_usage
2020-08-15 17:58:47 -05:00
CreepySkeleton
f4fb9db65c
cargo fmt
2020-08-16 00:29:30 +03:00
CreepySkeleton
0b2eac4da7
Fix yaml support
2020-08-15 23:42:23 +03:00
CreepySkeleton
ce3171ace5
Arg::required_unless_all => required_unless_eq_all
2020-08-15 20:38:57 +03:00
CreepySkeleton
b12102c832
Arg::required_unless -> required_unless_present
2020-08-15 20:38:56 +03:00
CreepySkeleton
55dceca819
Improve documentation
2020-08-15 20:38:56 +03:00
CreepySkeleton
233af6e7a1
Arg::required_if => required_if_eq
2020-08-15 20:38:55 +03:00
CreepySkeleton
8b85c4ecea
Arg::required_ifs => required_if_eq_any
2020-08-15 20:38:12 +03:00
CreepySkeleton
6b6b6035ed
Arg::required_unless_one => required_unless_eq_any
2020-08-15 20:38:11 +03:00
tomjw64
481229fffd
Remove stray print
2020-08-15 04:49:53 -05:00
tomjw64
826db05319
Add test for three argument conflict output
2020-08-15 04:43:12 -05:00
tomjw64
6602feb9e6
Also include required arguments in conflict output
2020-08-15 04:17:28 -05:00
tomjw64
937e14f6e8
Remove latter conflicting arg from usage message
2020-08-15 03:17:16 -05:00
bors[bot]
26aa746c3a
Merge #2067
...
2067: Use a template to produce the default help message r=pksunkara a=mkantor
Co-authored-by: Matt Kantor <the.matt.kantor@gmail.com>
2020-08-14 23:42:38 +00:00
Matt Kantor
85d3daa8c1
Use a different default template when there are no args.
...
This eliminates extraneous empty lines when there are no user-defined
args, the default args are disabled, and `after_help` is set.
2020-08-14 14:02:52 -07:00
Matt Kantor
4545a47ff6
Fix: {before-help} should have fallback just like {after-help}.
2020-08-14 13:58:37 -07:00
Benjamin Kästner
2b101ad7e5
Properly handle YAML null macros for default_value_if
...
The macro `yaml_opt_str` is only used in `yaml_tuple3`, which again is
only used for `default_value_if`. Unfortunately, the current test
doesn't make sense, as a v.is_null() indicates a Yaml::Null, on wich
`as_str()` always returns `None`. Instead, the condition should be
negated, as the documentation of `default_value_if` hints:
> **NOTE:** If using YAML the values should be laid out as
> follows (`None` can be represented as `null` in YAML)
The case `$v.is_null()` should therefore lead to `None`, whereas all
other cases should be interpreted `as_str()`.
2020-08-14 18:28:43 +02:00
Matt Kantor
2c91800099
Restore details to doc comment for help_template.
2020-08-14 09:27:42 -07:00
Matt Kantor
afcacb0626
Apply wrapping to {author} and {about} template tags.
...
Previously wrapping was only applied to the {*-with-newline} variants.
2020-08-14 09:14:14 -07:00
Matt Kantor
059503e54d
Make {before-help} and {after-help} template tags include padding.
...
Previously there were separate tags for this, {before-help-padded} and
{after-help-padded}. Those have been removed and the default ones
given their behavior.
2020-08-14 09:14:10 -07:00
Matt Kantor
a87320ae88
Use a template to produce the default help message.
...
This makes some changes to the template system:
- Template tags for optional items (like {author}) now expand to
nothing when the value is unset instead of a default string (like
"unknown author").
- Many template tags now emit line-wrapped output to match
write_default_help.
- Items with long variants now expand to the appropriate thing for -h
vs --help.
- The now-obsolete {long-about} tag has been removed.
- A few new tags have been added.
These are externally-visible changes, but if this makes it into 3.0
that's probably reasonable?
Note that line-wrapping can have some odd edge cases since it does not
account for preceding/trailing characters on the same line as the tag.
This is already the case in master, but will affect some additional
tags with this changeset. See #2065 for details.
Closes #2002 .
2020-08-13 17:52:48 -07:00
bors[bot]
ca6c84fa8a
Merge #1961
...
1961: V3 docs r=CreepySkeleton a=pksunkara
Co-authored-by: Kevin K <kbknapp@gmail.com>
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-08-12 14:58:09 +00:00
bors[bot]
2df656c98d
Merge #1998
...
1998: Relax some restrictions on validators r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-12 14:35:39 +00:00
Pavan Kumar Sunkara
c2e3b719ae
Apply suggestions from code review
...
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-12 15:50:15 +02:00
CreepySkeleton
39fadbf7c8
Rebase
2020-08-12 16:40:19 +03:00
CreepySkeleton
32414fbdff
Fix and rearrange debug asserts
2020-08-12 06:12:42 +03:00
CreepySkeleton
18a58af3ac
Allow validators to be FnMut
2020-08-12 02:39:59 +03:00
CreepySkeleton
790a0f5e62
Make sure that App & Arg & ArgGroup implement Send + Sync
...
Also relaxes 'static restriction on validators.
2020-08-12 02:39:59 +03:00
Matt Kantor
0d8ebeb36b
Fix doc comment for Arg::long_about.
2020-08-11 15:30:30 -07:00
Matt Kantor
f7e2fbf150
Print an empty line after multi-line argument help.
...
Fixes #1642 .
2020-08-11 15:30:30 -07:00
Pavan Kumar Sunkara
5c0947f160
Add derive traits only if derive feature is enabled
2020-08-11 16:30:02 +02:00
Pavan Kumar Sunkara
9b22f19995
Update more docs
2020-08-11 16:08:05 +02:00
Kevin K
89fcc755e4
wip: doc updates for App
...
Still more to do in this file, hence the wip status
2020-08-11 15:41:00 +02:00
Kevin K
aa694c893f
docs(FromArgMatches): initial draft
2020-08-11 15:21:58 +02:00
Kevin K
763f0a0363
wip: Clap trait docs
2020-08-11 15:21:57 +02:00
bors[bot]
da92a32d10
Merge #2048
...
2048: Change the ret tyte of Argmatches::subcommand r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-08-11 00:20:35 +00:00
Marti Raudsepp
64ee0f8009
Add hinting of arg value types for zsh/fish completion
...
Adds new method/attribute `Arg::value_hint`, taking a `ValueHint` enum
as argument. The hint can denote accepted values, for example: paths,
usernames, hostnames, commands, etc.
This initial implementation supports hints for the zsh and fish
completion generators, support for other shells can be added later.
2020-08-06 22:17:31 +03:00
CreepySkeleton
e6cc49ecde
Adjust derive
2020-08-05 17:07:13 +03:00
CreepySkeleton
e9759a241b
Adjust examples and tests
2020-08-05 17:07:13 +03:00
CreepySkeleton
6dcf93be00
Change the return type of ArgMatches::subcommand()
2020-08-05 13:35:42 +03:00
Nicholas Nethercote
ed46e8962c
refactor: Combine two large and very similar expressions.
2020-07-29 10:35:36 +10:00
Nicholas Nethercote
7fb397d905
refactor: Simplify some it.any(...)
calls.
2020-07-29 10:35:34 +10:00
Nicholas Nethercote
be535e28cf
refactor: Avoid unnecessary uses of enumerate()
.
2020-07-29 10:35:31 +10:00
Nicholas Nethercote
d8c775eb26
refactor: Replace it.filter(...).find(...)
with it.find(...)
.
2020-07-29 10:35:27 +10:00
bors[bot]
dbdd63b350
Merge #2016
...
2016: imp(errors): Provide the missing required arguments as info r=CreepySkeleton a=nickelc
Co-authored-by: Constantin Nickel <constantin.nickel@gmail.com>
2020-07-26 08:08:35 +00:00
bors[bot]
dda961b715
Merge #2027
...
2027: style: rename ErrorKind::{VersionDisplayed, HelpDisplayed} to present tense r=CreepySkeleton a=siyopao
Co-authored-by: Craig Pastro <siyopao@gmail.com>
2020-07-26 07:36:52 +00:00
CreepySkeleton
37c1631f06
Make lifetimes descriptive
2020-07-21 18:59:07 +03:00
bors[bot]
1d57aa2ffb
Merge #2030
...
2030: style: replacing yml with yaml for consistency r=pksunkara a=marcospb19
Co-authored-by: João Marcos <marcospb19@hotmail.com>
2020-07-21 13:11:15 +00:00
bors[bot]
aab97614ed
Merge #2020
...
2020: Implementation of feature request #1918 r=pksunkara a=leo-lb
Co-authored-by: Léo Le Bouter <lle-bout@zaclys.net>
2020-07-21 09:47:23 +00:00
João Marcos
24760bc261
style: replacing yml with yaml for consistency
2020-07-20 20:58:34 -03:00
Léo Le Bouter
eabe8b67b4
Implementation of feature request #1918
2020-07-20 15:35:40 +02:00
Craig Pastro
866f2edbed
style: rename ErrorKind::{VersionDisplayed, HelpDisplayed} to present tense
2020-07-20 10:27:07 +09:00
Blaxar Waldarax
748aea39f3
feat: Added {before/after}_help_long to App struct, closed #1903
2020-07-19 13:59:53 +02:00
Marti Raudsepp
594c535ba2
Fix various typos in docs & code
...
Most errors detected and fixed with Topy (https://github.com/intgr/topy ),
all verified by hand.
2020-07-19 03:10:28 +03:00
bors[bot]
ff6beebd6e
Merge #1974
...
1974: Flag subcommands r=CreepySkeleton a=NickHackman
Co-authored-by: NickHackman <snickhackman@gmail.com>
Co-authored-by: Nick Hackman <31719071+NickHackman@users.noreply.github.com>
2020-07-18 14:06:50 +00:00
NickHackman
6c6b9db45c
fix: clippy lint warning - name change
...
Lint name changed clippy::block_in_if_condition_stmt -> clippy::block_in_if_conditions
2020-07-16 18:05:25 -04:00
NickHackman
21436398a2
docs: improved flag subcommand documentation
...
Improved documentation in flag subcommand example and in
`App::short_flag` and `App::long_flag` method documentation.
2020-07-16 17:48:00 -04:00
Constantin Nickel
6fe48fd51f
imp(errors): Provide the missing required arguments as info
2020-07-15 00:52:06 +02:00
Constantin Nickel
fbfbf8df99
feat(macros): Add @global_setting $setting
to set global settings
2020-07-13 15:13:04 +02:00
NickHackman
0ddd58c935
fix: clippy lint warning
...
Not necessary to borrow the to_string for comparison
2020-07-11 15:21:53 -04:00
NickHackman
6ddf940ac3
fix: conflicts between flag scs and args alias
...
When debug_assertions flag is active, properly handles conflicts between
flag subcommands short and long their aliases and args and their
aliases prevents self conflicts where the alias and the flag subcomand
were the same.
2020-07-11 15:01:18 -04:00
NickHackman
cf9265d660
fix: failing doc test
2020-07-10 09:36:39 -04:00
NickHackman
5118cec1b1
fix: long_flag_aliases instead of using alias
...
Previously long_flag alias checks were against normal aliases instead of
specifically designated long_flag aliases, this is more clear and explicit.
2020-07-10 09:27:14 -04:00
NickHackman
f5aabfa482
style: rename short, long -> short_flag, long_flag
...
These names are more explicit about what short and
long flag subcommands are.
2020-07-10 08:52:13 -04:00
bors[bot]
d8fccdb0ea
Merge #1986
...
1986: Custom subcommand placeholders r=pksunkara a=kitlith
Co-authored-by: Kitlith <kitlith@kitl.pw>
2020-07-10 12:51:30 +00:00
bors[bot]
608b982bbe
Merge #1997
...
1997: Cleanup setings r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-07-10 09:53:47 +00:00
NickHackman
0a266f8c8c
fix: merge related issues
...
get_subcommands() now returns an impl Iterator rather than a slice,
match_alias! removed
2020-07-09 22:15:48 -04:00
Nick Hackman
27441329f9
Merge branch 'master' into flag-subcommands
2020-07-09 21:31:13 -04:00
NickHackman
a3f8ddb0b0
doc: removed '[``]' from documentation
2020-07-08 21:46:00 -04:00
NickHackman
1127ca6e13
feat: Usage displays short, long, and normal scs
...
Displayed in the form of
pacman {query, --query, -Q} [OPTIONS]
2020-07-08 21:37:56 -04:00
NickHackman
ec35ab8813
feat: long flag subcommand infer
...
Added tests and feature to infer long flag subcommands similarly to
normal subcommands.
2020-07-08 00:11:28 -04:00
NickHackman
1ea7178629
refractor: find_*_subcmd macro -> fn
...
Moved from macro implementations to function implementations.
2020-07-07 22:57:38 -04:00
NickHackman
59a14f8e6a
fix: no longer cloning all Apps and Args for debug
...
Previously `Flag::App` and `Flag::Arg` both owned their App/Arg which
required many, many clones. This is unnecessary.
2020-07-07 22:36:12 -04:00
NickHackman
5db25e6a72
refractor: improved parser ergonomics
...
No longer abusing external_subcommand, but using subcmd_name in order to
parse a subcommand, added a `keep_state` variable in order to handle the
hacky solution of short command line arguments.
2020-07-07 22:26:44 -04:00
Kitlith
96daa203b9
cargo fmt
2020-07-07 00:23:00 -07:00
Kitlith
5f601b7ecd
Manually specify the header for subcommands.
...
Also fleshed out the documentation for subcommand_placeholder a bit.
2020-07-06 20:08:26 -07:00
bors[bot]
e8d46f4036
Merge #1989
...
1989: Replace macros with proper functions r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-07-06 18:51:07 +00:00
CreepySkeleton
7e8d120543
Make getters return iterators rather than slices
2020-07-06 17:33:02 +03:00
CreepySkeleton
46679d88d6
Use method(bool) instead of manipulating ArgSettings explicitly
2020-07-02 05:42:28 +03:00
CreepySkeleton
b23890358a
Remove ArgSettings::UseValueDelimiter
2020-07-02 05:02:28 +03:00
Pavan Kumar Sunkara
e68ec35a90
Move to terminal_size dep after the recent textwrap upgrade
2020-07-01 09:46:10 +02:00
Kitlith
6d083f5653
imp(subcommands): "SUBCOMMANDS" label affected by subcommand placeholder
2020-06-27 14:21:17 -07:00
CreepySkeleton
a3206197ff
cargo clippy + fmt
2020-06-27 04:30:02 +03:00
CreepySkeleton
f904bebd9a
Ditch find_subcnd*! and match_alias!
2020-06-27 04:30:02 +03:00
CreepySkeleton
f143b2f70e
Ditch names! and sc_names!
2020-06-27 04:30:02 +03:00
CreepySkeleton
a9b022d777
Ditch longs!
2020-06-27 04:30:02 +03:00
CreepySkeleton
270fd55f60
Ditch groups_for_arg!
2020-06-27 04:30:02 +03:00
CreepySkeleton
b7be22e90b
Ditch opts! and positionals!
2020-06-27 04:30:01 +03:00
CreepySkeleton
f46af5b96b
Ditch flags!
2020-06-27 04:30:01 +03:00
Kitlith
3d406400ec
Allow changing the "SUBCOMMAND" placeholder text in usage ( #1597 )
2020-06-25 17:27:25 -07:00
Kamil Ogórek
ef162afd4b
Removed word duplicate from docs for allow_hyphen_values
2020-06-22 16:52:27 +02:00
NickHackman
b09afcf653
fix: Gate fmt::Display
for Flag w/ debug_asserts
...
Implementation of `fmt::Display` for `Flag` caused tests to fail when
not ran with `debug_assertions` feature.
2020-06-17 00:09:25 -04:00
NickHackman
bf3d947f01
fix: Flag Subcommands conflicts panic
...
Conflicts with Flag subcommands and Args now panics when
`debug_assertions` is enabled, rather than causing bizarre behavior.
2020-06-16 23:45:21 -04:00
NickHackman
02ebf4f816
fix: display visible short flags, visible flags
...
Flags weren't being set as visible in one instance. Flags were not being
printed in help message.
2020-06-16 01:13:58 -04:00
NickHackman
acb2f755f8
api: short_flag_aliases and corresponding methods
...
Aliases exclusively for `App::short_flag` that allow visible and hidden
short flag subcommands.
2020-06-16 00:13:21 -04:00
NickHackman
458736bee8
imp: Improved Flag Subcommand API
...
Instead of a `FlagSubCommand` struct the addition of two simple methods
to `App`. `App::long_flag` and `App::short_flag` that cover all the
bases of the many methods that were provided in `FlagSubCommand`. This
API is far simpler to use and more akin to the present `Arg::long` and `Arg::short`.
2020-06-15 21:52:36 -04:00
NickHackman
a9091d141c
chore: removed debug print
...
Removed a `debug!` line that referenced me.
2020-06-13 18:02:05 -04:00
NickHackman
0b179fe8ef
api: FlagSubCommand, subcommand flags #1361
...
Adds support for Flag subcommands, for example:
$ pacman -Ss
$ pacman --sync -s
2020-06-13 17:40:09 -04:00
bors[bot]
81457178fa
Merge #1972
...
1972: Newline bug r=pksunkara a=stedingan
Co-authored-by: Andreas Steding <steding.andreas@gmail.com>
2020-06-10 19:32:52 +00:00
Andreas Steding
abef54862d
changed write!() to writeln!() to add a newline
2020-06-10 15:35:54 +02:00
bors[bot]
055568d3fe
Merge #1964
...
1964: Updated Changelog and added the upgrader r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-06-10 10:22:58 +00:00
bors[bot]
d149999413
Merge #1967
...
1967: Reexport Indices r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-06-10 07:38:57 +00:00
Pavan Kumar Sunkara
1a276f8f4f
Remove Arg::help
2020-06-10 09:34:55 +02:00
bors[bot]
d67c3bb7d3
Merge #1970
...
1970: refactor: removed clap_count_exprs macro r=pksunkara a=stedingan
Co-authored-by: Andreas Steding <steding.andreas@gmail.com>
2020-06-10 06:59:00 +00:00
Andreas Steding
294beff930
refactor: removed clap_count_exprs macro
2020-06-10 08:27:36 +02:00
CreepySkeleton
24ed93daae
Reexport Indices
2020-06-09 08:39:07 +03:00
Andreas Steding
7bc0fed82e
fix: Corrected assertion arguments
2020-06-08 14:30:11 +02:00
Artem Vorotnikov
fc8a0bba9c
Make App's help heading a priority, optimize it
2020-06-01 08:39:58 +03:00
Artem Vorotnikov
2de5c0e44c
Fix custom help headings
2020-06-01 07:42:07 +03:00
CreepySkeleton
41c4d186f1
Fix warnings
2020-05-31 17:53:24 +03:00
CreepySkeleton
12e8541678
Remove pointless test
...
Come on, who on earth needs to test exact content of debug output?!
2020-05-31 03:27:44 +03:00
CreepySkeleton
f1479974e0
Proper debug in ArgGroup
2020-05-31 01:32:50 +03:00
CreepySkeleton
d6603c739d
Limit text wrapping to 100 symbols by default
2020-05-30 19:34:48 +03:00
bors[bot]
9af127a4f4
Merge #1949
...
1949: docs: correct some typos r=pksunkara a=goncalor
Co-authored-by: Gonçalo Ribeiro <darklaw13@yahoo.co.uk>
2020-05-30 10:36:45 +00:00
Gonçalo Ribeiro
fb8e0d815d
docs: correct some typos
2020-05-30 11:14:47 +01:00
Ivan Tham
270f9ce37f
Update src/build/arg/mod.rs
...
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-05-25 21:06:22 +08:00
Ivan Tham
a189770e1c
Fix Arg::required doc examples
2020-05-25 21:00:17 +08:00
CreepySkeleton
a827ad5bd4
Use proper fmt::DebugStruct facility in Debug impl
2020-05-23 20:08:04 +03:00
meltinglava
2096777022
fixed spacing in error messages
2020-05-23 13:10:14 +02:00
Roy Ivy III
83a822e101
docs ~ add documentation for new 'default_missing_value' configuration option
2020-05-21 13:08:39 -05:00
Roy Ivy III
98b5d49647
add 'default_missing_value' configuration option
2020-05-21 13:05:25 -05:00
dave
2a023b226c
chore: fix typo in comment
2020-05-20 22:12:45 +02:00
CreepySkeleton
5589276093
Rename App::set_term_width to term_width
...
None of the other methods that move self have the `set_` prefix
2020-05-18 12:46:14 +03:00
Patrick Marks
4a9e01b0bc
ensure that validation failure error message includes a newline. also add a basic test of a failed validation
2020-05-17 08:50:35 -07:00
bors[bot]
961ed9cfdd
Merge #1931
...
1931: Allow separate derives, but do not give examples r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-05-16 02:18:48 +00:00
Patrick Marks
97e3d8c0ac
fix some cases of the 'The following required arguments were not provided' error message
2020-05-15 07:58:57 -07:00
Pavan Kumar Sunkara
aab2e41f8a
Consistent From<Yaml> for ArgGroup
2020-05-15 13:59:31 +02:00
Pavan Kumar Sunkara
fe52d77f4e
Allow separate derives, but do not give examples
2020-05-15 09:51:42 +02:00
Pavan Kumar Sunkara
7bc282dd4e
Rename with_name to new for Arg & ArgGroup
2020-05-14 22:50:56 +02:00
bors[bot]
65e6f08517
Merge #1926
...
1926: refactor: Implement From<Yaml> on Arg and ArgGroup r=pksunkara a=lanesawyer
Co-authored-by: Lane Sawyer <github@lanesawyer.dev>
2020-05-14 08:47:37 +00:00
Lane Sawyer
1ba04346ff
refactor: Implement From<Yaml> on Arg and ArgGroup
2020-05-13 19:04:53 -07:00
Pruthvikar Reddy
28ffa721ab
Fix typos
2020-05-13 21:58:50 +01:00
bors[bot]
aa6110268a
Merge #1911
...
1911: Option vec to vec r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-05-13 09:42:49 +00:00
CreepySkeleton
5004fa218f
cargo clippy
2020-05-13 09:48:33 +03:00
CreepySkeleton
fed5c6787b
Fix tests
2020-05-13 05:53:17 +03:00
CreepySkeleton
6810889879
Turn Option<Vec<T>> into Vec<T>
2020-05-13 05:53:17 +03:00
Pavan Kumar Sunkara
cfb0e95c9e
Fix some stuff
2020-05-12 10:39:24 +02:00
Kevin Tonon
0b58088781
Fix clap_app! usage example
...
I found this usage example confusing because `matches` was actually an `App`
2020-05-12 00:58:41 +02:00
Charles Hall
1019724026
setting(DisableHelpFlags): disable the automatic generation of the -h/--help flags
2020-05-12 00:55:49 +02:00
Peter Corlett
719161ebba
fix(macros): fixes broken pattern which prevented calling multi-argument Arg methods
2020-05-12 00:45:32 +02:00
Windfarer
2b2dbbc506
adding case_insensitive to yaml parsing
2020-05-12 00:36:47 +02:00
Ivan Tham
9849430b11
style: group example
2020-05-12 00:32:52 +02:00
Felix Rabe
3ea552bfe2
Typo
2020-05-12 00:30:58 +02:00
raffitz
b1b31c3ab7
Add long_version support in YAML parsing
2020-05-12 00:30:48 +02:00
bors[bot]
33c63c6e29
Merge #1901
...
1901: implement Arg::short_alias and Arg::short_aliases r=pksunkara a=connorskees
Co-authored-by: ConnorSkees <39542938+ConnorSkees@users.noreply.github.com>
2020-05-11 16:03:51 +00:00
ConnorSkees
59f3e9414b
allow short aliases on Arg
...
this implements Arg::short_alias, Arg::short_aliases,
Arg::short_visible_alias, and Arg::short_visible_aliases in addition to
adding their associated tests
2020-05-11 11:21:01 -04:00
Pavan Kumar Sunkara
cc32c03055
Minor fix for the README
2020-05-11 11:15:59 +02:00
bors[bot]
8f98a329da
Merge #1715
...
1715: Update README for beta release r=kbknapp a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-05-03 07:09:49 +00:00
bors[bot]
2ba7816c9e
Merge #1894
...
1894: Eradicate warnings r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-05-03 06:50:57 +00:00
CreepySkeleton
2eebd76a04
Eradicate warnings: main codebase
2020-05-02 23:33:43 +03:00
Pavan Kumar Sunkara
a67d1d7a40
Update README for beta release
2020-05-02 22:27:42 +02:00
dylni
99096ecbe9
Handle more edge cases for an ArgStr
prefix
2020-05-01 18:19:40 -04:00
bors[bot]
99e862945e
Merge #1883
...
1883: External subcommand r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-05-01 17:59:32 +00:00
bors[bot]
93dd22c2f9
Merge #1890
...
1890: fix(build/app): don't use long help for `print_help() r=kbknapp a=cole-h
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
2020-05-01 15:57:11 +00:00
Cole Helbling
2bc057eaa5
fix(build/app): don't use long help for print_help()
...
For long help, there's still `print_long_help()`.
2020-05-01 08:01:26 -07:00
CreepySkeleton
6bdb6d9b2e
Marry AllowExternalSubcommands with SubcommandRequiredElse*
2020-05-01 15:33:36 +03:00
CreepySkeleton
ec6b6e1e36
Make validator take &str instead of String
2020-05-01 14:21:11 +03:00
CreepySkeleton
ee463ba834
Make extrernal_subcommand
ALMOST work
2020-04-30 20:20:21 +03:00
CreepySkeleton
7a7148d087
Make struct SubCommand
private
2020-04-29 21:34:59 +03:00
bors[bot]
5b9dbee5db
Merge #1876
...
1876: Allow usage of deprecated arg::help in yaml r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-04-28 11:39:05 +00:00
Pavan Kumar Sunkara
20d6b01818
Allow usage of deprecated arg::help in yaml
2020-04-28 12:37:52 +02:00
Pavan Kumar Sunkara
348744ab04
Rename some internal stuff
2020-04-28 11:13:09 +02:00
CreepySkeleton
4812cf2101
Make sure output is always flushed before exiting
2020-04-27 21:47:33 +03:00
CreepySkeleton
c6fdd3a7ce
Reshape imports
2020-04-27 21:47:08 +03:00
creativcoder
d0abb378b0
cargo fmt
2020-04-27 20:41:41 +05:30
creativcoder
35fdb45adb
Update bench tests with about and add inline to about methods
2020-04-27 20:00:36 +05:30
creativcoder
266dbbe3f4
Code review p2
2020-04-27 19:37:17 +05:30
creativcoder
92d5920748
Updated test and usage of older help APIs with about
2020-04-27 02:42:07 +05:30
creativcoder
75f5a9ab62
Code review p1
2020-04-27 02:42:07 +05:30
creativcoder
24cb8b13c5
Deprecate Arg::help in favour of Arg::about
2020-04-27 02:42:07 +05:30
CreepySkeleton
312432a5db
Fix a bug we didn't know about
2020-04-26 21:16:14 +03:00
CreepySkeleton
c9e03e7e67
Default values trigger conflicts no more ( #1605 )
2020-04-26 21:16:09 +03:00
CreepySkeleton
02fac2315f
Add hide_default_values to yaml
2020-04-26 13:47:53 +03:00
CreepySkeleton
3e865e565f
A little cleanup
2020-04-25 15:57:12 +03:00
CreepySkeleton
2403ae796e
Apply suggestions from code review
...
Co-Authored-By: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-04-24 23:06:13 +03:00
CreepySkeleton
756e95388f
Remove _StrExt
2020-04-24 22:47:55 +03:00
CreepySkeleton
f69ec92a83
Improve panics
2020-04-24 22:34:23 +03:00
CreepySkeleton
1bbcfe2261
Do not print hash in debug builds
2020-04-24 19:19:36 +03:00
CreepySkeleton
739e7048a5
Make vec_map required dependency - in fact, it already is
2020-04-24 15:33:11 +03:00
CreepySkeleton
61a12e4296
Fix positional args in groups ( #1794 )
2020-04-24 13:05:46 +03:00
CreepySkeleton
2e959d6c71
Update tests
2020-04-24 11:15:55 +03:00
dylni
d12827076f
Give ArgStr
module a better name
2020-04-23 09:03:21 -04:00
dylni
e7b19aea58
Fix beta errors
2020-04-23 09:03:21 -04:00
dylni
9ef18519b1
Fix index calculation
2020-04-23 09:03:21 -04:00
dylni
c2246cf03f
imp(src/util/osstringext.rs): Remove the last unsafe block
2020-04-23 09:02:10 -04:00
bors[bot]
0293fd7c4a
Merge #1851
...
1851: Allow debug logs to work with clap tests themselves r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-04-22 20:01:24 +00:00
Pavan Kumar Sunkara
f0074752b9
Improve debug logs
2020-04-22 20:56:35 +02:00
bors[bot]
c1cb0ce359
Merge #1849
...
1849: Arg enum r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-04-22 17:23:43 +00:00
Pavan Kumar Sunkara
dbe6ac01f6
Clean up arg_enum
2020-04-22 14:38:16 +02:00
Pavan Kumar Sunkara
01c179f527
Added arg_enum support
2020-04-22 14:37:45 +02:00
bors[bot]
3de8af46a2
Merge #1850
...
1850: Bugfixes r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-04-22 08:59:39 +00:00
CreepySkeleton
0e7ff777da
Make sure that command line OVERRIDES env, not prepends ( fix #1835 )
2020-04-22 11:35:20 +03:00
CreepySkeleton
dd1505fdfd
The self convention is not wrong here
2020-04-22 11:05:31 +03:00
Pavan Kumar Sunkara
4911c35869
Merge pull request #1834 from davidMcneil/arg_value_precedence_over_subcommand
...
Add ArgPrecedenceOverSubcommand app setting
2020-04-21 19:05:30 +02:00
David McNeil
746d9a4707
Fix SubcommandPrecedenceOverArg example indention
...
Signed-off-by: David McNeil <mcneil.david2@gmail.com>
2020-04-21 09:02:09 -05:00
David McNeil
709f20d713
Improve SubcommandPrecedenceOverArg description
...
Signed-off-by: David McNeil <mcneil.david2@gmail.com>
2020-04-21 08:31:49 -05:00
CreepySkeleton
66f85d07a0
Some extra debugging
2020-04-21 14:17:18 +03:00
David McNeil
ada5df3229
Use AppSettings::SubcommandPrecedenceOverArg
...
Signed-off-by: David McNeil <mcneil.david2@gmail.com>
2020-04-20 15:57:06 -05:00
bors[bot]
0a3921f554
Merge #1844
...
1844: Fix a couple of very minor bugs r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-04-20 16:27:34 +00:00
CreepySkeleton
3b3d2b23fd
cargo clippy
2020-04-20 18:32:35 +03:00
bors[bot]
286c3e5d25
Merge #1841 #1842
...
1841: One less giant macro (-0.5 kB) r=pksunkara a=CreepySkeleton
1842: Allow rustc inline small functions across crates (-5.5 kB) r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-04-20 15:27:55 +00:00
CreepySkeleton
4ce2a02f78
Corectly handle --foo==a (value is =a
)
2020-04-20 17:54:56 +03:00
CreepySkeleton
4d3760a0b3
Correctly handle -磨FOO
2020-04-20 15:15:28 +03:00
CreepySkeleton
32ffdfe855
Correctly handle -f==a
(value is =a
)
2020-04-20 13:41:37 +03:00
CreepySkeleton
f149f35da4
Allow rustc inline small functions across crates
2020-04-19 19:02:55 +03:00
CreepySkeleton
fae89db4a0
One less giant macro (-0.5 kB)
2020-04-19 15:42:08 +03:00
Donnie Adams
0584b57f29
fix: Don't print 'OPTIONS' when all options are hidden for short help
2020-04-16 08:21:41 -07:00
David McNeil
247231d1c6
Add ArgPrecedenceOverSubcommand app setting
...
Signed-off-by: David McNeil <mcneil.david2@gmail.com>
2020-04-16 09:08:39 -05:00
Pavan Kumar Sunkara
070bd50b28
Finished color refactor
2020-04-16 12:51:26 +02:00
bors[bot]
90e5eb6d1a
Merge #1831
...
1831: Handle publicity properly r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-04-16 06:36:39 +00:00
CreepySkeleton
823332e919
Handle publicity properly
2020-04-16 08:29:16 +03:00
CreepySkeleton
8d01bce5df
Use ref instead of move
2020-04-16 04:52:02 +03:00
CreepySkeleton
f931c3d1e4
Suppress unused_valiables
lint in non-debug builds
2020-04-16 04:32:17 +03:00
CreepySkeleton
00f2a82c3e
Make debug output much more useful
2020-04-14 07:21:27 +03:00
CreepySkeleton
fdaf927384
Remove almost all #[doc(hidden)]
2020-04-14 04:26:12 +03:00
bors[bot]
500f34a8f6
Merge #1811
...
1811: Replace value_t*! macros with methods r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-04-13 07:49:00 +00:00
CreepySkeleton
ecd60b69a3
Fix tests
2020-04-13 04:44:13 +03:00
CreepySkeleton
af95c2b6a4
Replace value_t*! macros with methods
2020-04-13 04:20:09 +03:00
Pavan Kumar Sunkara
da32adeb0e
Allow literals in builder macros
2020-04-12 23:18:39 +02:00
Pavan Kumar Sunkara
3bb8389c73
Enable ansi support for windows before refactoring
2020-04-12 10:20:08 +02:00
Pavan Kumar Sunkara
333b993481
Remove {n} support
2020-04-12 03:37:21 +02:00
CreepySkeleton
7cff206194
Make all fields of App & Arg pub(crate)
2020-04-11 18:23:20 +03:00
Bence Kalmar
4bf3f97d28
fix(arg_enum!): Invalid expansions of some trailing-comma patterns
...
In particular, fix macros that take an enum of one of the the following forms:
- `#[...] enum { ... , }`
- `pub enum { ... , }`
- `enum { ... , }`
Previously, these expansions would result in an error message like "error: no
rules expected the token `:`".
Add extensive tests for each pattern. Only two of the patterns had tests
before, so these errors did not surface automatically.
2020-04-10 09:35:20 +02:00
Ivan Veselov
0f3bdc439e
Fix ArgMatcher consuming extra arguments when max_values
is set
2020-04-10 09:35:20 +02:00
Pavan Kumar Sunkara
15edb69a0d
Address review comments
2020-04-10 00:33:16 +02:00
Pavan Kumar Sunkara
f0a216036b
Fix some issues
2020-04-09 19:41:33 +02:00
Pavan Kumar Sunkara
92449a4777
Assert arg groups
2020-04-09 16:51:32 +02:00
Pavan Kumar Sunkara
00a0b9660a
Assert for require* on args
2020-04-09 16:51:32 +02:00
Pavan Kumar Sunkara
f632aedc72
Started on arg asserts
2020-04-09 16:51:32 +02:00
Pavan Kumar Sunkara
1c16f73c10
Start cleaning up debug_assertion validations
2020-04-09 16:51:32 +02:00
Stephan Boyer
606d120d18
Update the documentation regarding which features are enabled by default
2020-04-04 13:16:30 -07:00
AimainaHito
06b9b32d66
Added full-stop
2020-04-04 11:30:30 +02:00
AimainaHito
f472393b14
Updated value_t documentation
2020-04-03 20:32:36 +02:00
Patrick Marks
4321cba5ba
set the default disp_ord of App to 999. Required for display_order and DeriveDisplay to work properly
2020-04-01 12:49:40 -07:00
Mátyás Mustoha
8687794986
style: fix comma placement for valid values when using arg_enum
2020-04-01 00:01:51 +02:00
Matthias Krüger
428a075e41
remove redundant imports and clone (found by clippy)
2020-03-25 13:43:01 +01:00
bors[bot]
2aa38e81a9
Merge #1739
...
1739: Remove _some_ of pubs r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-03-19 23:53:18 +00:00
CreepySkeleton
a46ab1639a
Turn some integration tests into unit tests
2020-03-19 10:49:49 +03:00
CreepySkeleton
4fc4a00b8f
Remove _some_ of pubs
2020-03-19 10:17:52 +03:00
CreepySkeleton
b61a807728
Fix clippy and bump MSRV
2020-03-13 22:41:40 +03:00
CreepySkeleton
3e1f6ed514
Use proper cfg
2020-03-09 23:42:14 +03:00
CreepySkeleton
329bfa9895
Get rid of extra scopes
2020-03-09 21:08:15 +03:00
Julian Laubstein
c34a0fdae9
Added tests and fixed display of conflicted flags
2020-03-08 17:11:12 +01:00
Julian Laubstein
444bce2471
Fixed #1622
2020-03-08 16:39:14 +01:00
bors[bot]
19c20f7c00
Merge #1727
...
1727: Fix `-- subcommand` error r=pksunkara a=ldm0
Co-authored-by: Donough Liu <ldm2993593805@163.com>
2020-03-05 13:01:05 +00:00
Donough Liu
5b9f6197b1
Test added, Apply rustfmt
2020-03-05 20:02:48 +08:00
Donough Liu
79cec6a298
Fix misplaced subcommand matching failure emitter.
...
Only positional args follow `--`.
2020-03-05 18:38:55 +08:00
Donough Liu
bd1b73d7c8
Another Typo
2020-03-05 17:56:24 +08:00
Donough Liu
c86ac603f1
Typo
2020-03-05 17:17:07 +08:00
Pavan Kumar Sunkara
eaae1202cb
Basic github action for benchmarking
2020-03-05 09:21:39 +01:00
bors[bot]
5e0898c175
Merge #1718
...
1718: Fix core dump with mutually `requires()` args r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-03-04 12:51:19 +00:00
CreepySkeleton
839ed2588c
Fix core dump with mutually requires()
args
...
Fixes #1643
2020-03-04 15:21:06 +03:00
Pavan Kumar Sunkara
47782cfac6
Make cargo feature additive
2020-03-01 22:55:57 +01:00
Ivan Tham
908b7aeb44
Ambiguous suggetions for InferSubcommands
...
Closes #1655
2020-03-01 19:36:05 +08:00
Emily
d36277b644
Fix Clap::try_parse_from documentation
2020-02-25 16:50:47 +00:00
bors[bot]
e4a7f50128
Merge #1669
...
1669: refactor: Rename Arg::conflicts_with_everything to Arg::exclusive (#1… r=pksunkara a=CreepySkeleton
Co-authored-by: Gregor Pfeifer <gpfeifer@dxc.com>
2020-02-22 21:58:29 +00:00
bors[bot]
28c46b5965
Merge #1697
...
1697: Allow replacing input on the fly r=CreepySkeleton a=pksunkara
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-02-21 19:13:59 +00:00
Pavan Kumar Sunkara
b8851a7d5e
Allow replacing input on the fly
2020-02-21 18:15:33 +01:00
Cecile Tonglet
35b918bd72
Allow missing docs on arg_enum
2020-02-21 11:39:44 +01:00
bors[bot]
cc79c432a4
Merge #1701
...
1701: Remove unneeded file r=pksunkara a=CreepySkeleton
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-02-21 09:51:56 +00:00
CreepySkeleton
4fcff089ef
Remove unneeded file
2020-02-21 03:28:25 +03:00
CreepySkeleton
4f13f3155c
Fix warnings on nightly
2020-02-21 01:55:19 +03:00
CreepySkeleton
43acfa00f4
Implement derive traits for Box<T>
2020-02-13 18:21:01 +03:00
bors[bot]
1e7c9efc9d
Merge #1612
...
1612: Use about() with help() and long_about() with long_help() r=pksunkara a=TheLostLambda
I was going through the clap documentation and was under the impression that calling `help()` would call `about()` and `long_help()` would call `long_about()`, but I've actually discovered this not to be the case. Instead, the `long_about()` was always shown when it existed, rendering the output (in the about section) of programs called with `-h` and `--help` identical. Issue #1472 shows this and that is fixed here.
Note this doesn't remove the ability to use the same about in both cases: if `long_about()` is unset, then `about()` is used in both cases.
I've changed the implementation here to use `is_some()` and `unwrap()` as opposed to `if let` because it ultimately allows for less repetitive code. Ideally, I'd be able to pair `if let` with a secondary condition (namely `self.use_long`), but to my dismay, let-chains are not stabilized yet.
For a second opinion, here is the code a settled on:
```
if self.use_long && parser.meta.long_about.is_some() {
debugln!("Help::write_default_help: writing long about");
write_thing!(parser.meta.long_about.unwrap())
} else if parser.meta.about.is_some() {
debugln!("Help::write_default_help: writing about");
write_thing!(parser.meta.about.unwrap())
}
```
Here is the alternative:
```
if self.use_long {
if let Some(about) = parser.meta.long_about {
debugln!("Help::write_default_help: writing long about");
write_thing!(about)
} else if let Some(about) = parser.meta.about {
debugln!("Help::write_default_help: writing about");
write_thing!(about)
}
} else {
if let Some(about) = parser.meta.about {
debugln!("Help::write_default_help: writing about");
write_thing!(about)
}
}
```
Co-authored-by: Brooks J Rady <b.j.rady@gmail.com>
2020-02-13 07:21:05 +00:00
Brooks J Rady
9cde072b61
Use about() with help() and long_about() with long_help()
2020-02-13 00:31:45 +00:00
bors[bot]
12df8cb078
Merge #1681
...
1681: WIP: Extract subcommands into separate trait r=pksunkara a=CreepySkeleton
Not-yet-working-but-almost-there "multiple traits" approach. More or less done, what's left is to catch some bugs and adapt tests/examples.
For the record: it took so long because of RL stuff (who would have thought?) and because [there was a detailed description of the experience I've had here, but it was deleted because it contained a lot of profanity and emotional notes].
As the only person alive that understands how the derive works (if you won't blow your own horn, nobody will do it for you, yeah), I'd like to made a statement: we Do need the refactoring.
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-02-12 20:42:32 +00:00
CreepySkeleton
ae574df2f9
Extract subcommands into separate trait
2020-02-12 23:15:05 +03:00
bors[bot]
0660e81231
Merge #1683
...
1683: Added HelpRequired AppSetting r=pksunkara a=thomasfermi
Closes #1683
There are likely some problems with my solution to this issue. I would be thankful for a review!
Co-authored-by: thomasfermi <mario.theers@gmail.com>
2020-02-10 17:47:40 +00:00
thomasfermi
f7b63c7be6
Implemented minor review findings.
2020-02-10 17:57:32 +01:00
thomasfermi
aa97a4e8aa
Added test for HelpRequired setting, which checks subcommands. Fixed bug that was discovered.
2020-02-10 14:33:26 +01:00
thomasfermi
2059bf1035
Implemented review findings for pull request #1683
2020-02-10 11:04:18 +01:00
thomasfermi
91f37f9358
Deleted unnecessary code in doc comments.
2020-02-09 21:37:19 +01:00
thomasfermi
48eb6a4530
Added HelpRequired AppSetting
2020-02-09 21:05:01 +01:00
bors[bot]
ad5606b5a0
Merge #1678
...
1678: Refactor clap_generate r=CreepySkeleton a=pksunkara
I have copied the code from [clap_generate]( https://github.com/clap-rs/clap_generate ) and refactored the structure a bit.
This new structure will allow people to write their own generators using our `Generator` trait which will contain some helpers (Still working on polishing them).
Co-authored-by: Ole Martin Ruud <barskern@outlook.com>
Co-authored-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-02-08 15:00:50 +00:00
Pavan Kumar Sunkara
33f47acc67
Refactor clap_generate
2020-02-07 07:52:04 +01:00
Pavan Kumar Sunkara
5b3a0dff9c
Remove extern & macro_use where possible
2020-02-07 07:34:01 +01:00
thomasfermi
582e2d39f3
Fixed typo
2020-02-05 17:24:40 +01:00
bors[bot]
509ac33a20
Merge #1664
...
1664: Import structopt r=pksunkara a=CreepySkeleton
OK, here is about 50% of what's left to import.
`impl StructOpt for Box<impl StructOpt>` is not imported because layouts of `StructOpt` and `Clap` are too different. I'll work it out after the import is done.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg " height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/clap-rs/clap/1664 )
<!-- Reviewable:end -->
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
Co-authored-by: Cecile Tonglet <cecile.tonglet@cecton.com>
Co-authored-by: David McNeil <mcneil.david2@gmail.com>
2020-02-05 08:43:57 +00:00
bors[bot]
e7d3600128
Merge #1670
...
1670: Minor refactoring r=pksunkara a=CreepySkeleton
Some minor improvements. Also gets some bugs fixed
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg " height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/clap-rs/clap/1670 )
<!-- Reviewable:end -->
Co-authored-by: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-02-05 08:23:28 +00:00
CreepySkeleton
ffad57c776
Update src/macros.rs
...
Co-Authored-By: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
2020-02-05 10:44:20 +03:00
CreepySkeleton
28605ba326
Fix macro
2020-02-05 10:17:11 +03:00
CreepySkeleton
afac737f69
Minor refactoring
2020-02-04 19:02:29 +03:00
Gregor Pfeifer
7781fd8813
refactor: Rename Arg::conflicts_with_everything to Arg::exclusive ( #1583 ) ( #1624 )
...
https://github.com/clap-rs/clap/pull/1624#issuecomment-571372359
2020-02-04 18:02:47 +03:00
rleungx
4082d1e85c
exactly match a subcommand when using the infersubcommands
2020-02-04 09:41:05 +01:00
CreepySkeleton
cf11d46373
Default value for default_value
(yeah, sounds awkward)
2020-02-04 11:40:01 +03:00
Alex van de Sandt
050bb7484a
Fix formatting
2020-02-03 13:04:07 -05:00
Alex van de Sandt
47031213a2
Remove needless fn main
from doc tests
2020-02-03 12:31:24 -05:00
Alex van de Sandt
928ded9d42
Revert "Remove #[macro_use]
from src"
...
This reverts commit 7dcdfc8b231b41a46d4d7ab7ec2664d32804b4a3.
That commit caused doc tests to break, as well as issues with importing
macros in other modules. Note that the yaml example in `src/lib.rs` at
line 184 is broken and should probably be fixed.
2020-02-03 12:04:13 -05:00
Alex van de Sandt
fd6b32ff55
Remove #[macro_use]
from src
2020-02-03 12:04:13 -05:00
Pavan Kumar Sunkara
c5eb08431a
Apply suggestions from code review
2020-02-03 12:37:37 +01:00
Dylan DPC
a2ff3fa91b
Revert " imp: Add exitcode::USAGE exit code as suggested in #1327 "
2020-02-03 12:37:37 +01:00
Toothless204
ebdc0453eb
Update src/build/arg/mod.rs
...
make error message more descriptive
Co-Authored-By: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-02-02 12:19:55 +00:00
Toothless204
8b2a9928e8
added check for -
2020-02-02 11:48:35 +00:00
Dylan DPC
922a531fa6
Update lib.rs
2020-02-02 02:02:10 +01:00
Pavan Kumar Sunkara
2a6005657e
Apply suggestions from code review
...
Co-Authored-By: CreepySkeleton <creepy-skeleton@yandex.ru>
2020-02-01 06:55:47 +01:00
Pavan Kumar Sunkara
dd75cee72c
fix: Clippy should pass
2020-02-01 06:48:50 +01:00
Daniel Eades
d23df44e84
refactor: remove deprecated 'Error::description' method
2020-01-31 18:37:56 +01:00
Pavan Kumar Sunkara
8e4a189ab0
fmt: Use standardized rustfmt rules
2020-01-31 18:37:56 +01:00
Pavan Kumar Sunkara
c799e8d0ca
chore: Updated contributing instructions and justfile
2020-01-31 18:37:56 +01:00
Daniel Gray
a1445b0f3b
imp: Add exitcode::USAGE exit code as suggested in #1327
...
The reason to do this is described well in issue #1327 . It is also a
recommendation of the Rust book itself:
https://rust-cli.github.io/book/in-depth/exit-code.html
2020-01-17 11:20:45 -04:00
Luca Bruno
f3683a9792
output: get rid of an unsafe block ( #1636 )
...
* parse: fix build in debug mode
This fixes a build failure in debug mode, as the value to be printed
does not implement Display.
* output: get rid of an unsafe block
This get rid of an unsafe block which is not necessary, and only used
when building in debug mode.
2020-01-17 19:05:18 +05:30
danieleades
af45420027
style: format code with rustfmt ( #1632 )
...
> incidentally, how do we feel about adding a rustfmt check to the CI(s)?
yes we should be doing that. you can send another pr that adds the check to the Ci
2020-01-11 23:45:46 +05:30
Jeremy Stucki
2e1acb648c
Refactor mkeymap ( #1618 )
...
* refactor(mkeymap): Use iterators
* refactor(mkeymap): Implement contains method
* refactor(mkeymap): Deprecate methods
Co-authored-by: Dylan DPC <dylan.dpc@gmail.com>
2020-01-09 23:00:22 +05:30
Gregor Pfeifer
8b5ecf92e4
fix: Typos in Arg::conflicts_with_everything` ( #1625 )
...
Related to https://github.com/clap-rs/clap/pull/1624
2020-01-06 00:50:15 +05:30
Gregor Pfeifer
6180d42c00
feat: Add Arg::conflicts_with_everything
method #1583 ( #1624 )
...
* feat: Add `Arg::conflicts_with_everything` method #1583
* fix: Typo in src/build/arg/mod.rs
Co-Authored-By: Dylan DPC <dylan.dpc@gmail.com>
Co-authored-by: Dylan DPC <dylan.dpc@gmail.com>
2020-01-06 00:16:28 +05:30
xidaxmb
f402f7a113
imp(usage_parser.rs): add default value support ( #1522 )
...
Co-authored-by: Dylan DPC <dylan.dpc@gmail.com>
2020-01-03 17:18:09 +05:30
dylan_DPC
1c79bb5b28
fix subcommand is private bug
2020-01-01 23:28:06 +05:30
ncaq
fc359e3c46
fixed: failed of multiple_occurrences with env ( #1609 )
...
The example code.
~~~rust
use clap::{App, Arg};
fn main() {
let matches = App::new("My Super Program")
.arg(
Arg::with_name("verbose")
.help("Sets the level of verbosity")
.short('v')
.long("verbose")
.takes_value(false)
.multiple_occurrences(true)
.env("VERBOSE"),
)
.get_matches();
match matches.occurrences_of("verbose") {
0 => println!("0 No verbose info"),
1 => println!("1 Some verbose info"),
2 => println!("2 Tons of verbose info"),
3 | _ => println!("3 >= Don't be crazy"),
}
}
~~~
It code use multiple_occurrences with env.
But it do not work.
`env` method set require take value.
It result see under.
~~~console
% cargo run -- -v
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/foo -v`
error: The argument '--verbose <verbose>...' requires a value but none was supplied
USAGE:
foo [OPTIONS]
For more information try --help
~~~
And, structopt or clap_derive may be create similar code.
So I am confused by structopt.
This to fix code small.
2019-12-22 23:03:23 +05:30
Mara Bos
2a2969aee4
Don't write --version output directly to stdout. ( #1602 )
...
Fixes #1390 .
2019-11-26 18:39:12 +01:00
Dylan DPC
335f34bee2
fix broken CI
2019-11-11 14:28:30 +01:00
Dylan DPC
dd6c8e08ad
use 2018 edition and minor refactors
2019-11-11 12:54:55 +01:00
Kevin K
750796b9ca
Merge branch 'master' into one-less-unsafe
2019-11-03 14:21:56 -05:00
Stéphane Campinas
4d69942db7
fix(Error): remove Copy trait bound by formatting both plain and colored error cause at the same time
2019-11-02 21:36:16 +01:00
Stéphane Campinas
991b839069
refactor(Error): add cause field to group_conflict error
2019-11-02 21:36:16 +01:00
Stéphane Campinas
15ad5954b0
feat(Error): add a cause field to the Error struct
...
The cause field is the actual error described in the message field,
however without extra information like usage.
Close #861
2019-11-02 21:36:11 +01:00
Sergey "Shnatsel" Davidoff
0a010a4371
Add comment on performance
2019-11-02 21:03:35 +01:00
Sergey "Shnatsel" Davidoff
925956d594
Do not leak a new string on every invocation of crate_authors!
2019-11-02 20:18:57 +01:00
Sergey "Shnatsel" Davidoff
0085bb7ee2
Make code actually work
2019-11-02 19:48:16 +01:00
Sergey "Shnatsel" Davidoff
63829a2a9f
Drop unnecessary unsafe
2019-11-02 18:33:17 +01:00
Kevin K
269a5d2bb6
Merge pull request #1523 from shua/master
...
imp(macros): add subcommand expr macro
2019-10-30 20:29:52 -04:00
Luca BRUNO
d74e0646d2
app: quote field names in errors
...
This quotes all field names in errors. It makes easier for humans to
disambiguate common network-related cases which currently end up in
messages like "address is already in use".
2019-10-30 08:30:10 +00:00
shua
452b80d334
add subcommand expr macro
2019-10-30 00:22:05 -04:00
Brian Foley
56d182d98b
Qualify all names in bodies of exported macros with $crate::
...
The lack of qualification caused odd errors such as:
```
use clap;
let foo = clap::value_t!(matches.value_of("foo"),i u32).unwrap(); # OK
lot bar = clap::value_t!(matches, "bar", u32).unwrap(); # Compile fail
```
but
```
use clap::value_t;
let foo = value_t!(matches.value_of("foo"),i u32).unwrap(); # OK
lot bar = value_t!(matches, "bar", u32).unwrap(); # OK
```
2019-10-29 21:48:49 -04:00
Thiago Arrais
c3b7c01f54
Provide default_values mimicking default_value
2019-10-29 21:48:10 -04:00
Za Wilcox
fed3a8fc29
where -> were
2019-10-29 21:47:51 -04:00
Za Wilcox
14bfbd6ef4
add missing 'the'
2019-10-29 21:47:42 -04:00
Kevin K
c91d523d41
cargo clippy & rustfmt
2019-10-29 21:47:32 -04:00
Oleksii Filonenko
1e39967044
Fix some clippy lints
...
- Manually fix some problems
- Run 'cargo fix --clippy'
Commits taken from similar PRs open at that time:
- Replace indexmap remove with swap_remove
Resolves #1562 and closes #1563
- Use cognitive_complexity for clippy lint
Resolves #1564 and closes #1565
- Replace deprecated trim_left_matches with trim_start_matches
Closes #1539
Co-authored-by: Antoine Martin <antoine97.martin@gmail.com>
Co-authored-by: Brian Foley <bpfoley@users.noreply.github.com>
2019-10-29 21:46:25 -04:00
Tobias Kunze
ed69a688ff
Fix some typos in the docs
2019-10-29 21:45:09 -04:00
demoray
7f835ed24d
use std::sync::Once::new() rather than ONCE_INIT
...
Updated to v3-master per discussion on #1521
2019-07-23 10:03:07 -04:00
Dylan DPC
180b6b82de
Merge pull request #1520 from nootanghimire/style/add-newline-after-printing-help
...
style(help): add newline after writing help
2019-07-23 12:35:19 +02:00
Nootan Ghimire
a87284020f
style(help): add newline after writing help
2019-07-17 10:44:14 +10:00
Dylan DPC
eb6276c772
Merge pull request #1514 from rharriso/pattern-arg-suggestion
...
Pattern arg suggestion
2019-07-04 15:33:53 +02:00
Dylan DPC
7ea767ad39
Merge pull request #1509 from jeremystucki/refactoring
...
Minor Refactoring
2019-07-02 09:28:41 +02:00
Ross Harrison
ebfe225af3
refactor(Parser,Errors): refactor(Parser,Errors): Update unknown_argument function to take option
...
Update unknown_argument function to take option
2019-07-01 11:25:46 -05:00
Ross Harrison
8d953cab08
feat(Errors): Add Pattern suggestion to Unknown Arg Error Message
2019-07-01 11:01:11 -05:00
Tyler Ruckinger
a5e3e62bef
test in mkeymap does not need #[should_panic]
2019-06-25 19:51:12 -04:00
Roy Ivy III
89f8cc6929
fix: add 'require_equals' support to YAML parsing
2019-06-23 11:37:22 -05:00
Jeremy Stucki
9e10c45505
Use map instead of 'if let'
2019-06-21 09:54:19 +02:00
Jeremy Stucki
c6327bc22f
Use initialization shorthand
2019-06-21 09:06:06 +02:00
Jeremy Stucki
c5c64d48b7
Use map_or instead of match
2019-06-21 09:04:54 +02:00
Jeremy Stucki
5ff2bb4dcf
Use map instead of match on Option
2019-06-21 09:02:33 +02:00
Erick Tryzelaar
cacc23473c
Remove v2 depecated features.
...
This patch:
* Removes the `ArgSettings::Global` variant, and replaces all
users of it to `Arg::global(...)`. The variant itself is lifted up
into a field on Arg. This was deprecated in clap 2.32.0.
* Removes AppFlags::PropagateGlobalValuesDown. This was deprecated in
clap 2.27.0.
* Removes `Arg::empty_values`. This was deprecated in clap 2.30.0.
* Removes `ArgMatches::usage`. This was deprecated in clap 2.32.0.
2019-06-19 17:04:29 -07:00
Erick Tryzelaar
4a20c6aaef
Fix compiling with "--features yaml"
2019-06-19 16:32:52 -07:00
Erick Tryzelaar
2664703587
Fix most warnings
...
This patch:
* Removes unused `App::contains_long`
* Removes `std::ascii::AsciiExt` (deprecated in 1.26)
* Replaces `trim_left_matches` with `trim_start_matches` (added in 1.30)
* Adds `dyn` (added in 1.27)
* Removes unused `mkeymap::KeyType::{is_short,is_long}`
* Cleans up unused imports
2019-06-19 15:47:50 -07:00
Erick Tryzelaar
2e2616b59e
Fix compiling on windows
...
This fixes compilation errors when building clap targetting windows with:
```
% rustup run nightly cargo check --target x86_64-pc-windows-msvc
```
2019-06-19 15:47:50 -07:00
Kevin K
46e81ca0b9
perf: only propagates to a single subcommand instead of all subcommands
2019-04-05 20:21:36 -04:00
Kevin K
958437661a
chore: clippy fixes
2019-04-05 20:21:34 -04:00
Kevin K
fcbae1574a
style: rustfmt run
2019-04-05 20:21:33 -04:00
Kevin K
573b0a9e88
chore: upgrades to 2018 edition of Rust
2019-04-05 20:21:30 -04:00
Kevin K
4cc85990fd
refactor: removed strings as an internal ID for arguments, groups, and
...
subcommands
This commit changes the internal ID to a u64 which will allow for
greater optimizations down the road. In addition, it lays the ground
work for allowing users to use things like enum variants as argument
keys instead of strings.
The only downside is each key needs to be hashed (the implementation
used is an FNV hasher for performance). However, the performance gains
in faster iteration, comparison, etc. should easily outweigh the single
hash of each argument.
Another benefit of if this commit is the removal of several lifetime
parameters, as it stands Arg and App now only have a single lifetime
parameter, and ArgMatches and ArgGroup have no lifetime parameter.
2019-04-05 20:21:22 -04:00
Kevin K
3dffd4908c
Removing the lint
features and invoking cargo clippy
manually instead
2019-04-04 13:27:08 -04:00
Erich Gubler
ab65a0200d
Use $crate
prepend to make importing the _clap_count_exprs
macro unnecessary
2019-04-04 13:21:28 -04:00
Kevin K
9399174416
perf: trims down some macro usage
2018-11-14 21:04:15 -05:00
Kevin K
eafee3c5c1
style: cargo fmt run
2018-11-14 14:01:48 -05:00
Kevin K
2a480451d3
refactor: clippy run
2018-11-14 14:01:48 -05:00
Kevin K
20c72525d2
style: cargo fmt run
2018-11-14 12:05:06 -05:00
Kevin K
0de9e07412
Merge branch 'v3-master' into map
2018-11-13 22:07:16 -05:00
Kevin K
441f539ede
Merge pull request #1370 from andrewmiller1/yaml-mismatched-types-char
...
Yaml mismatched types char
2018-11-08 20:37:44 -05:00
Kevin K
3550066c88
refactor: cleans out deprecated code in prep for final beta.1 push
2018-11-08 20:34:13 -05:00
andrewmiller1
2fcf308792
fix: fixes yaml feature build
2018-11-04 18:44:28 -06:00
Kevin K
471376fdc7
imp: no longer automatically forces user to handle help just by overriding help arg
2018-10-20 22:27:31 -04:00
Kevin K
03333800fe
refactor: remove code going to other crates and deprecations
2018-10-19 23:31:06 -04:00
Alena Yuryeva
1216cddb63
Fixed help benchmark
2018-09-01 20:42:31 +03:00
Kevin K
99bd101ea7
tests: fixes did_you_mean tests
2018-08-27 21:44:09 -04:00
Kevin K
3d662286bc
tests: fixes macro tests
2018-08-27 20:42:07 -04:00
Kevin K
400fafade2
tests: fixes help tests
2018-08-27 20:25:37 -04:00
Kevin K
3c433636fd
tests: fixes posix_compatible test
2018-08-20 20:35:57 -04:00
Kevin K
d90186d3bb
tests: fixes mkeymap tests
2018-08-20 20:28:51 -04:00
Kevin K
6c5d4c5896
tests: fixes the app_settings tests
2018-08-20 20:23:52 -04:00
Alena Yuryeva
a5346484e8
WIP
2018-08-19 17:46:59 +03:00
Alena Yuryeva
8993a702fe
Fixed help
2018-08-11 21:55:58 +03:00
Alena Yuryeva
632f745578
Fixed positionals tests
2018-08-11 21:48:50 +03:00
Alena Yuryeva
b48ef85ece
fixed unique_args tests
2018-08-11 21:32:06 +03:00