Kevin K
5460778f56
tests: adds tests for displaying positional args with value names
2016-02-09 09:29:23 -05:00
Kevin K
f0a99916c5
imp(Positional Arguments): now displays value name if appropriate
...
When value names are use, they will be displayed in help and error
messages instead of the argument name. For example, an argument named
`arg` but with the value name `FILE` will be displayed as `[FILE]`.
Likewise multiple value names will be displayed properly such as `[FILE1] [FILE2]`
Closes #420
2016-02-09 09:27:17 -05:00
Kevin K
26f2e5feb0
tests(Multiple Values): fixes failing benches and adds tests to guard
2016-02-04 22:15:10 -05:00
Kevin K
72c387da0b
fix(Multiple Values): fixes bug where number_of_values wasnt respected
...
i.e. assume, option -O set to multiple, and number_of_values(1)
set. And assume a *required* positional argument is also set.
-O some -O other pos
Would fail with pos arg not supplied.
Relates to #415
2016-02-04 19:38:17 -05:00
Kevin K
2bc1908320
tests(ArgGroup): adds additional tests including YAML
2016-02-04 02:01:10 -05:00
Kevin K
fcbc7e12f5
fix: adds support for building ArgGroups from standalone YAML
...
ArgGroups can now be built from standalone YAML documents. This is
labeled as a fix because it should have been the case prior. A
standalone YAML document for a group would look something like
```
name: test
args:
- arg1
- arg2
required: true
conflicts:
- arg3
requires:
- arg4
```
This commit also keeps support building groups as part of a larger
entire App YAML document where the name is specified as a key to the
yaml tree
2016-02-04 02:01:10 -05:00
Kevin K
c19a791745
imp(values): adds support for up to u64::max values per arg
2016-02-02 07:45:49 -05:00
Kevin K
2704b300ec
refactor(macros): implements a slightly better arg_post_processing
2016-02-02 07:45:49 -05:00
Kevin K
cdee7a0eb2
feat(AppSettings): adds HidePossibleValuesInHelp to skip writing those values
2016-02-02 07:21:01 -05:00
Ceri Storey
3731ddb361
fix(matched_arg): Allow for more than 256 occurrences of an argument.
2016-02-02 19:30:32 +00:00
Kevin K
0bcc712064
fix(Usage Parser): fixes a bug where literal single quotes weren't allowed in help strings
...
Closes #406
2016-01-31 07:12:07 -05:00
Kevin K
90542747ac
chore: fixes doc and style mistakes
2016-01-28 21:58:40 -05:00
Kevin K
c28d24db3e
fix: fixes nightly build with new lints
2016-01-28 11:46:12 -05:00
Kevin K
d182049119
chore: fixes failing rustdoc
2016-01-28 11:46:12 -05:00
Kevin K
a210f89b84
docs: updates examples for 2x release
...
Closes #394
2016-01-28 11:46:12 -05:00
Kevin K
d2a78e3e21
docs: updates documentation for v2 release
2016-01-28 11:45:31 -05:00
Kevin K
693aece2cb
fix: fixes yaml build for 2x base
2016-01-28 11:45:31 -05:00
Kevin K
4c37b26a84
tests: fixes some failing doc tests
2016-01-28 11:45:31 -05:00
Kevin K
e494672ffc
refactor: removes some unnecessary code checks
2016-01-28 11:45:31 -05:00
Kevin K
f1876388a7
docs: updating docs for 2x release
2016-01-28 11:45:31 -05:00
Kevin K
86f3e33975
refactor(macros): uses macros to implement Settings enums
2016-01-28 11:45:31 -05:00
Kevin K
35ad17a282
feat: adds support for turning off the value delimiter
...
Closes #352
2016-01-28 11:45:31 -05:00
Kevin K
0871145245
feat: adds support changing the value delimiter
...
Closes #353
2016-01-28 11:45:31 -05:00
Kevin K
c2e03a0a4e
feat: adds support for comma separated values
...
This commit adds support for values separated by commas such as
--option=val1,val2,val3. It also includes support for uses
without the equals and shorts (both with and without)
--option=val1,val2
--option val1,val2
-oval1,val2
-o=val1,val2
-o val1,val2
Closes #348
2016-01-28 11:45:31 -05:00
Kevin K
4192e1acea
test(Yaml): fixes yaml tests
2016-01-28 11:45:31 -05:00
Kevin K
eb4de9215f
imp(From Usage): vastly improves the usage parser
...
Closes #350
2016-01-28 11:45:31 -05:00
Kevin K
95e8209712
feat: adds support with options with optional values
...
Closes #367
2016-01-28 11:45:31 -05:00
Kevin K
0eba835968
tests: updated python tests to v2 info
2016-01-28 11:45:31 -05:00
Kevin K
d707fa0fad
tests(v2): updating yaml tests to new v2 base
2016-01-28 11:45:31 -05:00
Kevin K
0410873d8d
chore: clippy run
2016-01-28 11:45:31 -05:00
Kevin K
e874a0d5e0
feat(UTF-8): adds support for invalid utf8 in values
...
Closes #269
2016-01-28 11:45:31 -05:00
Kevin K
c3e96232c9
tests(v2): fixing more tests on the new v2 base
2016-01-28 11:45:31 -05:00
Kevin K
0031d78564
refactor(v2): improving macros for code dedup
2016-01-28 11:45:31 -05:00
Kevin K
7fc18e685f
test(v2): fixing tests to pass under new v2 changes
2016-01-28 11:45:31 -05:00
Kevin K
20de5c6e76
feat(v2): implementing the base of 2.x
...
This commit implements the base changes for clap 2.x
2016-01-28 11:45:31 -05:00
Kevin K
ea83a3d421
fix: fixes an intentional panic issue discovered via clippy
2016-01-03 21:54:56 -05:00
Kevin K
99cdebc23d
imp: clippy improvements
2015-12-08 05:17:30 -05:00
Kevin K
3359683380
refactor(Defaults): derives traits instead of manual implementation
2015-11-12 22:43:37 -05:00
Kevin K
8988853fb8
imp(ArgMatcher): huge refactor and deduplication of code
...
Tons of code has been moved into functions, deduplicated, made much
easier to read, maintain, and understand. Comments still need to be
added, but that will happen shortly. Modules have also been moved around
to follow Rust conventions and best practices.
All functionality remains exactly the same
2015-11-11 10:26:05 -05:00
Kevin K
5800cdec6d
imp(Traits): refactoring some configuration into traits
...
There is now an AnyArg trait which lets you (clap dev, not consumer) get
info about certain args regardless of their type. Allows more generic
and de-duplicated code
2015-11-11 08:48:34 -05:00
Kevin K
1fdecfd519
style: moves mod names to follow rust standards
2015-11-09 07:17:23 -05:00
Kevin K
f5bfb41bf1
refactor: moves value validation out of App and into Option Args
2015-11-09 03:49:20 -05:00
Ben S
00b61ae226
Fix a bunch of typos in comments
2015-11-01 14:02:37 +00:00
Jimmy Cuadra
434f497ab6
docs: Clarify behavior of Arg::multiple with options.
2015-10-29 22:40:47 -07:00
Jimmy Cuadra
c1f66b5de7
docs: Fix typos and improve grammar.
2015-10-29 22:40:10 -07:00
Kevin K
d0c13d2960
style: rustfmt run
2015-10-28 10:56:10 -04:00
Kevin K
f161ffa470
chore: updates and implements lint findings
2015-10-28 10:55:26 -04:00
Kevin K
c47025dca2
fix(Safe Matches): using 'safe' forms of the get_matches family no longer exit the process
...
Closes #256
2015-10-28 05:55:04 -04:00
Kevin K
2a223dad82
fix(Unified Help): sorts both flags and options as a unified category
2015-10-05 20:36:30 -04:00
Kevin K
958ebb8629
refactor: removes legacy panics and fixes grammar
2015-10-01 00:05:41 -04:00
Kevin K
a9aae2ade4
refactor: fixes a typo in the arg settings
2015-09-30 23:59:40 -04:00
Kevin K
b01667ebb3
refactor: changes some arg fields to flags internally
2015-09-30 23:59:40 -04:00
Kevin K
7005cf8c47
style: removes trailing whitespace
2015-09-30 23:59:40 -04:00
Kevin K
6f2926e794
refactor(ArgBuilders): moves creation of builders to constructors
2015-09-30 23:59:40 -04:00
Kevin K
87ba54451d
docs: properly names Examples section for rustdoc
2015-09-21 22:06:15 -04:00
Alexander Kuvaev
a87c5cd660
fix(ArgGroup) added asserts to help users to configure clap properly
...
Also I've added tests for this change
2015-09-21 22:33:55 +03:00
Kevin K
931aea8842
docs(Arg): unhides fields of the Arg struct
2015-09-20 20:34:20 -04:00
Kevin K
c92a98fb67
tests(Hidden Args): fixes tests to include hidden field
2015-09-08 21:02:54 -04:00
Kevin K
2cab4d0334
feat: allows defining hidden args and subcmds
...
Closes #231
2015-09-08 20:45:14 -04:00
Kevin K
40229efd99
style: post rustfmt run
2015-09-06 21:37:45 -04:00
Kevin K
3cb4a48ebd
perf: changes ArgGroup HashSets to Vec
2015-09-04 14:05:42 -04:00
Kevin K
e1694922f5
tests: adds test for ArgGroups
2015-09-04 13:58:00 -04:00
Kevin K
32044f26e0
tests: adds tests for PosBuilder Display
2015-09-04 13:29:57 -04:00
Kevin K
3a5bb17596
tests: adds tests for FlagBuilder Display
2015-09-04 13:29:45 -04:00
Kevin K
baab2e3f40
perf: changes BTreeSet for Vec in some instances
2015-09-04 13:04:24 -04:00
Kevin K
82a09abb32
Merge branch 'issue-205' of https://github.com/Vinatorul/clap-rs into vin-issue-205
2015-09-01 00:05:54 -04:00
Kevin K
19b348a100
docs(Args from YAML): fixes doc examples
2015-08-31 23:57:35 -04:00
Kevin K
ecf88665cb
feat(ArgGroups): adds support for building ArgGroups from yaml
2015-08-31 23:57:25 -04:00
Kevin K
e415cf78ba
feat(Subcommands): adds support for subcommands from yaml
2015-08-31 23:57:16 -04:00
Kevin K
86cf4c4562
feat(YAML): allows building a CLI from YAML files
2015-08-31 23:57:16 -04:00
Alexander Kuvaev
5a8e341e8e
refactor(ArgGroup): changed Vec<&str> using to &[&str]
2015-08-30 20:22:26 +03:00
Kevin K
ad962ec478
feat(Args): allows opts and args to define a name for help and usage msgs
2015-08-27 12:05:23 -04:00
Alexander Kuvaev
fc7a31a745
fix: fixed confusing error message, also added test for it
2015-08-22 12:45:25 +03:00
Alexander Kuvaev
ddc3976a58
Merge branch 'issue176' of https://github.com/Vinatorul/clap-rs into issue176
2015-08-19 20:42:52 +03:00
Alexander Kuvaev
cd6649959f
feat(Args) method to add multiple overrides at once
2015-08-19 20:37:17 +03:00
Kevin K
d0c3b37970
perf(Args and Apps): changes HashSet->Vec in some instances for increased performance
2015-08-18 22:04:22 -04:00
Alexander Kuvaev
5a18fa4ffe
wip: removed 'o lifetime
2015-08-18 23:53:03 +03:00
Alexander Kuvaev
92b9f8f5bf
wip: fixed docs and remove faulty #[cfg(test)] block
2015-08-18 23:27:24 +03:00
Alexander Kuvaev
0b916a00de
feat: added overrides to support conflicts in POSIX compatible manner
2015-08-18 22:33:52 +03:00
Kevin K
84ae2ddbce
feat(Args): allows for custom argument value validations to be defined
...
Closes #170
2015-08-14 18:46:13 -04:00
Kevin K
8a2cd7f95f
imp: code corrections thanks to rust-clippy
2015-08-14 00:21:16 -04:00
Kevin K
93e915dfe3
perf: removes some unneeded allocations
2015-07-29 17:55:02 -04:00
Kevin K
42b6d1fc3c
fix: fixes a logic bug and allows setting Arg::number_of_values() < 2
...
Allows setting `Arg::number_of_values(qty)` where `qty` < 2. This allows
things such as `Arg::number_of_values(1)` in conjuction with
`Arg::multiple(true)` which would make invoking the program like this
`myprog --opt val --opt val` legal, but `myprog --opt val1 val2`
illegal.
Closes #161
2015-07-16 21:34:04 -04:00
Kevin K
a5b8b3584b
test: fixes tests for 1.0 and deprecated functions
2015-06-29 22:21:47 -04:00
Kevin K
274484dfd0
imp: removes deprecated functions in prep for 1.0
2015-06-29 22:03:05 -04:00
Kevin K
a37842eec1
fix(Global Args): fixes a bug where globals only transfer to one subcommand
...
Closes #135
2015-05-31 00:45:07 -04:00
Kevin K
743eefe8dd
docs: updates for deprecations and new features
2015-05-22 23:32:56 -04:00
Kevin K
2bcc6137a8
feat(Global Args): allows args that propagate down to child commands
...
Closes #131
2015-05-22 13:18:02 -04:00
Kevin K
28b7385552
depr(SubCommand/App): several methods and functions for stable release
...
SubCommand::new() -> SubCommand::with_name()
App::error_on_no_subcommand() -> App::subcommand_required()
2015-05-22 13:16:07 -04:00
Kevin K
ab4ec609cc
imp(args): allows consumer of clap to decide if empty values are allowed or not
...
Closes #122
2015-05-17 14:21:38 -04:00
Tshepang Lekhonkhobe
8891d92917
docs(clap): fix typos caught by codespell
...
Thanks to [tshepang](https://github.com/tshepang ) for catching these!
2015-05-05 22:02:14 -04:00
Kevin K
05476fc61c
docs(from_usage): explains new usage strings with multiple values
2015-05-05 17:12:20 -04:00
Kevin K
3d58197674
feat(from_usage): adds ability to add value names or num of vals in usage string
...
Allows new usage strings with value names or number of values. If the
names are consecutive, they are counted to represent the number of
values (if they all have the same name), or if their names are different
they are used as value names.
Closes #98
2015-05-05 17:12:20 -04:00
Kevin K
c1c993c419
im(Options): adds number of values to options in help/usage
2015-05-04 22:01:28 -04:00
Kevin K
dd2a75640c
fix(MultipleValues): properly distinguishes between multiple values and multiple occurrences
...
When using number_of_values() or value_names() you no longer have to set
.multiple(true) unless you want the argument to be allowed multiple
times (i.e. *not* the value, but the argument itself). This means
without multiple(true) set (and assuming 2 values) -o val1 val2 is only
allowed one time, but with multiple(true) set, -o val1 val2 -o val3 val4
is allowed.
Closes #99
2015-05-04 21:59:10 -04:00
Kevin K
12aea9612d
fix(RequiredArgs): fixes bug where required-by-default arguments are not listed in usage
...
Closes #96
2015-05-03 00:38:06 -04:00
Kevin K
22aef2ab45
style(clap): rustfmt run
2015-05-01 14:44:20 -04:00
Kevin K
08635e6b5e
style(clap): makes changes to follow Rust style guide
2015-05-01 14:43:26 -04:00
Kevin K
1f1fc04e1e
docs(arg.rs): improves docs and fix typos
2015-05-01 10:19:19 -04:00
Kevin K
0d123a0d86
docs(clap): update docs
2015-04-30 20:13:01 -04:00