Commit graph

2555 commits

Author SHA1 Message Date
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
Eric Mink
1c3958c56e Clarify documentation usage as help text for subcommands (#1620)
* Clarify documentation usage as help text for subcommands

As outlined in https://github.com/clap-rs/clap/issues/1619 I did not understand why the `SUBCOMMANDS` section of `help` would not print a String `/// A subcommand for controlling testing` for the `Test` subcommand.

This PR updates the README to hopefully make this clearer.

The only change is adding a doc line:
```rust
#[derive(Clap)]
enum SubCommand {
    /// A help message for the Test subcommand
    Test(Test),
}
```

* Move annotation to the variant

Still regarding https://github.com/clap-rs/clap/issues/1619

I think the line that set the version of the subcommand was at the wrong place.
2020-01-04 19:54:33 +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
dylan_DPC
a2f9fb5f6c update bitflag to avoid cant find macro import on lower (1.0) versions 2019-11-30 02:06:52 +01:00
Matthew Fisher
bb9631eb3f fix(README): fix compiler errors for first example (#1599)
The first example doesn't compile. The Test structure is missing a `struct` statement, and the `.config` field exists as `.file`. Looking at the flag fields, `config` seems like the expected field name.

Using 

```
[dependencies]
clap = { git = "https://github.com/clap-rs/clap", features = ["wrap_help"] }
```

Signed-Off-By: Matthew Fisher <matt.fisher@microsoft.com>
2019-11-30 00:35:26 +01:00
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
Dylan DPC
92c2b5df3f
Merge pull request #1593 from Shnatsel/one-less-unsafe
Drop unnecessary `unsafe`
2019-11-06 15:55:12 +01:00
Kevin K
750796b9ca
Merge branch 'master' into one-less-unsafe 2019-11-03 14:21:56 -05:00
Kevin K
2a50c2ef80
Merge pull request #1388 from scampi/issue-861
feat(Error): add a cause field to the Error struct
2019-11-03 14:17:38 -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
Dylan DPC
85f820fa04
Merge pull request #1592 from Razican/term_update
Upgraded ansi_term dependency
2019-10-31 17:06:27 +01:00
Razican
4f97d51f1e
Upgraded ansi_term dependency 2019-10-31 09:05:47 +01:00
Kevin K
2af7c7ca34
Merge pull request #1591 from clap-rs/issue-1589
fixes the custom derive example in the readme
2019-10-30 21:54:37 -04:00
Kevin K
9d58bbee24
docs(README.md): fixes the custom derive example in the readme
Closes #1589
2019-10-30 20:30:29 -04: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
Kevin K
c3eca6cdd7
Merge pull request #1588 from lucab/ups/parser-quote-name-v3
app: quote field names in errors
2019-10-30 20:28:39 -04:00
Kevin K
04a3faa39b
Merge branch 'master' into ups/parser-quote-name-v3 2019-10-30 18:31:31 -04:00
Kevin K
cd76c9a146
Merge branch 'master' into master 2019-10-30 18:31:03 -04:00
Kevin K
7f046f28ab
Merge pull request #1590 from clap-rs/msrv-1.36
Msrv 1.36
2019-10-30 18:30:44 -04:00
Kevin K
85eba760e4
chore: adds a meta tag for clog 2019-10-30 16:57:06 -04:00
Kevin K
98e8cfe0c4
meta: Bump the minimum supported Rust to 1.36 2019-10-30 16:56:27 -04:00
Dylan DPC
5318342112
Update README.md 2019-10-30 10:28:37 +01: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
Kevin K
4fdca7b4e6
docs: corrects notes about v2 vs v3 branches 2019-10-29 22:30:17 -04:00
Kevin K
1cc872b369
Rename assert_cli to assert_cmd 2019-10-29 22:25:22 -04:00
Dylan DPC
655f4262dd
Add note for 3.0 release (#1503) 2019-10-29 22:24:52 -04:00
Daniel José Domingos Serrano
59c3233a45
Fix yaml docs 2019-10-29 21:49:00 -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
fvkramer
4e1da91fb1
examples: Change flag arg to option arg
Comments in 04_using_matches.rs list the config arg
as an optional arg. However, -c --config is currently
a flag arg. This commit sets takes_value to true on
the config arg to make it an "option" argument.
2019-10-29 21:45:58 -04:00
Sascha Grunert
b6ebdba2e1
Fix opts variable name in README.md 2019-10-29 21:45:47 -04:00
Tobias Kunze
ed69a688ff
Fix some typos in the docs 2019-10-29 21:45:09 -04:00
Oleksii Filonenko
1906c504ea
Replace ONCE_INIT with Once::new()
Deprecated since 1.38.0
2019-10-29 21:44:38 -04:00