Kevin K
3e645ae9fc
tests: adds tests for required delimiters appearing in the help and usage strings
2017-10-12 15:11:51 -07:00
Benjamin Fry
1401faa486
add validation tests
2017-10-05 11:36:50 -07:00
Benjamin Fry
5fccd1fef8
add additional tests
2017-10-05 10:47:53 -07:00
Benjamin Fry
ec46b55fb3
add documentation and examples
2017-10-05 10:47:53 -07:00
Benjamin Fry
bad5d19edb
add env key for help msg
2017-10-05 10:47:53 -07:00
Benjamin Fry
f254807c73
WIP: add from_env option
2017-10-05 10:46:55 -07:00
Martin Geisler
e67a061bcf
docs: add html_root_url attribute
...
This doc attribute is used by rustdoc when generating documentation
for other crates that depend on this crate. With the html_root_url,
rustdoc will be able to generate correct links into this crate.
See C-HTML-ROOT in the Rust API Guidelines for more information:
https://rust-lang-nursery.github.io/api-guidelines/documentation.html#crate-sets-html_root_url-attribute-c-html-root
A version-sync check was added to ensure that the URL is kept up to
date when the crate version changes.
2017-09-23 12:50:21 +02:00
Martin Geisler
e09c248fc1
tests: ensure README version numbers are in sync
2017-09-23 12:45:50 +02:00
Kevin K
8567f0a46e
tests: adds tests to guard against subcommand section of help message showing unnecessarily
2017-09-14 10:38:01 -07:00
Kevin K
e1319fa198
tests: adds tests to guard against options with default values and zero or more values
2017-09-14 10:37:45 -07:00
Kevin K
150a0433ce
tests: adds tests for using requires_equals and min_values together
2017-09-13 12:27:19 -07:00
Kevin K
0136e991c4
tests: adds tests for App::long_about
2017-09-13 11:41:49 -07:00
Kevin K
2094c28d15
Merge pull request #1039 from siiptuo/fix-completion-special-characters
...
Escape special characters in zsh and fish completions
2017-09-13 10:58:33 -07:00
Tuomas Siipola
87e019fc84
fix: escape special characters in zsh and fish completions
2017-09-12 18:27:29 +03:00
Fraser Hutchison
b3eadb0de5
fix: avoid panic generating default help msg if term width set to 0 due to bug in textwrap 0.7.0
...
upgrade textwrap to 0.8.0 and add regression test
2017-09-07 00:19:08 +01:00
William Bain
434ea5ba71
fix(Suggestions): output for flag after subcommand
2017-08-05 12:46:50 -04:00
Corentin Henry
e8518cf07d
tests(Suggestions): update tests for subcommand suggestions
2017-06-12 08:03:39 -07:00
Martin Geisler
b93870c10a
feat: use textwrap crate for wrapping help texts
...
The textwrap crate uses a simpler linear-time algorithm for wrapping
the text. The current algorithm in wrap_help uses several O(n) calls
to String::insert and String::remove, which makes it potentially
quadratic in complexity.
Comparing the 05_ripgrep benchmark at commits textwrap~2 and textwrap
gives this result on my machine:
name before ns/iter after ns/iter diff ns/iter diff %
build_app_long 22,101 21,099 -1,002 -4.53%
build_app_short 22,138 21,205 -933 -4.21%
build_help_long 514,265 284,467 -229,798 -44.68%
build_help_short 85,720 85,693 -27 -0.03%
parse_clean 23,471 22,859 -612 -2.61%
parse_complex 29,535 28,919 -616 -2.09%
parse_lots 422,815 414,577 -8,238 -1.95%
As part of this commit, the wrapping_newline_chars test was updated.
The old algorithm had a subtle bug where it would break lines too
early. That is, it wrapped the text like
ARGS:
<mode> x, max, maximum 20 characters, contains
symbols.
l, long Copy-friendly,
14 characters, contains symbols.
m, med, medium Copy-friendly, 8
characters, contains symbols.";
when it should really have wrapped it like
ARGS:
<mode> x, max, maximum 20 characters, contains
symbols.
l, long Copy-friendly, 14
characters, contains symbols.
m, med, medium Copy-friendly, 8
characters, contains symbols.";
Notice how the word "14" was incorrectly moved to the next line. There
is clearly room for the word on the line with the "l, long" option
since there is room for "contains" just above it.
I'm not sure why this is, but the algorithm in textwrap handles this
case correctly.
2017-05-29 17:02:57 -04:00
Martin Geisler
13653042c2
tests: add wrap_help test with significant whitepace
...
This adds a test for the issue #617 about keeping whitespace intact in
manually aligned text.
2017-05-29 17:02:57 -04:00
Kevin K
17c97ee8c5
tests: adds a test where a non-existing arg is added to a group to ensure a failed debug assertion
2017-05-16 07:23:22 -04:00
Kevin K
5209b61192
tests: adds tests for using double hyphen -- as a value
2017-05-16 07:23:22 -04:00
golem131
60cc838a42
Fix tests
2017-05-11 20:45:15 -04:00
Kevin K
54c16836de
fix: fixes a bug where positional argument help text is misaligned
2017-05-10 20:29:54 -04:00
Kevin K
3223f21a90
tests: adds tests to last(true) args are printed in the usage even when required
2017-05-07 10:46:03 -04:00
Kevin K
3ed0f70c6e
tests: adds tests to ensure positional values value name are used in usage strings instead of names when defined
2017-05-07 10:46:03 -04:00
Kevin K
fedb46b5b1
fix: fixes a bug where flags were parsed as flags AND positional values when specific combinations of settings were used
...
This commit fixes a bug where using `AppSettings::AllowHyphenValues`
would cause flags with longs be *also* parsed as positional values.
Closes #946
2017-05-07 10:46:03 -04:00
Kevin K
4048072021
tests: adds tests to ensure flags not incorrectly parsed as positionals
2017-05-07 10:46:03 -04:00
Nuew
d5ef895541
api(Arg): add default_value_os
...
Also add related tests, and reframe `default_value` in terms of
`defualt_value_os`.
2017-04-24 15:49:59 -04:00
Kevin K
6aa4ba8114
fix: fixes a missing newline character in the autogenerated help and version messages in some instances
2017-04-05 10:59:55 -04:00
Kevin K
c83a559df1
tests(clap_app!): adds tests for ("config-file") style positonal args
2017-04-05 00:57:40 -04:00
Kevin K
92cc30577d
tests: adds tests to verify help and version can be properly overridden
2017-04-04 19:56:34 -04:00
Kevin K
0e4fd96d74
fix(Custom Usage Strings): fixes the usage string regression when using help templates
2017-03-30 13:30:23 -04:00
Kevin K
1a97f4fb95
tests: adds regression tests for custom usage strings
2017-03-24 11:27:23 -04:00
Richard Janis Goldschmidt
d49e8292b0
api(App::name): adds the ability to change the name of the App instance after creation
...
Closes #908
2017-03-22 20:27:20 -04:00
CrazyMerlyn
6b491c1161
tests(Help): adds tests for per argument hiding of default value
2017-03-22 20:27:20 -04:00
CrazyMerlyn
6bf5bf5bee
fix(yaml): adds support for loading author info from yaml
...
fix(yaml): adds support for loading author info from yaml
2017-03-22 20:23:55 -04:00
Pierre-Eric Pelloux-Prayer
f8f68cf825
imp: add fish subcommand help support
2017-03-17 17:46:24 +01:00
Kevin K
c84416f48d
tests: adds tests for reqire_equals(true) errors and help
2017-03-16 21:45:45 -04:00
Kevin K
ef037eaf22
tests: adds tests to check precedence of ArgRequiredElseHelp
2017-03-12 12:53:40 -04:00
Kevin K
b049cecccc
tests: adds tests for passing assertions with new Arg::last setting
2017-03-12 12:45:59 -04:00
Kevin K
3a10353f4b
tests: adds tests for .last(true) args
2017-03-11 12:14:54 -05:00
Kevin K
d2b4c2c61b
fix: fixes false positive clean parse when the suggestions feature is disabled and InferSubcommands is enabled
2017-03-10 08:24:30 -05:00
Kevin K
5c76350f77
tests: fixes failing hidden args test
2017-03-10 08:24:30 -05:00
Kevin K
642db9b042
tests: adds tests for new dual usage strings with certain subcommand settings
2017-03-10 08:24:29 -05:00
Kevin K
c8ab24bafa
imp: when AppSettings::SubcommandsNegateReqs and ArgsNegateSubcommands are used, a new more accurate double line usage string is shown
...
Closes #871
2017-03-10 08:24:29 -05:00
Kevin K
150756b989
setting(InferSubcommands): adds a setting to allow one to infer shortened subcommands or aliases (i.e. for subcommmand "test", "t", "te", or "tes" would be allowed assuming no other ambiguities)
...
Closes #863
2017-03-10 08:22:31 -05:00
Joost Yervante Damad
8adf353e0b
fix(help): don't show ARGS when there are only hidden positional args
...
Also no need to check for Hidden inside for that already is filtered
on !Hidden.
Closes #882
2017-03-10 08:22:31 -05:00
Caleb Jones
c5dac3fa43
Support loading help_message and version_message from the YAML
2017-03-10 01:54:50 -05:00
Caleb Jones
389c413b70
Allow customizing the --version and --help messages
2017-03-10 01:01:56 -05:00
Kevin K
677f323bce
tests: adds tests to ensure borrowed args don't break
2017-02-28 08:30:14 -05:00